NCT® 99M
NCT® 2000M
Controls for Milling Machines and Machining Centers
Programmer's Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 The Part Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Address Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Program Number and Program Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Beginning of Program, End of Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Program Format in the Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Program Format in Communications with External Devices . . . . . . . . . . . . . . . . . . . . . . . 10
Main Program and Sub-program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
DNC Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Fundamental Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Controlled Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 Names of axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Unit and Increment System of Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 Preparatory Functions (G codes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 The Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1 Positioning (G00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Linear Interpolation (G01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Circular and Spiral Interpolation (G02, G03) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Helical Interpolation (G02, G03) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.5 Equal Lead Thread Cutting (G33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6 Polar Coordinate Interpolation (G12.1, G13.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.7 Cylindrical Interpolation (G7.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5 The Coordinate Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1 Absolute and Incremental Programming (G90, G91), Operator I . . . . . . . . . . . . . . . . . . 38
5.2 Polar Coordinates Data Command (G15, G16) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Inch/Metric Conversion (G20, G21) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 Specification and Value Range of Coordinate Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5 Rotary Axis Roll-over . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6 The Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1 Feed in rapid travers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 Cutting Feed Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2.1 Feed per Minute (G94) and Feed per Revolution (G95) . . . . . . . . . . . . . . . . . . . . 46
6.2.2 Clamping the Cutting Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3 Automatic Acceleration/Deceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.4 Feed Control Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4.1 Exact Stop (G09) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3
Download from Www.Somanuals.com. All Manuals Search And Download.
6.4.2 Exact Stop Mode (G61) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4.3 Continuous Cutting Mode (G64) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.4.4 Override and Stop Inhibit (Tapping) Mode (G63) . . . . . . . . . . . . . . . . . . . . . . . . 50
6.4.5 Automatic Corner Override (G62) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.4.6 Internal Circular Cutting Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7 The Dwell (G04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8 The Reference Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.1 Automatic Reference Point Return (G28) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.2 Automatic return to reference points 2nd, 3rd, 4th (G30) . . . . . . . . . . . . . . . . . . . . . . . 54
8.3 Automatic Return from the Reference Point (G29) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9 Coordinate Systems, Plane Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.1 The Machine Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.1.1 Setting the Machine Coordinate system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.1.2 Positioning in the Machine Coordinate System (G53) . . . . . . . . . . . . . . . . . . . . . . 57
9.2 Work Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.2.1 Setting the Work Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.2.2 Selecting the Work Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.2.3 Programmed Setting of the Work Zero Point Offset . . . . . . . . . . . . . . . . . . . . . . . 59
9.2.4 Creating a New Work Coordinate System (G92) . . . . . . . . . . . . . . . . . . . . . . . . . 59
9.3 Local Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.4 Plane Selection (G17, G18, G19) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
10 The Spindle Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.1 Spindle Speed Command (code S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.2 Programming of Constant Surface Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.2.1Constant Surface Speed Control Command (G96, G97) . . . . . . . . . . . . . . . . . . . 65
10.2.2 Constant Surface Speed Clamp (G92) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.2.3 Selecting an Axis for Constant Surface Speed Control . . . . . . . . . . . . . . . . . . . . 66
10.3 Spindle Position Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
10.4 Oriented Spindle Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
10.5 Spindle Positioning (Indexing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
10.6 Spindle Speed Fluctuation Detection (G25, G26) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11 Tool Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
11.1 Tool Select Command (Code T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
11.2 Program Format for Tool Number Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
12 Miscellaneous and Auxiliary Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
12.1 Miscellaneous Functions (Codes M) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
12.2 Auxiliary Function (Codes A, B, C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
12.3 Sequence of Execution of Various Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
13 Part Program Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4
Download from Www.Somanuals.com. All Manuals Search And Download.
13.1 Sequence Number (Address N) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.2 Conditional Block Skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.3 Main Program and Sub-program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.3.1 Calling the Sub-program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.3.2 Return from a Sub-program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
13.3.3 Jump within the Main Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
14 The Tool Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
14.1 Referring to Tool Compensation Values (H and D) . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
14.2 Modification of Tool Compensation Values from the Program (G10) . . . . . . . . . . . . . . 79
14.3 Tool Length Compensation (G43, G44, G49) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
14.4 Tool Offset (G45...G48) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
14.5 Cutter Compensation (G38, G39, G40, G41, G42) . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
14.5.1 Start up of Cutter Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
14.5.2 Rules of Cutter Compensation in Offset Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
14.5.3 Canceling of Offset Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14.5.4 Change of Offset Direction While in the Offset Mode . . . . . . . . . . . . . . . . . . . . . 98
14.5.5 Programming Vector Hold (G38) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
14.5.6 Programming Corner Arcs (G39) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
14.5.7 General Information on the Application of Cutter Compensation . . . . . . . . . . . . 102
14.5.8 Interferences in Cutter Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
14.6 Three-dimensional Tool Offset (G41, G42) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
14.6.1 Programming the Three-dimensional Tool Offset (G40, G41, G42) . . . . . . . . . . 112
14.6.2 The Three-dimensional Offset Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
15 Special Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
15.1 Coordinate System Rotation (G68, G69) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
15.2 Scaling (G50, G51) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
15.3 Programmable Mirror Image (G50.1, G51.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
15.4 Rules of Programming Special Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
16 Automatic Geometric Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
16.1 Programming Chamfer and Corner Round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
16.2 Specifying Straight Line with Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.3 Intersection Calculations in the Selected Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
16.3.1 Linear-linear Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
16.3.2 Linear-circular Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
16.3.3 Circular-linear Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
16.3.4 Circular-circular Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
16.3.5 Chaining of Intersection Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
17 Canned Cycles for Drilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
17.1 Detailed Description of Canned Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
17.1.1 High Speed Peck Drilling Cycle (G73) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
17.1.2 Counter Tapping Cycle (G74) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
17.1.3 Fine Boring Cycle (G76) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5
Download from Www.Somanuals.com. All Manuals Search And Download.
17.1.4 Canned Cycle Cancel (G80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
17.1.5 Drilling, Spot Boring Cycle (G81) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
17.1.6 Drilling, Counter Boring Cycle (G82) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
17.1.7 Peck Drilling Cycle (G83) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17.1.8 Tapping Cycle (G84) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
17.1.9 Rigid (Clockwise and Counter-clockwise) Tap Cycles (G84.2, G84.3) . . . . . . . 145
17.1.10 Boring Cycle (G85) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
17.1.11 Boring Cycle Tool Retraction with Rapid Traverse (G86) . . . . . . . . . . . . . . . . 149
17.1.12 Boring Cycle/Back Boring Cycle (G87) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
17.1.13 Boring Cycle (Manual Operation on the Bottom Point) (G88) . . . . . . . . . . . . . 152
17.1.14 Boring Cycle (Dwell on the Bottom Point, Retraction with Feed) (G89) . . . . . 153
17.2 Notes to the use of canned cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
18 Measurement Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
18.1 Skip Function (G31) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
18.2 Automatic Tool Length Measurement (G37) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
19 Safety Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
19.1 Programmable Stroke Check (G22, G23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
19.2 Parametric Overtravel Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
19.3 Stroke Check Before Movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
20 Custom Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
20.1 The Simple Macro Call (G65) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
20.2 The Modal Macro Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
20.2.1 Macro Modal Call in Every Motion Command (G66) . . . . . . . . . . . . . . . . . . . . 162
20.2.2 Macro Modal Call From Each Block (G66.1) . . . . . . . . . . . . . . . . . . . . . . . . . 163
20.3 Custom Macro Call Using G Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
20.4 Custom Macro Call Using M Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
20.5 Subprogram Call with M Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
20.6 Subprogram Call with T Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
20.7 Subprogram Call with S Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
20.8 Subprogram Call with A, B, C Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
20.9 Differences Between the Call of a Sub-Program and the Call of a Macro . . . . . . . . . . 167
20.9.1 Multiple Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
20.10 Format of Custom Macro Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
20.11 Variables of the Programming Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
20.11.1 Identification of a Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
20.11.2 Referring to a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
20.11.3 Vacant Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
20.11.4 Numerical Format of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
20.12 Types of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
20.12.1 Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
20.12.2 Common Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
20.12.3 System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
20.13 Instructions of the Programming Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6
Download from Www.Somanuals.com. All Manuals Search And Download.
20.13.1 Definition, Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
20.13.2 Arithmetic Operations and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
20.13.3 Logical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
20.13.4 Unconditional Divergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
20.13.5 Conditional Divergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
20.13.6 Conditional Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
20.13.7 Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
20.13.8 Data Output Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
20.14 NC and Macro Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
20.15 Execution of NC and Macro Instructions in Time . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
20.16 Displaying Macros and Sub-programs in Automatic Mode . . . . . . . . . . . . . . . . . . . . 192
20.17 Using the STOP Button While a Macro Instruction is Being Executed . . . . . . . . . . . . 192
20.18 Pocket-milling Macro Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Index in Alphabetical Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
July 2, 2002
7
Download from Www.Somanuals.com. All Manuals Search And Download.
© Copyright NCT July 2, 2002
The Publisher reserves all rights for contents
of this Manual. No reprinting, even in
extracts, is permissible unless our written
consent is obtained.
The text of this Manual has been compiled
and checked with utmost care, yet we
assume no liability for possible errors or
spurious data and for consequential losses or
demages.
8
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
1 Introduction
1.1 The Part Program
The Part Program is a set of instructions that can be interpreted by the control system in order to
control the operation of the machine.
The Part Program consists of blocks which, in turn, comprise words.
Word: Address and Data
Each word is made up of two parts - an address and a data. The address has one or more
characters, the data is a numerical value (an integer or decimal value). Some addresses may be given
a sign or operator I.
Address Chain:
Address
Meaning
Value limits
O
program number
optional block
0001 - 9999
1 - 9
/
N
G
block number
1 - 99999
*
preparatory function
length coordinates
X, Y, Z, U, V ,W
A, B, C
I, -, *
angular coordinates, length coordinates, auxiliary
functions
I, -, *
R
I, J, K
E
circle radius, auxiliary data
circle center coordinates, auxiliary coordinate
auxiliary coordinate
feed rate
I, -, *
-, *
-, *
F
*
S
spindle speed
*
M
T
miscellaneous function
tool number
1 - 999
1 - 9999
1 - 99
1 - 9999
-, *
H, D
L
number of length and radius compensation cell
repetition number
P
auxiliary data, dwell time
auxiliary data
Q
-, *
,C
,R
,A
(
distance of chamfer
radius of fillet
-, *
-, *
angle of straight line
comment
-, *
*
At an address marked with a * in the Value Limits column, the data may have a decimal value as
well.
At an address marked with I and -, an incremental operator or a sign can be assigned, respectively.
The positive sign + is not indicated and not stored.
9
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
Block
A block is made up of words.
The blocks are separated by characters s (Line Feed) in the memory. The use of a block number
is not mandatory in the blocks. To distinguish the end of block from the beginning of another block
on the screen, each new block begins in a new line, with a character > placed in front of it, in the
case of a block longer than a line, the words in each new line are begun with an indent of one
character.
Program Number and Program Name
The program number and the program name are used for the identification of a program. The use of
program number is mandatory that of a program name is not.
The address of a program numberis O. It must be followed by exactly four digits.
The program name is any arbitrary character sequence (string) put between opening "(" and
closing brackets ")". It may have max. 16 characters.
The program number and the program name are separated by characters s (Line Feed) from the
other program blocks in the memory.
In the course of editing, the program number and the program name will be displayed invariably in
the first line.
There may be not two programs of a given program number in the backing store.
Beginning of Program, End of Program
Each program begins and ends with characters %. In the course of part program editing the
program-terminating character is placed invariably behind the last block in order to ensure that the
terminated locks will be preserved even in the event of a power failure during editing.
Program Format in the Memory
The program stored in the memory is a set of ASCII characters.
The format of the program is
%O1234(PROGRAM NAME)s/1N12345G1X0Y...sG2Z5...s....s
...s
...s
N1G40...M2s
%
In the above sequence of characters,
s
is character "Line Feed",
%
is the beginning (and end) of the program.
Program Format in Communications with External Devices
The above program is applicable also in communications with an external device.
Main Program and Sub-program
The part programs may be divided into two main groups -
main programs, and
subprograms.
The procedure of machining a part is described in the main program. If, in the course of machining
repeated patterns have to be machined at different places, it is not necessary to write those
program-sections over and over again in the main program, instead, a sub-program has to be
organized, which can be called from any place (even from another sub-program). The user can
10
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
return from the sub-program to the calling program.
DNC Channel
A program contained in an external unit (e.g., in a computer) can also be executed without storing it
in the control's memory. Now the control will read the program, instead of the memory, from the
external data medium through the RS232C interface. That link is referred to as "DNC channel". This
method is particularly useful for the execution of programs too large to be contained in the control's
memory.
The DNC channel is a protocol-controlled data transfer channel as shown below.
Controller:
Equipment:
<
BEL
> DC1
ACK
NAK/ACK
DC3
> BLOCK
<
The above mnemonics have the following meanings (and their ASCII codes):
BEL (7): The control requests the sender to establish the communication. The control issues
L again unless ACK is returned in a definite length of time.
ACK (6): acknowledgment.
NAK (21): Spurious data transfer (e.g. hardware trouble in the line or BCC error). The
transfer of BLOCK has to be repeated.
DC1 (17): Transfer of the next BLOCK has to be started.
DC3 (19): Interruption of communication.
BLOCK:
– Basically an NC block (including the terminating character s) and the checksum
thereof (BCC) stored in 7 bits as the last byte of the block (bit 7, the
uppermost one, of BCC is invariably 0). No SPACE (32) or some other
character of lower ASCII code may be contained in the block.
– EOF (26) (End Of File), a signal is transferred by the Equipment ("sender") to
interrupt the communication.
For the DNC mode, set the second physical channel (only that one is applicable as a DNC channel)
for 8-bit even-parity mode.
A main program executed from the DNC channel may have a linear sequence only. This does not
apply to subprogram or macro (if any have been called) however, they must be contained in the
memory of control. In the event of a departure from the linear sequence in the main program
(GOTO, DO WHILE), the control will return error message 3058 NOT IN DNC. If the control
detects a BLOCK error and returns NAK, the BLOCK has to be repeated.
11
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
1.2 Fundamental Terms
The Interpolation
The control system can move the tool along
straight lines and arcs in the course of mach-
ining. These activities will be hereafter referred
to as "interpolation".
Tool movement along a straight line:
program:
G01 Y__
X__ Y__
Fig. 1.2-1
Tool movement along an arc:
program:
G03 X__ Y__ R__
Although, in general, the table with the work-
piece and not the tool moves, this description
will refer to the motion of the tool against the
workpiece.
Fig. 1.2-2
Preparatory Functions (G codes)
The type of activity to be performed by a block is described with the use of preparatory functions
(also referred to as G codes). E.g., code G01 introduces a linear interpolation.
Feed
The term "feed" refers to the speed of the tool
relative to the workpiece during the process of
cutting. The desired feed can be specified in the
program at address F and with a numerical
value. For example F150 means 150
mm/minute.
Fig. 1.2-3
12
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
Reference Point
The reference point is a fixed point on the machine-tool. After power-on of the machine, the slides
have to be moved to the reference point. Afterwards the control system will be able to interpret data
of absolute coordinates as well.
Coordinate System
The dimensions indicated in the part drawing
are measured from a given point of the part.
That point is the origin of the workpiece
coordinate system. Those dimensional data have
to be written at the coordinate address in the
part program. E.g., X340 means a point of
coordinate 340 mm in the coordinate system of
the workpiece.
Fig. 1.2-4
The coordinate system
specified in the control
system and in which the
control interprets the
positions, is different from
the coordinate system of
the workpiece. For the
control system to make a
correct workpiece, the
zero points of the two
coordinate systems have
to be set at the same
position. This can be
Fig. 1.2-5
achieved, e.g., by moving
the tool center to a point
of known position of the part and setting the coordinate system of the control to that value.
13
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
Absolute Coordinate Specification
When absolute coordinates are specified,
the tool travels a distance measured from
the origin of the coordinate system, i.e., to
a point whose position has been specified
by the coordinates.
The code of absolute data specification is
G90.
The block
G90 X50 Y80 Z40
will move the tool to a point of the above
position, irrespective of its position before
the command has been issued.
Fig. 1.2-6
Incremental Coordinate Specification
In the case of an incremental data specification,
the control system will interpret the coordinate
data in such a way that the tool will travel a
distance measured from its instantaneous
position.
The code of incremental data specification is
G91. Code G91 refers to all coordinate values.
The block
G91 X70 Y-40 Z-20
will move the tool over the above distance from
its previous position.
An incremental data may be defined to be
referred to a single coordinate as well. Standing
behind the address of the coordinate, character
I refers to the incremental specification of the
given coordinate value.
Fig. 1.2-7
In block
G90 XI-70 Y80 Z40
the data of X is interpreted as an incremental value, whereas data Y and Z are - for code G90 -
interpreted as absolute coordinates.
Modal Functions
Some codes are effective until another code or value is specified. These are modal codes. E.g., in
program detail
N15 G90 G1 X20 Y30 F180
N16 X30
N17 Y100
14
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
the code of G90 (absolute data specification) and the value of F (Feed), specified in block N15, will
be modal in blocks N16 and N17. Thus it is not necessary to specify those functions in each block
followed.
One-shot (Non-modal) Functions
Some codes or values are effective only in the block in which they are specified. These are one-shot
functions.
Spindle Speed Command
The spindle speed can be specified at address S. It is also termed as "S function". Instruction S1500
tells the spindle to rotate at a speed of 1500 rpm
Tool Function
In the course of machining different tools have to be employed for the various cutting operations.
The tools are differentiated by numbers. Reference can be made to the tools with code T.
Instruction T25 in the program means that tool No. 25 has to be changed. The tool change can be
carried out manually or automatically, depending on the design of the machine.
Miscellaneous Functions
A number of switching operations have to be carried out in the course of machining. For example,
starting the spindle, turning on the coolant. Those operations can be performed with M
(miscellaneous) functions. E.g., in the series of instructions
M3 M8
M3 means “rotate the spindle clockwise”, M8 means "turn on the coolant".
Tool Length Compensation
In the course of machining, tools of
different length are employed for the
various operations. On the other hand, a
given operation also has to be performed
with tools of different lengths in series
production (e.g., when the tool breaks).
In order to make the motions described in
the part program independent of the
length of the tool, the various tool lengths
must be set in control system. If the
program is intended to move the tip of the
Fig. 1.2-8
tool to the specified point, the value of the
particular length data has to be called. This is feasible at address H. E.g., instruction H1 refers to
length data No.1. Henceforth the control will move the tip of the tool to the specified point. That
procedure is referred to as setting “tool length compensation" mode.
15
Download from Www.Somanuals.com. All Manuals Search And Download.
1 Introduction
Cutter Radius Compensation
Machining a workpiece has to be done with tools
of different radii. Radius compensation has to be
introduced in order to write the actual contour data
of the part in the program, instead of the path
covered by the tool center (taking into
consideration the tool radii). The values of radius
compensations have to be set in control system.
Hereinafter reference can be made to cutter
compensations at address D in the program.
Fig. 1.2-9
Wear Compensation
The tools are exposed to wear in the course of machining. Allowance can be made for such
dimensional changes (in length and radius as well) with wear compensations. The tool wear can be
set in the control system. A geometry value, i.e., the initial length and radius of the tool, and a wear
one belong to each compensation group (referred to at address H or D). When the compensation is
set, the control will compensate the movement with the sum of the two values.
16
Download from Www.Somanuals.com. All Manuals Search And Download.
2 Controlled Axes
2 Controlled Axes
Number of Axes (in basic configuration)
In expanded configuration
3 axes
5 additional axes (8 axes altogether)
8 axes (with linear interpolation)
Number of axes to be moved simultaneously
2.1 Names of axes
The names of controlled axes can be defined in the parameter memory. Each address can be
assigned to one of the physical axes.
In the basic configuration, the names of axes
in a milling control system: X, Y and Z.
The names of additional (expansion) axes
depend on their respective types.
Possible names of expansion axes
performing linear motions are: U,V and W.
When they are parallel to the main axes X,Y
and Z, their name will be U,V and W,
respectively.
Axes performing rotational motions are
termed A, B and C. The rotational axes
whose axle of rotation parallel to X, Y and
Z directions are termed A, B and C,
respectively.
Fig. 2.1-1
2.2 Unit and Increment System of Axes
The coordinate data can be specified in 8 digits. They can have signs, too. The positive sign + is
omitted.
The data of input length coordinates can be specified in mm or inches. They are the units of input
measures. The desired one can be selected from the program.
The path-measuring device provided on the machine can measure the position in mm or in inches. It
will determine the output unit of measures, which has to be specified by the control system as a
parameter. The two units of measures may not be combined on a given machine.
In the case of different input and output units of measures, the control system will automatically
perform the conversion.
17
Download from Www.Somanuals.com. All Manuals Search And Download.
2 Controlled Axes
The rotational axes are always provided with degrees as units of measure.
The input increment systemof the control is regarded as the smallest unit to be entered. It can be
selected as parameter. There are three systems available - IS-A IS-B and IS-C. The increment
systems may not be combined for the axes on a given machine.
Having processed the input data, the control system will provide new path data for moving the axes.
Their resolution is always twice the particular input increment system. It is termed the output
increment systemof the control.
Thus the input increment system of the control is determined by the resolution of the encoder.
Increment system
IS-A
Min. unit to be entered
0.01 mm
Max. unit to be entered
999999.99 mm
0.001 inch
99999.999 inch
999999.99 degree
99999.999 mm
9999.9999 inch
99999.999 degree
9999.9999 mm
999.99999 inch
9999.9999 degree
0.01 degree
0.001 mm
IS-B
IS-C
0.0001 inch
0.001 degree
0.0001 mm
0.00001 inch
0.0001 degree
18
Download from Www.Somanuals.com. All Manuals Search And Download.
3 Preparatory Functions (G codes)
3 Preparatory Functions (G codes)
The type of command in the given block will be determined by address G and the number following
it.
The Table below contains the G codes interpreted by the control system, the groups and functions
thereof.
Group
Page
G code
G00*
Function
positioning
22
22
24
24
52
G01*
linear interpolation
01
G02
circular, helical interpolation, clockwise (CW)
circular, helical interpolation, counter-clockwise (CCW)
dwell
G03
G04
G05.1
G07.1
G09
multi-buffer mode on
35
Cylindrical interpolation
00
exact stop (in the given block)
data setting (programmed)
49
59, 79
G10
G11
programmed data setting cancel
Polar coordinate interpolation on
Polarc coordinate interpolation off
polar coordinate command cancel
polar coordinate command
G12.1
G13.1
G15*
G16
31
31
26
17
38
38
G17*
G18*
G19
selection of XpYp plane
62
02
selection of ZpXp plane
62
selection of YpZp plane
62
G20
inch input
40
06
04
8
G21
metric input
40
G22*
G23
programable stroke check function on
programable stroke check function off
spindle speed fluctuation detection off
spindle speed fluctuation detection on
programmed reference-point return
return from reference point
return to the 1st, 2nd, 3rd and 4th reference point
skip function
158
158
67
G25*
G26
67
G28
53
G29
54
0
G30
54
G31
155
29
G33
01
00
thread cutting
G37
Automatic tool-length measurement
cutter compensation vector hold
156
100
G38
19
Download from Www.Somanuals.com. All Manuals Search And Download.
3 Preparatory Functions (G codes)
Group
Page
G code
Function
G39
G40*
G41
G42
G43*
G44*
G45
G46
G47
G48
G49*
G50*
G51
G50.1*
G51.1
G52
G53
G54*
G55
G56
G57
G58
G59
G61
G62
G63
G64*
G65
G66
G66.1
G67
G68
G69*
G73
G74
G76
cutter compensation corner arc
100
85
cutter radius/3 dimensional tool compensation cancel
cutter radius compensation left/3 dimensional tool compensation
cutter radius compensation right
tool length compensation +
tool length compensation –
tool offset increase
85, 88
85, 88
07
08
80
80
81
tool offset decrease
81
00
tool offset double increase
81
tool offset double decrease
81
08
11
tool length compensation cancel
scaling cancel
80
116
116
117
117
60
scaling
programable mirror image cancel
programable mirror image
18
00
local coordinate system setting
positioning in the machine coordinate system
work coordinate system 1 selection
work coordinate system 2 selection
work coordinate system 3 selection
work coordinate system 4 selection
work coordinate system 5 selection
work coordinate system 6 selection
exact stop mode
57
58
58
58
14
58
58
58
49
automatic corner override mode
override inhibit
50
15
50
continuous cutting
50
simple macro call
161
162
163
162
115
115
138
139
140
macro modal call (A) in every motion command
macro modal (B) call from each block
macro modal call (A/B) cancel
coordinate system rotation
16
09
coordinate system rotation cancel
High Speed Peck Drilling Cycle
counter tapping cycle
fine boring cycle
20
Download from Www.Somanuals.com. All Manuals Search And Download.
3 Preparatory Functions (G codes)
Group
Page
G code
G80*
Function
canned cycle cancel
drilling, spot boring cycle,
drilling, counter boring cycle
peck drilling cycle
tapping cycle
141
141
142
143
144
145
145
148
149
150
152
153
38
G81
G82
G83
G84
G84.2
G84.3
G85
rigid tap cycle
rigid counter tap cycle
boring cycle
G86
Boring Cycle Tool Retraction with Rapid Traverse
Boring Cycle/Back Boring Cycle
G87
G88
Boring Cycle (Manual Operation on the Bottom Point)
Boring Cycle (Dwell on the Bottom Point, Retraction with Feed)
absolute command
G89
G90*
G91*
G92
03
00
05
incremental command
38
work coordinates change/maximum spindle speed setting
feed per minute
59
G94*
G95*
G96
46
feed per revolution
46
constant surface speed control
65
13
10
G97*
G98*
G99
constant surface speed control cancel
canned cycle initial level return
65
133
133
canned cycle R point level return
L Notes:
– The * marked G codes in a group represent the state assumed by the control system after power-
on.
– If several codes are marked with * in a group, a parameter can be set to select the effective one
after power-on. They are : G00, G01; G17, G18; G43, G44, G49; G90, G91; G94, G95.
– At the time of power-on, the particular one of G20 and G21 will be effective, that has been set at
the time of power-off.
– Default interpretation of command G05.1 after power-on can be specified with the MULBUF
parameter.
– G codes in group 00 are not modal ones; the rest are so.
– More than one G code can be written in a block with the restriction that only one of the same
function group may used.
– Reference to an illegal G code or specification of several G codes belonging to the same group
within a particular block will produce error message 3005 ILLEGAL G CODE.
21
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
4 The Interpolation
4.1 Positioning (G00)
The series of instructions
G00 v
refers to a positioning in the current coordinate system.
It moves to the coordinate v. Designation v (vector) refers here (and hereinafter) to all controlled
axes used on the machine-tool. (They may be X, Y, Z, U, V, W, A, B, C)
The positioning is accomplished along a straight line involving the simultaneous movements of all axes
specified in the block. The coordinates may be absolute or incremental data.
The speed of positioning cannot be commanded in
the program because it is accomplished with
different values for each axis, set by the builder of
machine-tool as a parameter. When several axes
are being moved at a time, the vectorial resultant of
speed is computed by the control system in such a
way that positioning is completed in a minimum
interval of time, and the speed will not exceed
anywhere the rapid traverse parameter set for each
axis.
In executing the G00 instruction, the control system
Fig. 4.1-1
performs acceleration and declaration in starting
and ending the movements, respectively. On completion of the movement, the control will check the
"in position" signal when parameter POSCHECK in the field of parameters is 1, or will not do so
when the parameter is set to 0. It will wait for the "in position" signal for 5 seconds, unless the signal
arrives, the control will return the 1020 POSITION ERROR message. The maximum acceptable
deviation from the position can be specified in parameter INPOS.
Being a modal code, G00 remains effective until it is re-written by another interpolation command.
After power-on, G00 or G01 is effective, depending on the value set in parameter group CODES of
the parameter field.
4.2 Linear Interpolation (G01)
The series of instructions
G01 v F
will select a linear interpolation mode. The data written for v may be absolute or incremental values,
interpreted in the current coordinate system. The speed of motion (the feed) can be programmed at
address F.
The feed programmed at address F will be accomplished invariably along the programmed path. Its
axial components:
Feed along the axis X is
22
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
Feed along the axis Y is
.............................
Feed along the axis U is
.............................
Feed along the axis C is
where x, y, u, c are the displacements programmed along the respective axes, L is the vectorial
length of programmed displacement:
G01 X100 Y80 F150
Fig. 4.2-1
The feed along a rotational axis is interpreted in units of
degrees per minute (°/min):
G01 B270 F120
In the above block, F120 means 120deg/minute.
If the motion of a linear and a rotary axis is combined
through linear interpolation, the feed components will be
distributed according to the above formula. E.g. in block
G91 G01 Z100 B45 F120
Fig. 4.2-2
feed components in Z and B directions are:
feed along axis Z:
feed along axis B:
mm/min
°/min
Being a modal code, G01 is effective until rewritten by another interpolation command. After
power-on, G00 or G01 is effective, depending on the parameter value set in group CODES of the
parameter field.
23
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
4.3 Circular and Spiral Interpolation (G02, G03)
The series of instructions specify circular interpolation.
A circular interpolation is accomplished in the plane selected by commands G17, G18, G19 in
clockwise or counter-clockwise direction (with G02 or G03, respectively).
Fig. 4.3-1
Here and hereinafter, the meanings of X , Yp, and Zp are:
p
Xp: axis X or its parallel axis,
Yp: axis Y or its parallel axis,
Zp: axis Z or its parallel axis.
The values of X , Yp, and Zp are the end-point coordinates of the circle in the given coordinate
p
system, specified as absolute or incremental data.
24
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
Further data of the circle may be specified in one of two different ways.
Case 1
At address R where R is the radius of the circle. Now the control will automatically calculate the
coordinates of the circle center from the start point coordinates (the point where the control is in the
instant of the circle block being entered), the end point coordinates (values defined at addresses Xp,
Yp, Zp) and from the programmed circle radius R. Since
two different circles of radius R can be drawn between
the start and the end points for a given direction of
circumventing (G02 or G03), the control will interpolate
an arc smaller or larger than 180° when the radius of the
circle is specified as a positive or a negative number,
respectively. For example:
Arc section 1: G02 X50 Y40 R40
Arc section 2: G02 X50 Y40 R-40
Arc section 3: G03 X50 Y40 R40
Arc section 4: G03 X50 Y40 R-40
Fig. 4.3-2
Case 2
The circle center is specified at address I, J, K for the Xp, Yp and Zp axes. The values specified at
addresses I, J, K are interpreted always incrementally by the control system, so that the vector
defined by the values of I, J, K points from the start point to the center of the circle. For example:
With G17: G03 X10 Y70 I-50 J-20
With G18: G03 X70 Z10 I-20 K-50
With G19: G03 Y10 Z70 J-50 K-20
Fig. 4.3-3
25
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
The feed along the path can be programmed at address F,
pointing in the direction of the circle tangent, and being
constant all along the path.
L Notes:
– I0, J0, K0 may be omitted, e.g.
G03 X0 Y100 I-100
– When each of Xp, Yp and Zp is omitted, or the end point
coordinate coincides with the start point coordinate,
then:
a. If the coordinates of the circle center are
programmed at addresses, I, J, K the
control will interpolate a complete circle of
360°. E.g.: G03 I-100,
Fig. 4.3-4
b. If radius R is programmed, the control returns error 3012 ERRONEOUS CIRCLE DEF.
R.
– When the circle block
a. does not contain radius (R) or I, J, K either,
b. or reference is made to address I, J, K outside the selected plane, the control returns
3014 ERRONEOUS CIRCLE DEF. error. E.g. G03 X0 Y100, or (G18) G02 X0
Z100 J-100.
– The control returns error message 3011 RADIUS DIFFERENCE whenever the difference
between the start-point and end-point radii of the circle defined in block G02, G03 exceeds
the value defined in parameter RADDIF.
Whenever the difference of radii is
smaller than the value specified in
the above parameter, the control
will move the tool along a spiral
path in which the radius is varying
linearly with the central angle.
The angular velocity, not the one
tangential to the path will be
constant in the interpolation of a
Fig. 4.3-5
circle arc of a varying radius.
26
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
The program detail below is an example of how
a spiral interpolation (circle of varying radius)
can be specified by the use of addresses I, J, K.
G17 G90 G0 X50 Y0
G3 X-20 I-50
Fig. 4.3-6
If the specified circle radius is smaller than half
the distance of straight line inter-connecting the
start point with the end point, the control will
regard the specified radius of the circle as the
start-point radius, and will interpolate a circle of
a varying radius (spiral), whose center point is
located on the straight line connecting the start
point with the end point, at distance R from the
start point.
G17 G0 G90 X0 Y0
G2 X40 Y30 R10
Fig. 4.3-7
4.4 Helical Interpolation (G02, G03)
The series of instructions will define a helical interpolation.
It is distinguished from circular interpolation that a third axis (q), which is not an axis composing the
circular plane. The control performs a simple movement along axis q.
27
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
The feed specified at address F is effective
along the circle path. Feed component Fq along
axis q is obtained from the relationship
where
Lq: displacement along axis q,
Larc: length of circular arc,
F: programmed feed,
Fq: feed along axis q.
Fig. 4.4-1
For example:
G17 G03 X0 Y100 Z20 R100 F150
The series of instructions
define a multi-dimensional spatial helical interpolation in which q, r, s are optional axes not involved
in the circle interpolation.
For example, series of instructions
G17 G3 X0 Y-100 Z50 V20 I-100
will move the tool along the superficies of an
oblique cylinder if V is an axis parallel to Y.
L Notes:
– Whenever parameter HELICALF in the field
of parameters is set to 1, the control will
implement the programmed feed along
the spatial path.
– In the case of the circle specified in the
selected plane having a varying radius,
the interpolation will be carried out
Fig. 4.4-2
along the superficies of the specified
cone.
28
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
– The specified tool-radius compensation is implemented invariably in the plane of the circle.
4.5 Equal Lead Thread Cutting (G33)
The instruction
G33 v F Q
G33 v E Q
will define a straight or taper thread cutting of equal lead.
The coordinates of maximum two axes can be
written for vector v. The control will cut a
tapered thread if two coordinated data are
assigned to vector v. The control will take the
lead into consideration along the long axis.
If " <45°, i.e. Z>X, the programmed lead will
be taken into account along axis Z,
if " >45°, i.e. X>Z, the control will take the
programmed lead along axis X.
The lead can be defined in one of two 2 ways.
– If the lead is specified at address F, the data
Fig. 4.5-1
will be interpreted in mm/rev or
inch/rev. Accordingly, F2.5 has to be
programmed if a thread of 2.5 mm lead is to be cut.
– If the pitch is specified at address E, the control will cut an inch thread. Address E is interpreted
as number of ridges per inch. If, e.g., E3 is programmed, the control will cut a thread
a"=25.4/3=8.4667mm lead.
The shift angle of the thread start is specified at address Q expressed in degrees from the zero pulse
of the spindle encoder. A multiple thread can be cut by an adequate programming of the value of Q,
i.e., the control can be programmed here for the particular angular displacements of the spindle, at
which the various threads are to be cut. If, e.g., a double thread is to be cut, the first and the second
starts will be commenced from Q0 (no special programming is needed) and from Q180,
respectively.
G33 is a modal function. If several thread-
cutting blocks are programmed in succession,
threads can be cut in any arbitrary surface
limited by straight lines.
Fig. 4.5-2
The control is synchronized to the zero pulse of the spindle encoder in the first block, no
synchronization will be performed in the subsequent blocks resulting in a continuous thread in each
section of lines. Hence the programmed shift angle of the thread start (Q) will also be taken into
account in the first block.
29
Download from Www.Somanuals.com. All Manuals Search And Download.
4 The Interpolation
An example of programming a thread-cutting:
N50 G90 G0 X0 Y0 S100 M4
N55 Z2
N60 G33 Z-100 F2
N65 M19
N70 G0 X5
N75 Z2 M0
N80 X0 M4
N85 G4 P2
N90 G33 Z-100 F2
...
Explanation:
N50, N55 - Moving the tool over the center of hole, starting
the spindle in counter-clockwise rotation,
N60 - First thread-cutting cycle, (lead 2mm),
N65 - Oriented spindle stop (the spindle is stopped in a
fixed position),
N70 - Tool retraction along axis X,
N75 - Tool retraction to the top of hole, programmed stop,
the operator adjust the tool to the next thread-cutting
cycle,
Fig. 4.5-3
N80 - Return to the center of hole, re-start of spindle,
N85 - Waiting for the speed to be assumed by the spindle,
N90 - Second thread-cutting cycle.
L Notes:
– The control returns error message 3020 DATA DEFINITION ERROR G33 if more than two
coordinates are specified at a time in the thread-cutting block, or if both addresses F and E
are specified simultaneously.
– Error message 3022 DIVIDE BY 0 IN G33 is produced when 0 is specified for address E in the
thread-cutting block.
– An encoder has to be mounted on the spindle for the execution of command G33.
– In the course of command G33 being executed, the control will take the feed and spindle override
values automatically to be 100%; the effect of the stop key will only prevail after the block
has been executed.
– On account of the following error of the servo system, overrun and run out allowances have to be
provided for the tool in addition to the part at the beginning and end of the thread in order to
obtain a constant lead all along the part.
– In the course of thread-cutting the feed (in mm/minute) may not exceed the value selected in the
group of parameters FEEDMAX.
– In the course of thread-cutting the speed (r.p.m) of the spindle may not exceed the maximum
speed permissible for the spindle encoder mechanically and electrically (the maximum output
frequency).
30
Download from Www.Somanuals.com. All Manuals Search And Download.
4.6 Polar Coordinate Interpolation (G12.1, G13.1)
4.6 Polar Coordinate Interpolation (G12.1, G13.1)
Polar coordinate interpolation is a control operation method, in case of which the work described in
a Cartesian coordinate system moves its contour path by moving a linear and a rotary axis.
Command
G12.1
switches polar coordinate interpolation mode on. The path of the milling tool can be described in the
succeeding part program in a Cartesian coordinate system in the usual way by programming linear
and circular interpolation, by taking the tool radius compensation into account. The command must
be issued in a separate block and no other command can be written beside.
Command
G13.1
switches polar coordinate interpolation mode off. The command must be issued in a separate
block and no other command can be written beside. It always registers state G13.1 after power-
on or reset.
Plane selection
A plane determining the address of the linear and the rotary axis to be applied must be selected
before switching polar coordinate interpolation on.
Fig. 4.6-1
Command
G17 X_ C_
selects axis X for linear axis, while as for the rotary axis it is axis C. The virtual axis is indicated with
C’ on the diagram, the programming of which is implemented by defining length measures.
With the help of commands
G18 Z_ B_
G19 Y_ A_
further linear and rotary axes can be selected together in the above mentioned way.
Work zero point offset in the course of polar coordinate interpolation
In case of using polar coordinate interpolation the origin of the applied work coordinate system must
be chosen so that it coincides with the rotation axis of the circular axis.
Position of the axes when polar coordinate interpolation is switched on
Before switching polar coordinate interpolation on (command G12.1) make sure that the circular
axis position is 0. The linear axis position can either be negative or positive but it cannot be 0.
31
Download from Www.Somanuals.com. All Manuals Search And Download.
4.6 Polar Coordinate Interpolation (G12.1, G13.1)
Programming length coordinates in the course of polar coordinate interpolation
In the switched-on state of the polar coordinate interpolation length coordinate data may be
programmed on both axes belonging to the selected plane; The rotary axis in the selected plane
functions as the second (virtual) axis. If e.g. axes X and C have been selected by means of
command G17 X_ C_ address C can be programmed like axis Y in the case of plane selection G17
X_ Y_.
The programming of the first axis being in diameter does not influence the programming of the
virtual axis, the coordinate data must always be given in radius for the virtual axis. If, e.g., polar
coordinate interpolation is executed in plane X C the value written at address C must be specified in
radius, independent of address X given in diameter or radius.
Move of axes not taking part in polat coordinate interpolation
The tool on these axes moves normally, independent of the switched-on state of the polar
coordinate interpolation.
Programming circular interpolation in the course of polar coordinate interpolation
Definition of a circle in polar coordinate interpolation mode is possible as known by means of the
radius or by programming the circle center coordinates. In the latter case addresses I, J, K must be
used according to the selected plane as seen below:
G17 X_ C_
G18 Z_ B_
G19 Y_ A_
G12.1
G12.1
G12.1
...
...
...
G2 (G3) X_ C_ I_ J_
G2 (G3) B_ Z_ I_ K_
G2 (G3) Y_ A_ J_ K_
Use of tool radius compensation in case of polar coordinate interpolation
Commands G41, G42 can be used customary in polar coordinate interpolation. The following
restrictions must be considered regarding its application:
– Switch-on of polar coordinate interpolation (command G12.1) is only possible in state G40,
– If G41 or G42 is switched on in state G12.1, G40 must be programmed before switching polar
coordinate interpolation off (command G13.1).
Programming restrictions in the course of polar coordinate interpolation
The below commands cannot be used in the switched-on state of polar coordinate interpolation:
– plane change: G17, G18, G19,
– coordinate transformations: G52, G92,
– work coordinate system change: G54, ..., G59,
– orientation in machine coordinate system: G53.
Feed in the course of polar coordinate interpolation
Interpretation of feed in polar coordinate interpolation is tangential speed as in case of right angle
interpolation: The relative speed of piece and tool is defined.
With polar coordinate interpolation the path described in a Cartesian coordinate system is done by
moving a linear and a rotary axis. As the tool center approaches the circular axis of rotation, the
rotary axis should have to take larger and larger steps within a time unit so that the path speed is
constant. However the maximum speed permitted for the rotary axis defined by parameter limits
circular axis speed. Therefore, near to the origin the control decreases feed step by step for the
rotary axis speed not to exceed all limits.
32
Download from Www.Somanuals.com. All Manuals Search And Download.
4.6 Polar Coordinate Interpolation (G12.1, G13.1)
The diagram beside shows the cases when
straight lines parallel to axis X (1, 2, 3, 4) are
programmed. ) x move belongs to the
programmed feed within a time unit. Different
angular moves (n1, n2, n3, n4) belong to ) x
move for each straight lines (1, 2, 3, 4).
Apparently, the closer the machining gets to the
origin the larger angular movement the rotary
axis has to make within a time unit in order to
keep the programmed feed.
In case the angular move to be made within a
time unit exceeds the value of parameter
FEEDMAX set for rotary axis the control
gradually decreases the tangential feed.
With these in mind, programs in case of which
the tool center moves close to the origin are to
be avoided.
Fig. 4.6-2
Example
Below an example for
the use of polar
coordinate
interpolation is shown.
The axes taking part
in the interpolation:
Axes X (linear axis)
and C (rotary axis).
Axis X is
programmed in
diameter, while that of
axis C is in radius.
Fig. 4.6-3
%O7500(POLAR COORDINATE INTERPOLATION)
...
N050 T808
N060 G59
(start position of coordinate system G59 in
33
Download from Www.Somanuals.com. All Manuals Search And Download.
4.6 Polar Coordinate Interpolation (G12.1, G13.1)
direction X on rotary axis C)
(select plane X, C; orientation to coordinate
X…0, C=0)
N070 G17 G0 X200 C0
N080 G94 Z-3 S1000 M3
N090 G12.1
(polar coordinate interpolation on)
N100 G42 G1 X100 F1000
N110 C30
N120 G3 X60 C50 I-20 J0
N130 G1 X-40
N140 X-100 C20
N150 C-30
N160 G3 X-60 C-50 R20
N170 G1 X40
N180 X100 C-20
N190 C0
N200 G40 G0 X150
N210 G13.1
N220 G0 G18 Z100
...
(polar coordinate interpolation off)
(Retract tool, select plane X, Z)
%
34
Download from Www.Somanuals.com. All Manuals Search And Download.
4.7 Cylindrical Interpolation (G7.1)
4.7 Cylindrical Interpolation (G7.1)
Should a cylindrical cam grooving be milled on a cylinder mantle, cylindrical interpolation is to be
used. In this case the rotation axis of the cylinder and of a rotary axis must coincide. The rotary axis
movements are specified in the program in degrees, which are converted into linear movement along
the mantle by the control in function of the cylinder radius, so that linear and circular interpolation
can be programmed together with another linear axis. The movements resulted after the
interpolations, are re-converted into movement in degrees for the rotary axis.
Command cylindrical interpolation on
G7.1 Qr
switches cylindrical interpolation on, where
Q: address of rotary axis taking part in the cylindrical interpolation,
r: cylinder radius.
If for example the rotary axis acting in cylindrical interpolation is axis C and the cylinder radius is 50
mm, cylindrical interpolation is switched on by means of command G7.1 C50.
In the succeeding part program the path to be milled on the cylinder mantle can be described by
specifying linear and circular interpolation. The coordinate for the linear axis must be given in mm,
while that of the rotary axis in degrees (°).
Command cylindrical interpolation off
G7.1 Q0
switches cylindrical interpolation off, i.e. code G corresponds to that of the switch-on, except for the
address of rotary axis being 0.
The cylindrical interpolation indicated in the above example (G7.1 C50) can be switched off with the
help of command G7.1 C0.
Command G7.1 must be issued in a separate block.
Plane selection
The plane selection code is always determined by the name of the
linear axis parallel to the rotary axis. The rotary axes parallel to
axes X, Y and Z are axes A, B and C, respectively.
G17 X A or
G17 B Y
G18 Z C or
G18 A X
G19 Y B or
G19 C Z
Circular interpolation
It is possible to define circular interpolation in cylindrical
interpolation mode, however only by specifying radius R.
No circular interpolation can be executed in case of
cylindrical interpolation by giving the circle center (I, J, K).
The circle radius is always interpreted in mm or inch, never in
degree.
Fig. 4.7-1
For example circular interpolation between axes Z and C can be specified in two ways:
G18 Z_ C_
G19 C_ Z_
G2 (G3) Z_ C_ R_
G2 (G3) C_ Z_ R_
35
Download from Www.Somanuals.com. All Manuals Search And Download.
4.7 Cylindrical Interpolation (G7.1)
Application of tool radius compensation in case of cylindrical interpolation
Commands G41, G42 can be used in the usual manner in the switched-on state of cylindrical
interpolation. Though the following restrictions are in effect regarding its application:
– Switch-on of cylindrical interpolation (command G7.1 Qr) is only possible in state G40.
– Should G41 or G42 be switched on in cylindrical interpolation mode, G40 must be programmed
before switching cylindrical interpolation off (command G7.1 Q0).
Programming restrictions in the course of cylindrical interpolation
The following commands are not available in the switched-on state of cylindrical interpolation:
– plane selection: G17, G18, G19,
– coordinate transformations: G52, G92,
– work coordinate system change: G54, ..., G59,
– positioning in machine coordinate system: G53,
– circular interpolation by giving circle center (I, J, K),
– drilling cycles.
Example
The diagram beside shows a
path milled 3 mm deep on
the mantle of an R=28.65-
mm-radial cylinder. Rotating
tool T606 is parallel to the
axis X.. 1° movement on the
cylinder mantle is:
1
°
28.65mm
× p
=
0.5mm
× 180°
The axis order seen on the
diagram corresponds to
plane selection G19.
Fig. 4.7-2
%O7602(CYLINDRICAL INTERPOLATION)
...
N020 G0 X200 Z20 S500 M3 T606
N030 G19 Z-20 C0
(G19: select plane C–Z)
N040 G1 X51.3 F100
N050 G7.1 C28.65
(cylindrical interpolation on, rotary
axis: C, cylinder radius: 28.65mm)
N060 G1 G42 Z-10 F250
N070 C30
N080 G2 Z-40 C90 R30
N090 G1 Z-60
N100 G3 Z-75 C120 R15
N110 G1 C180
N120 G3 Z-57.5 C240 R35
N130 G1 Z-27.5 C275
36
Download from Www.Somanuals.com. All Manuals Search And Download.
4.7 Cylindrical Interpolation (G7.1)
N140 G2 Z-10 C335 R35
N150 G1 C360
N160 G40 Z-20
N170 G7.1 C0
N180 G0 X100
...
(cylindrical interpolation off)
%
37
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
5 The Coordinate Data
5.1 Absolute and Incremental Programming (G90, G91), Operator I
The input coordinate data can be specified as absolute or incremental values. In an absolute
specification, the coordinates of the end point have to be specified for the control, for an incremental
data, it is the distance to go in the block.
G90: Programming of absolute data
G91: Programming of incremental data
G90 and G91 are modal functions. Parameter CODES will decide which state will be assumed by
the control system at the time of power-on.
Movement to an absolute position is only feasible after a reference point return.
Example:
As shown in the Figure, a movement can be
programmed in one of two different ways.
G90 G01 X20 Y50
G91 G01 X-40 Y30
Operator I will be effective under the conditions of an
absolute data specification. It is only applicable to the
coordinate, whose address precedes it. It means an
incremental data. The alternative way of solving the
above example:
(G90) G01 XI-40 YI30
G01 X20 YI30
G01 XI-40 Y50
Fig. 5.1-1
5.2 Polar Coordinates Data Command (G15, G16)
Alternatively, the coordinates of the end point can be entered with polar coordinate data
specification, i.e., with the specification of angle and radius.
G16: Polar coordinate data command
G15: Polar coordinate data command cancel
The control is in G15 state after power on. G15 and G16 are modal functions.
The data of polar coordinates are effective in the plane defined by G17, G18, G19. When a data is
specified, the addresses of the plane's horizontal and vertical axes are regarded as radius and angle,
respectively. For example, in G17 sate, the data written at addresses X(U) and Y(V) are the radius
and angle, respectively. CAUTION! In state G18, Z and X are the horizontal and the vertical axes
(data of R and angle, respectively).
When an angular data is specified, the positive and the negative directions of the angle are counter-
clockwise and clockwise, respectively.
The data of the rest of axes will be assumed to be Cartesian coordinate data. The radius and the
angle can be specified both as absolute and as incremental data.
When the radius is specified as an absolute data, the origin of the current coordinate system will be
the origin of the polar coordinate system:
38
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
Example:
G90 G16 G01 X100 Y60 F180
Both the radius and the angle are
absolute data, the tool moves to the
point of 100mm; 60°.
G90 G16 G01 X100 YI40 F180
The angle is an incremental data. A
movement by 40° relative to the
previous angular position is moved.
With the radius, specified as an
Fig. 5.2-1
incremental value, the instantaneous
position of the axes will be the origin
of the polar coordinate system.
A circle can be programmed with
polar coordinate data command
(G16). The circle can be also specified
with the radius and I, J, K as well. In
the latter case, however, the control
will regard addresses I, J, K invariably
as Cartesian data. When the origin of
the current coordinate system
coincides with the center of a circle or
a helix, a multiple turn one can also be
Fig. 5.2-2
programmed with polar coordinate data specification.
Example:
(G17 G16 G90) G02 X100 Y-990 Z50 R-100
A helix of 2¾ turns has been specified in the above block in counter-clockwise direction of rotation.
In programming a multiple-turn circle, bear in mind that a negative or a positive polar angle has to be
programmed for direction G2 or G3, respectively.
L Notes:
The addresses encountered in the following instructions will not be regarded as polar coordinate
specifications even when state G16 is:
– G10 coordinates encountered in setting instruction,
– G52 coordinate offset,
– G92 coordinate setting,
– G53 positioning in machine coordinate system,
– G68 coordinate rotation,
– G51 scaling on,
– G50.1 programmable mirror image.
An example of milling a hexagon:
N1 G90 G17 G0 X60 Y0 F120
N2 G16 G1 Y60
Fig. 5.2-3
39
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
N3 Y120
N4 Y180
N5 Y240
N6 Y300
N7 Y360
N8 G15 G0 X100
5.3 Inch/Metric Conversion (G20, G21)
With the appropriate G code programmed, the input data can be specified in metric or inch units.
G20: Inch input programming
G21: Metric input programming
At the beginning of the program, the desired input unit has to be selected by specifying the
appropriate code. The selected unit will be effective until a command of opposite meaning is issued,
i.e., G20 and G21 are modal codes. Their effect will be preserved even after power-off, i.e., the unit
prevailing at the time of power-off will be effective after power-on.
The change of the unit will affect the following items:
– Coordinate and compensation data,
– Feed,
– Constant surface speed
– Position, compensation and feed displays.
5.4 Specification and Value Range of Coordinate Data
Coordinate data can be specified in 8 decimal digits.
The decimal point will be interpreted as the function of the unit of measure applied:
– X2.134 means 2.134 mm or 2.134 inch,
– B24.36 means 24.36 degrees when address B refers to a rotary axis.
The use of a decimal point is not mandatory.
– X325 means e.g. 325 mm.
The leading zeros may be omitted.
– .032=0.032
The trailing zeros may be omitted behind the decimal point.
– 0.320=.32
The control will interpret a number with more decimals defined by the increment system. For
example, command X1.23456 will be, when IS-B increment system is selected, interpreted as
– 1.235 mm (metric unit),
– 1.2346 inch (inch unit).
Accordingly, the input data will be output as rounded values.
40
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
The value ranges of the length coordinates are shown in the Table below.
input unit
output unit
increment
system
value range of length
coordinates
unit of
measure
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
± 0.01-999999.99
± 0.001-99999.999
± 0.0001-9999.9999
± 0.001-39370.078
± 0.0001-3937.0078
± 0.00001-393.70078
± 0.001-99999.999
± 0.0001-9999.9999
± 0.00001-999.99999
± 0.01-999999.99
mm
inch
inch
mm
mm
mm
inch
inch
mm
inch
inch
mm
± 0.001-99999.999
± 0.0001-9999.9999
The value ranges of angular coordinates:
increment system
value range of angular coordinates
± 0.01-999999.99
unit of measure
degrees
IR-A
IR-B
IR-C
± 0.001-99999.999
± 0.0001-9999.9999
5.5 Rotary Axis Roll-over
This function can be used in case of rotary axes, i.e., if address A, B or C is selected for operating
rotary axis. Handling of roll-over means, that the position on the given axis is not registered between
plus and minus infinity, but regarding the periodicity of the axis, e.g., between 0/ and 360/.
Selecting rotary axis
The selection can be executed by setting parameter 0182 A.ROTARY, 0185 B.ROTARY or 0188
C.ROTARY to 1 for axes A, B or C, respectively. If among these parameters one is set to 1
– the control does not execute inch/metric conversion for the appropriate axis,
– roll-over function can be enabled for that axis by setting the appropriate parameter ROLLOVEN
to 1.
41
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
Enabling the handling of roll-over
The function is affected by setting parameter 0241 ROLLOVEN_A, 0242 ROLLOVEN_B or
0243 ROLLOVEN_C to 1 for axes A, B or C, respectively, provided the appropriate axis is a
rotary one. If the given parameter ROLLOVEN_x
– =0: the rotary axis is regarded as linear axis and the setting of further parameters is uneffective,
– =1: handling of roll-over is applied for the rotary axis, the essence of which is discussed below.
Specifying path per roll-over
The path per one roll-over of the axis is defined at parameter 0261 ROLLAMNT_A, 0262
ROLLAMNT_B or 0263 ROLLAMNT_C in input increment for axes A, B or C, respectively.
Thus if the control is operating in increment system B and the axis rotates 360° per one roll-over,
the value to be written at the appropriate parameter is 360000.
With the help of the above parameter settings the control always displays the position of the rotary
axis in range 0°- +359.999° independent of the direction of rotation and the number of revolutions.
Movement of rotary axis in case of absolute programming
In case of absolute data input, when handling of roll-over is enabled for rotary axis
(ROLLOVEN_x=1), the axis never moves more than that set at appropriate parameter
ROLLAMNT_x. That is, if, e.g., ROLLAMNT_C=360000 (360/), the maximum movement is
359.999°.
For the movement direction to always be according to the sign of position given at the axis address
or in the shorter way can be set on the basis of parameter 0244 ABSHORT _A, 0245
ABSHORT_B or 0246 ABSHORT_C. If appropriate parameter ABSHORT_x
– =0: it always moves in the direction of the sign of the programmed position
– =1: it always moves in the shorter direction.
0188 C.ROTARY=1,
Block programmed by absolute
coordinate input
Movement affected
by block
Position at
block end
0243 ROLLOVEN_C=1
0263 ROLLAMNT_C = =360000
0246 ABSHORT_C=0
C=0
G90 C450
90
C=90
C=0
it always moves in direction of
sign programmed at address C
G90 C0 (0 is a positive number!)
G90 C–90
270
–90
C=270
C=0
G90 C–360
–270
0246 ABSHORT_C=1
C=0
G90 C450
G90 C0
90
C=90
C=0
it always moves in the shorter
direction
–90
–90
90
G90 C–90
G90 C–360
C=270
C=0
42
Download from Www.Somanuals.com. All Manuals Search And Download.
5 The Coordinate Data
Movement of rotary axis in case of incremental programming
In case of programming incremental data input the direction of movement is always according to the
programmed sign.
The appropriate parameter ROLLAMNT_x to be applied for movement setting can be set at
parameter 0247 RELROUND_A, 0248 RELROUND_B or 0249 RELROUND_C for axis A, B
or C, respectively. If the appropriate parameter RELROUND_x
– =0: parameter ROLLAMNT_x is out of use, i.e. the movement can be greater than 360/,
– =1: parameter ROLLAMNT_x is in use. If, e.g., ROLLAMNT_C=360000 (360/), the largest
movement on axis C may be 359.999°.
0188 C.ROTARY=1,
Block programmed by
incremental data input
Movement affected
by block
Position at
block end
0243 ROLLOVEN_C=1
0263 ROLLAMNT_C = =360000
0249 RELROUND_C=0
C=0
G91 C450
450
C=90
C=90
C=0
parameter ROLLAMNT_C is out of
use
G91 C0
0
G91 C–90
G91 C–360
–90
–360
C=0
0249 RELROUND_C=1
C=0
G91 C450
G91 C0
90
0
C=90
C=90
C=0
parameter ROLLAMNT_C is in use
G91 C–90
G91 C–360
–90
0
C=0
43
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
6 The Feed
6.1 Feed in rapid travers
G00 commands a positioning in rapid traverse.
The value of rapid traverse for each axis is set by parameter by the builder of the machine. The rapid
traverse may be different for each axis.
When several axes are performing rapid traverse motions simultaneously, the resultant feed will be
calculated in such a way that the speed component of each axis will not exceed the particular rapid
traverse value (set as a parameter), and the positioning is accomplished in a minimum of time.
Rapid traverse rate is modified by the rapid traverse override switch that can be
F0: defined by parameter RAPOVER in %,
and 25%, 50%, 100%.
The rapid traverse rate will not exceed 100%.
Rapid traverse will be stopped if the state of the feedrate override switch is 0%.
In lack of a valid reference point, the reduced rapid traverses defined by the machine tool builder by
parameter will be effective for each axis until the reference point is returned.
Rapid traverse override values can be connected to the feedrate override switch.
When the slide is being moved by the jog keys, the speed of rapid traverse is different from the
rapid traverse in G00, it is also selected by parameters separately for each axis. Appropriately it is
lower than the speed of positioning for human response times.
6.2 Cutting Feed Rate
The feed is programmed at
address F.
The programmed feed is
accomplished in blocks of
linear (G01) and circular
interpolations (G02, G03).
The feed is accomplished
tangentially along the prog-
rammed path.
Fig. 6.2-1
F - tangential feed (programmed value)
Fx - feed component in the X direction
Fy - feed component in the Y direction
Except for override and stop inhibit states (G63), the programmed feed can be modified over the
range of 0 to 120% with the feed-override switch.
44
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
The feed value (F) is modal. After power-on, the feed value set at parameter FEED will be
effective.
6.2.1 Feed per Minute (G94) and Feed per Revolution (G95)
The unit of feed can be specified in the program with the G94 and G95 codes:
G94: feed per minute
G95: feed per revolution
The term "feed/minute" refers to a feed specified in units mm/minute, inch/minute or degree/minute.
The term "feed/rev" refers to the feed accomplished in a revolution of the spindle, in units of mm/rev,
inch/minute or deg/rev. A G95 cannot be programmed unless the spindle is equipped with an
encoder.
Modal values. After power-on, state G94 or G95 will be selected with reference to parameter
group CODES. State G94/G95 will be unaffected the rapid traverse, it is invariably in units of
minutes.
45
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
The Table below shows the maximum programmable range of values at address F, for various
cases.
input
units
output
units
increment
system
value range of address F
unit
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
0.001 - 250000
0.0001 - 25000
0.00001 - 2500
0.0001 - 5000
mm
or
deg/min
mm
inch
inch
mm
mm
mm
inch
inch
mm
or
0.00001 - 500
deg/rev
0.000001 - 50
0.0001 - 9842.5197
0.00001 - 984.25197
0.000001 - 98.25197
0.00001 - 196.85039
0.000001 - 19.685039
0.0000001 - 1.9685039
0.0001 - 25000
0.00001 - 2500
0.000001 - 250
0.00001 - 500
inch
or
deg/min
inch
or
deg/rev
inch
or
deg/min
inch
or
deg/rev
0.000001 - 50
0.0000001 - 5
0.001 - 250000
0.0001-25000
mm
or
deg/min
0.00001-2500
0.0001 - 5000
mm
or
deg/rev
0.00001-500
0.000001-50
6.2.2 Clamping the Cutting Feed
The maximum programmable feed on a particular machine can be clamped (set as a parameter) by
the manufacturer of the machine. The value set there invariably refers to minutes. That value is also
the speed of DRY RUN. If a programmed feed higher than that is set, the control will clamp it
46
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
automatically in the course of program execution.
The maximum jog feed can also be clamped separately by parameters for human response times.
6.3 Automatic Acceleration/Deceleration
In rapid traverse, the control will automatically
perform a linear acceleration and linear
deceleration when starting and ending a
movement. The extent of acceleration is defined
by the machine tool builder, in parameter
ACCn, depending on the dynamics of the
machine.
Fig. 6.3-1
In feed motions the tangential (programmed)
feed value will be assumed by the control in
linear acceleration, inversely, its value will be
decreased by linear deceleration. This
technique offers the advantage over traditional
(exponential) accelerations that the machine will
sooner attain the desired speed (assuming a
given time constant adopted in both cases).
Thus the times of acceleration and deceleration
(i.e., the times of actual slide movements) will be
Fig. 6.3-2
reduced.
Another advantage of linear acceleration over
the exponential one is the lower profile
distortion (i.e., radius error), compared with
exponential acceleration, in a high-speed
machining of a circle.
Fig. 6.3-3
47
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
The control is monitoring the changes in tangential speeds. This is necessary to attain the
commanded speed in a process of continuous acceleration, if necessary, through several blocks. The
acceleration to the new feed (higher than the
previous one) is commenced by the control
invariably in the execution of the particular
block, in which the new feed value is specified.
That process may, if necessary, cover several
blocks. Deceleration to the new feed value
(lower than the previous one) will be started by
the control in an appropriate preceding block so
that the machining will be started with the
programmed speed in the particular block, in
Fig. 6.3-4
which the new feed value is specified.
When moving manually by using jog keys or
handwheel, again linear acceleration/deceleration will be performed. Their values will be defined for
each axis by parameters ACC1 through ACC8.
6.4 Feed Control Functions
The override control functions are required when corners are to be machined, and/or when the
particular technology requires the override and stop switches to be canceled.
When machining corners, with continuous
cutting applied, the slides are - on account of
their inertia - unable to follow the path
commanded by the control system. Now the
tool will round the corner more or less,
depending on the feed.
If the workpiece requires sharp corners, the
Fig. 6.4-1
control must be specified to slow down at the
end of block, wait until the axes come to a halt, and start the next movement only afterwards.
6.4.1 Exact Stop (G09)
Not being a modal function, G09 will be effective only in the block, in which it has been
programmed.
At the end of the block, it has been specified, the control will slow down after execution of the
interpolation, and will wait for the "in position" signal. Unless that signal arrives in 5 seconds, the
control will return a message 1020 POSITION ERROR.
That function can be used for exact machining sharp corners.
6.4.2 Exact Stop Mode (G61)
Modal function, canceled with G62, G63 or G64 command.
The control system will slow on completion of each interpolation and wait for the "in position" signal.
It will start the next interpolation cycle only afterwards. Unless that signal arrives in 5 seconds, the
control will return a message 1020 POSITION ERROR.
48
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
6.4.3 Continuous Cutting Mode (G64)
Modal function. The control will assume that state after power-on. It will be canceled by codes
G61, G62 or G63.
In this mode the movement will not come to a halt on the completion of the interpolation, the slides
will not slow down. Instead, the interpolation of the next block will be commenced immediately.
Sharp corners cannot be machined in this mode, because they will be rounded off.
6.4.4 Override and Stop Inhibit (Tapping) Mode (G63)
Modal function, canceled by codes G61, G62 or G64.
The feed and spindle override and the feed stop is inhibited in this mode. The override values are
taken for 100% (regardless of switch positions). On completion of the interpolation, the system will
not slow down, but start next interpolation cycle immediately.
This mode is applicable in various thread cutting and tapping operations.
6.4.5 Automatic Corner Override (G62)
Modal function canceled by any of codes G61, G63 or G64.
When inside corners are being machined, higher
forces are acting upon the tool before and after
the corners. To prevent the overload of the tool
and developing vibrations, the control will -
when G62 commanded - automatically reduce
the feed along before and after an inside corner.
The corner override is effective under the
following conditions.
– When cutter compensation is on (G41, G42).
Fig. 6.4.5-1
– Between blocks G0, G1, G2, G3.
– In movements in the selected plane.
– When the corner is machined inside.
– When the angle of the corner is smaller then a particular angle defined by parameter.
– Over a distance before and after the corner, defined by parameters.
The corner override function will be effective between each the following pairs of blocks: linear-to-
linear, linear-to-circular, circular-to-linear, circular-to-circular ones.
Inside angle 1 can be selected between 1 and
180° by parameter CORNANGLE.
Fig. 6.4.5-2
49
Download from Www.Somanuals.com. All Manuals Search And Download.
6 The Feed
Deceleration and acceleration will be
commenced at distances L and Lg before and
l
after the corner, respectively. In the case of
(circles) arcs, distance L and Lg will be
l
calculated by the control along the arc.
Distances L and Lg will be defined in
l
Fig. 6.4.5-3
parameters DECDIST and ACCDIST,
respectively.
The value of override can be selected as a percent in parameter CORNOVER. The override will
begin to be effective at distance L before the corner, and will be effective over distance Lg behind
l
the corner. The values of feed override and corner override will be taken into account together by
the control:
F* feed override * corner override.
Write G09 in the particular block to program an exact stop in state G62.
6.4.6 Internal Circular Cutting Override
With the cutter compensation on (G41, G42), the control
will automatically reduce the feed in machining the inside
surface of an arc so that the programmed feed will be
effective along the cutting radius. The feed in the center of
the tool radius is
Fig. 6.4.6-1
where Fc is the (corrected) feed of the tool-radius center
R is the programmed radius of circle
Rc is the corrected radius of circle
F is the programmed feed.
The lower limit of automatic feed reduction is set by parameter CIRCOVER, in which the minimum
override can be specified as a percent. The override for the circle radius is multiplied by the values
of feed and corner override before it is issued.
50
Download from Www.Somanuals.com. All Manuals Search And Download.
7 The Dwell
7 The Dwell (G04)
The
(G94) G04 P....
command will program the dwell in seconds.
The range of P is 0.001 to 99999.999 seconds.
The
(G95) G04 P....
command will program the dwell in terms of spindle revolutions.
The range of P is 0.001 to 99999.999 revolutions.
Depending on parameter SECOND, the delay may refer always to seconds as well, irrespective of
the states of G94, G95.
The dwell implies invariably the programmed delay of the execution of the next block. It is a non-
modal function.
During dwell in status field 5 indicating interpolation status the message DWL will appear on screen
to draw the attention of operator why the machine is halted.
51
Download from Www.Somanuals.com. All Manuals Search And Download.
8 The Reference Point
8 The Reference Point
The reference point is a distinguished position
on the machine-tool, to which the control can
easily return. The location of the reference point
can be defined as a parameter in the coordinate
system of the machine. Work coordinate system
can be measured and absolute positioning can
be done after reference point return. The
parametric overtravel positions and the stroke
check function are only effective after
reference-point return.
Fig. 8-1
8.1 Automatic Reference Point Return (G28)
The instruction
G28 v
will return the axes defined by vector v to the reference point. The movements consist of two parts.
First it will move with linear interpolation in rapid traverse to the intermediate coordinates defined by
vector v. The specified coordinates may be absolute or incremental values. The movement is
performed invariably in the current coordinate system .
When the end point of linear movement is reached, the cutter compensation vector is deleted.
The coordinates of the intermediate point will be stored for axes defined by vector v.
In the second stage it will move from the intermediate point to the reference-point simultaneously in
each axis defined by vector v. The reference-point return is carried out by non-linear movement at a
speed defined for each axis. Afterwards, similar to the manual return, the position will be assumed in
the manner defined by parameters.
This is a non-modal code.
L Notes:
– Unless there is a valid reference point, incremental values must be assigned to intermediate
coordinates v in command G28.
– Programmed in block G28, intermediate coordinates v will be stored until power-off. In other
words, the intermediate value defined in a previous command G28 will continue to be effect
for the coordinates that have not been assigned values in the instantaneous (current)
command G28. For example:
G28 X100
G28 Y200
intermediate point: X=100, Y=0
intermediate point: X=100, Y=200
52
Download from Www.Somanuals.com. All Manuals Search And Download.
8 The Reference Point
8.2 Automatic return to reference points 2nd, 3rd, 4th (G30)
Series of instructions
G30 v P
will send the axes of coordinates defined at the addresses of vector v to the reference point defined
at address P.
P1=reference point 1
P2=reference point 2
P3=reference point 3
P4=reference point 4
The reference points are special positions defined by parameters (REFPOS1, ..., REFPOS4) in the
coordinate system of the machine-tool, used for change positions, e.g., positions of tool change or
palette change. The first reference point is invariably the position of the machine's reference point,
i.e., the point to which the control moves when returning to the reference point.
The instruction is only applicable after the machine's reference point has been returned.
The movement consists of two parts. First it will move by a linear motion to the intermediate
coordinates defined by vector v, with rapid traverse. The specified coordinates may be absolute or
incremental values. The movement is carried out invariably in the current coordinate system. When
the end point of linear movement is reached, the cutter compensation vector will be deleted. The
coordinates of the intermediate point will be stored in the current coordinate system for the axes
defined by vector v. Stored in this way, the coordinates will overwrite those stored in instruction
G28.
In the second phase, the axes defined by vector v will move with rapid traverse from the
intermediate point to the reference point selected at address P.
The reference point is returned by disregarding the compensation vectors (length, offset, 3
dimensional offsets) they need not be deleted before instruction G30 is issued but they will be
implemented by the control when further movements are being programmed. The cutter
compensation is re-established automatically in the first movement block.
A non-modal code.
8.3 Automatic Return from the Reference Point (G29)
Instruction
G29 v
will return the control from the reference point along the axes defined in vector v. Following G28
and G30, command G29 will be executed in the same manner. The return is accomplished in two
stages.
In the first stage it will move from the reference point to the intermediate point recorded during the
execution of instruction G28 or G30, in the axes defined by vector v. The coordinates of the
intermediate point are modal, in other words, the control will take the previous values into account if
reference is made to an axis, to which no coordinate has been transferred in block G28 or G30
preceding G29. It will move to the intermediate point by taking into account the tool length, tool
offset and 3-dimensional tool radius compensations.
The coordinates of the intermediary point are effective invariably in the coordinate system of the
current workpiece. Accordingly if, e.g., a change of workpiece coordinate system has been
programmed after reference point return and before instruction G29, the intermediate point will be
53
Download from Www.Somanuals.com. All Manuals Search And Download.
8 The Reference Point
taken into account in the new coordinate system.
In the second phase it will move from the intermediate point to the point v defined in instruction G29.
If coordinate v has an incremental value, the displacement will be measured from the intermediate
point.
When the cutter compensation is set up, it will move to the end point by taking into account the
compensation vector.
A non-modal code.
An example of using G30 and G29:
...
G90
...
G30 P1 X500 Y200
G29 X700 Y150
...
...
Fig. 8.3-1
54
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
9 Coordinate Systems, Plane Selection
The position, to which the tool is to be moved, is specified with coordinate data in the program.
When 3 axes are available (X, Y, Z), the position of the tool is expressed by three coordinate data
X____ Y____ Z____ :
Fig. 9-1
The tool position is expressed by as many different coordinate data as is the number of axes on the
machine. The coordinate data refer invariably to a given coordinate system.
The control will differentiate three different coordinate systems.
1. the machine coordinate system,
2. the workpiece's coordinate system,
3. the local coordinate system.
9.1 The Machine Coordinate System
The machine zero point, i.e., the origin of the
machine coordinate system, is a point on the
given machine-tool, that is usually defined by the
machine tool builder. The control will define the
machine coordinate system at the time of
returning to the reference point.
Once the machine coordinate system has been
defined, it will not be altered by the change of
the work coordinate system (G54 ... G59) or
by other coordinate transformation (G52, G92),
only by a power-off of the control system.
Fig. 9.1-1
55
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
9.1.1 Setting the Machine Coordinate system
After a reference point return, the machine coordinate system can be set in parameters. The distance
of the reference point, calculated from the origin of the machine coordinate system, has to be written
for the parameter.
9.1.2 Positioning in the Machine Coordinate System (G53)
Instruction
G53 v
will move the tool to the position of v coordinate in the machine coordinate system.
– Regardless of states G90, G91, coordinates v are always treated as absolute coordinates,
– operator I is ineffective when put behind the address of a coordinate,
– similar to instruction G00, the movements are performed in rapid traverse,
– the positioning is carried out invariably with the selected tool length compensations taken into
account.
A G53 instruction can be executed after a reference point return only. G53 is a one-shot command
effective in the block only, where it has been specified.
9.2 Work Coordinate Systems
The coordinate system applied in cutting the workpiece is referred to as the "work coordinate
system". Six different coordinate systems can be defined for the workpiece in the control.
9.2.1 Setting the Work Coordinate Systems
Fig. 9.2.1-1
In setting mode the locations of the various work coordinate systems can be established in the
machine coordinate system, and the necessary offsets can be made.
56
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
Fig. 9.2.1-2
Furthermore, all work coordinate system can be offset with a common value. It can also be entered
in setting mode.
9.2.2 Selecting the Work Coordinate System
The various work coordinate system can be selected with instructions G54...G59.
G54........work coordinate system 1
G55........work coordinate system 2
G56........work coordinate system 3
G57........work coordinate system 4
G58........work coordinate system 5
G59........work coordinate system 6
They are modal functions. Their selection before a reference point return is ineffective. After a
reference point return, work coordinate system
1 (G54) will be selected.
The absolute coordinate data of the
interpolation blocks will be taken into account
by the control in the current work coordinate
system.
For example, the instruction
G56 G90 G00 X60 Y40
will move the system to point X=60, Y=40 of
work coordinate system 3.
Fig. 9.2.2-1
57
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
After a change of the work coordinate system,
the tool position will be displayed in the new
coordinate system. For instance, there are two
workpieces on the table. The first work
coordinate system (G54) has been assigned to
zero point of one of the workpieces, which has
an offset of X=300, Y=800 (calculated in the
machine coordinate system). The second work
coordinate system (G55) has been assigned to
the zero point of the other workpiece, which has
an offset of X=1300, Y=400 (calculated in the
machine coordinate system). The tool position is
X'=700, Y'=500 in X', Y's’ coordinate system
Fig. 9.2.2-2
(G54). As a result of instruction G55, the tool position will be interpreted in the X", Y" coordinate
system (X"=-300, Y"=900).
9.2.3 Programmed Setting of the Work Zero Point Offset
It is also programable to set the work coordinate system and the common offset thereof with
program instructions.
This is accomplished with instruction
G10 v L2 Pp
where
p = 0 sets the common offset,
p = 1...6 selecting work coordinate system 1.- 6.
v = offset for each axis.
The coordinate data are entered invariably as rectangular (Cartesian) absolute values. G10 is a one-
shot (non-modal) instruction.
9.2.4 Creating a New Work Coordinate System (G92)
Instruction
G92 v
will establish a new work coordinate system in such a way that coordinate point v of the new system
will be a selected point - e.g. the tool's tip (if a length compensation is programmed) or the base
point of the tool holder (in lack of a length compensation). Afterwards any additional absolute
command will refer to that new work coordinate system, and the positions will also be displayed in
that coordinate system. The coordinates specified in command G92 will always be interpreted as
rectangular absolute values.
58
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
If, e.g., the tool is at a point of X=150, Y=100
coordinates, in the actual (current) X, Y work
coordinate system, instruction
G92 X90 Y60
will create a new X', Y' coordinate system, in
which the tool will be set to the point of X'=90,
Y'=60 coordinates. The axial components of
offset vector v' between coordinate systems X,
Y and X', Y' are
v'x=150-90=60,
and
v'y=100–60=40.
Fig. 9.2.4-1
Command G92 will prevail in each of
the six work coordinate systems, i.e.,
an offset v calculated for one of them
will be taken into account in the rest,
too.
Fig. 9.2.4-2
L Notes:
– The offset of the work coordinate system set with instruction G92 will be deleted by execution of
"end of program" instructions (M2, M30) and by resetting the program.
– Instruction G92 will delete the offsets of the local coordinate system (programmed with instruction
G52) on the axes included in the instruction.
– Instruction G92 offers a convenient way of the cyclic position indication of the indexing rotary
table performing several turns. If, e.g., axis B has been turned into the position 360°, the axis
can be moved to position 0° without any physical movement by programming G92 B0.
9.3 Local Coordinate System
When writing part programs, it is sometimes more convenient to specify the coordinate data in a
"local" coordinate system instead of the work part coordinate system.
Instruction
G52 v
59
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
will create a local coordinate system.
– If coordinate v is specified as an absolute value, the origin of the local coordinate system will
coincide with the point v in the work coordinate system.
– When specified as an incremental value, the origin of the local coordinate system will be shifted
with v offset (provided a local coordinate system has been defined previously, or else the
offset is produced with respect to the origin of the work coordinate system).
Henceforth any movement command specified in absolute coordinates will be executed in the new
coordinate system. The positions are also displayed in the new coordinate system. The values of
coordinates v will be treated invariably as Cartesian coordinates.
If, e.g., the tool is at point X=150, Y=100
coordinates in the current X, Y work coordinate
system, instruction
G90 G52 X60 Y40
will create a new local X', Y' coordinate
system, in which the coordinates of tool will be
X'=90, Y'=60. Instruction G52 is used for
defining the axial components of offset vector v'
between the X, Y and X', Y' coordinate
systems (v'x=60, v'y=40).
Now one of two different procedures may be
adopted in order to transfer the local coordinate
Fig. 9.3-1
system to the point of X", Y" position.
– With an absolute data specification: instruction (G90) G52 X30 Y60 will move the origin of the
X", Y" coordinate system to point X=30, Y=60 in the X,Y work coordinate system. The
components of vector v" will be produced by the specification of v" =30, v"y=60.
x
– With an incremental data specification: instruction G91 G52 X-30 Y20 will move the origin of the
X", Y" coordinate system to the point of X'=-30, Y'=20 coordinates in the X', Y' coordinate
system. The components of vector v will be produced by the specification of v =-30, vy=20.
x
Indicating the location of the new local coordinate system in the X, Y work coordinate
system vector v"=v'+v. Its components:
v" =60+(-30)=30, v"y=40+20=60.
x
The tool position in the X", Y" coordinate system will be X"=90, Y"=40.
Instruction
G90 G52 v0
will delete the offset in on coordinates specified in v.
60
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
The local coordinate system will be offset in
each work coordinate system.
Fig. 9.3-2
Programming instruction G92 will delete the offsets produced by instruction G52 on the axes
specified inG92 - as if command G52 v0 had been issued.
Whenever the tool is at point of X=200, Y=120
coordinates in the X, Y work coordinate
system, instruction
G52 X60 Y40
will shift its position to X'=140, Y'=80 in the X',
Y' local coordinate system.
Now instruction
G92 X110 Y40
will establish the tool position to X"=110,
Y"=40 in the new X", Y" work coordinate
system. Thus the X', Y' local coordinate system
will be deleted by command G92 as if
Fig. 9.3-3
command G52 X0 Y0 had been issued.
L Note:
– The offset of the local coordinate system will be deleted by execution of commands M2, M30
and/or by resetting the program.
9.4 Plane Selection (G17, G18, G19)
The plane in which
– circular interpolation,
– specification of polar coordinate data,
– rotation of coordinate system,
–cutter radius compensation,
– positioning of drilling cycles
will be performed can be selected with the following G
codes:
G17............XpYp plane
G18............ZpXp plane
G19............YpZp plane,
where
Fig. 9.4-1
61
Download from Www.Somanuals.com. All Manuals Search And Download.
9 Coordinate Systems, Plane Selection
Xp=X or an axis parallel to X,
Yp=Y or an axis parallel to Y,
Zp=Z or an axis parallel to Z.
The selected plane is referred to as "main plane".
The particular one of the parallel axes will be selected (by instruction G17, G18 or G19) depending
on the axis addresses programmed in a given block:
When X and U, Y and V, Z and W are parallel axes:
the XY plane will be selected by G17 X_Y_,
the XV plane will be selected by G17 X_V_,
the UV plane will be selected by G17 U_V_,
the XW plane will be selected by G18 X_W_,
the YZ plane will be selected by G19 Y_Z_,
the VZ plane will be selected by G19 V_Z_.
Unless G17, G18, G19 is specified in a block, the selected plane remains unchanged:
G17 X____ Y____ plane XY
U____ Y____ plane XY remains.
Unless there is an axis address specified in the G17, G18, G19 block, the control will consider the
basic axes:
the XY plane will be selected by G17,
the XY plane will be selected by G17 X,
the UY plane will be selected by G17 U,
the XV plane will be selected by G17 V,
the ZX plane will be selected by G18,
the WX plane will be selected by G18 W.
The selected plane is unaffected by the movement command:
(G90) G17 G00 Z100
will select the XY plane, moving the Z axis to the point of coordinate 100.
After power-on, the default plane (G17 or G18) is specified according to the parameter group
CODES.
The main plane can be selected more times in the same program.
Address U, V, W can be selected as a parallel in parameters.
62
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
10 The Spindle Function
10.1 Spindle Speed Command (code S)
With a number of max. five digits written at address S, the NC will give a code to the PLC.
Depending on the design of the given machine-tool, the PLC may interpret address S as a code or
as a data of revs/minute.
When a movement command and a spindle speed (S) are programmed in a given block, function S
will be issued during or after the motion command. The machine tool builder will define the way of
execution.
The speeds specified at address S are modal values. At the time of power-on, the control will
assume value S0. The spindle speed has a minimum and a maximum limit in each gear ratio range.
They are defined by the machine-tool builder in parameters and the control does not let the speed
outside of this range.
10.2 Programming of Constant Surface Speed Control
Constant surface speed control function can
only be used in case of infinitely variable speed
main drive. In this case the control can change
the spindle speed so that the tool speed is
constant relative to the surface of the
workpiece and is equal to the programmed
value.
The constant surface speed must be specified
in function of the input unit on the basis of the
table below:
Fig. 10.2-1
Input unit
Unit of constant surface speed
mm (G21 metric)
inch (G20 inch)
m/min
feet/min
63
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
10.2.1Constant Surface Speed Control Command (G96, G97)
Command
G96 S
switches constant surface speed control function on. The constant surface speed must be specified
at address S in the unit of measure given in the above table.
Command
G97 S
cancels constant surface speed control. The desired spindle speed can be specified at address S (in
revs/min).
– In order to calculate constant surface speed the coordinate system must be set so that its zero
point coincides with the rotation axis.
– Constant surface speed control is effective only after the spindle is started by means of M3 or
M4.
– The value is modal even after its calculation has been canceled with the help of command G97.
After power on the default constant surface speed is determined by parameter CTSURFSP.
G96 S100
G97 S1500
G96 X260
(100 m/min or 100 feet/min)
(1500 revs/min)
(100 m/min or 100 feet/min)
– Constant surface speed calculation is also effective in state G94 (feed/min).
– If the constant surface speed control is canceled by means of command G97 and a new spindle
speed is not specified the last spindle speed gained in state G96 remains in effect.
G96 S100
(100m/min or 100 feet/min)
.
.
.
G97
(Revolution belonging to resulting diameter X)
– In case of rapid traverse positioning (block G00) the constant surface speed is not calculated
continuously but the revolution belonging to the end-position will be calculated. This is
needed for the spindle speed to avoid unnecessary changes.
– In order to calculate constant surface speed the zero point of the axis, on the basis the spindle
speed is changed, must be set to the spindle rotation axis.
10.2.2 Constant Surface Speed Clamp (G92)
With the help of command
G92 S
the highest spindle speed enabled in case of constant surface speed control can be set. During
constant surface speed calculation the control clamps spindle speed to this value. In this case the unit
of S is rpm.
– After power on as well as if value S has not been clamped by means of command G92 the top
limit of spindle speed in case of constant surface speed control is the maximum value
enabled for the given gear range.
– The maximum revolution value is modal until a new one is programmed or until the control is
turned off.
64
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
10.2.3 Selecting an Axis for Constant Surface Speed Control
The axis, which position the constant surface speed is calculated from, is selected by parameter
1182 AXIS. The logic axis number must be written at the parameter.
If other than the selected axis is to be used, the axis from which the constant surface speed is to be
calculated can be specified by means of command
G96 P.
Interpretation of address P:
P1: X, P2: Y, P3: Z,
P4: U, P5: V, P6: W,
P7: A, P8: B, P9: C
– The value set at address P is modal. After power on the control activates constant surface speed
control to the axis set at parameter AXIS.
10.3 Spindle Position Feedback
In normal machining the NC will issue a speed command to the power amplifier of the spindle,
proportional to the programmed speed (value specified at address S). Now this amplifier will be
working in speed-control mode.
Some technological tasks may, however, require the spindle to be brought to a particular angular
position. This is referred to as spindle positioning or indexing.
Prior to positioning, the NC will set the power amplifier of the spindle to position-controlled mode.
In practice this means that the NC will not issue a speed command proportional to code S any
more, instead, it will measure the position of the spindle by the use of an encoder mounted on the
spindle, and will issue a command to the servo amplifier in accordance with the desired angular
displacement (similar to the rest of controlled axes). This is the position feedback.
To be able to position the spindle on a particular machine, an encoder has to be mounted on the
spindle and the power amplifier of the spindle must be capable of operation in position feedback
mode as well.
10.4 Oriented Spindle Stop
The "spindle orientation" or the "oriented spindle stop" refers to the function of stopping the spindle
in a particular angular position. This may be necessary, e.g., for an automatic tool change or for the
execution of some drilling cycles. The possibility of orientation on a particular machine must be
specified by parameter ORIENT1 in parameters. The command of spindle orientation is issued by
function M19, but it may also be produced by some other function depending on the particular
machine-tool. The orientation may be carried out in one of two different ways.
If the spindle cannot be used in position control mode, the orientation is feasible by turning the
spindle to a proximity switch mounted on the machine.
If the spindle can be used in position control mode, command M19 will cause the control to return
to the zero pulse of the spindle encoder. The control will automatically close the position control
loop.
65
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
10.5 Spindle Positioning (Indexing)
A spindle positioning is only feasible after the spindle position control loop has been closed after
orientation. Accordingly, this function is used for closing the loop. The loop will be opened by
rotation command M3 or M4.
If the value of parameter INDEX1=1 (indicating that the main drive position control loop can be
closed) and the value of parameter INDEX_C1=0, the spindle indexing will be performed by
function M.
Under such conditions function M from the threshold value set on parameter M_NUMB1 to
M_NUMB1+360 will be interpreted as a spindle indexing commands, i.e., the threshold number will
be subtracted from the programmed value of M, and the number obtained will be treated as an
incremental displacement specified in degrees.
Thus, if M_NUMB1=100, command M160 means that the spindle must be turned by 160-100=60
degrees from its current position. The direction of rotation is selected by parameter CDIRS1, its rate
is selected by parameter RAPIDS1.
10.6 Spindle Speed Fluctuation Detection (G25, G26)
Command
G26
enables spindle speed fluctuation detection, while command
G25
cancels it. After power-on or RESET the control is set to state G26, i.e., spindle speed fluctuation
detection is on. This function signals abnormalities occurring in the course of spindle rotation, as the
result of which, e.g., spindle seizure can be avoided.
The speed fluctuation detection is influenced by 4 parameters. These parameters can be overwritten
from a program with addresses following command G26. The overwritten parameters are kept upon
power-off. The parameters are overwritten as the effect of command
G26 Pp Qq Rr Dd.
The below table contains the parameter interpretations:
name
p
parameter
meaning
unit
value limit
65535
5001 TIME
time from the issue of a new spindle
speed command to the start of
checking
100 msec
q
r
5002 SCERR
tolerance of a specified spindle speed
%
%
1-50
1-50
5003 FLUCT%
allowable amount of spindle speed
fluctuation in the percentage of
programmed speed
d
5004 FLUCTW
spindle speed fluctuation in absolute
value
revs/min
65535
The process of speed fluctuation detection is as follows.
66
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
Start of Spindle Speed Fluctuation Detection
As the effect of new rotation speed the detection is suspended by the control. The speed fluctuation
detection starts when
- the current spindle speed
reaches the specified spindle
speed within the tolerance limit
determined by value "q", or
Fig. 10.6-1
- the current spindle speed has
not reached the specified spindle
speed within the tolerance limit
determined by value "q", but time
determined by value "p" has
elapsed from the command .
Fig. 10.6-2
67
Download from Www.Somanuals.com. All Manuals Search And Download.
10 The Spindle Function
Detecting Error
In the course of detection the control sends error message in case the deviation between current and
specified spindle speed exceeds
- the tolerance limit specified by value "r" in
percent of the command value and
- also the absolute tolerance limit specified by
value "d"
When the current speed has exceeded both
tolerance limits, the NC sets flag I656 to PLC.
The speed range, in which the NC issues
alarm, can be seen on the 3rd figure. If the
specified spindle speed is under value "S"
apparent in the figure, the NC issues alarm,
provided the current speed is 0 revs/min for
more than 1 second.
– The spindle speed fluctuation detection is
effective only if the spindle is mounted
with encoder.
– The specified spindle speed, according to
Fig. 10.6-3
which the current spindle speed is
detected is calculated by taking the
override, the revolution range limits and the programmed maximum revolution (G92 S_) in
constant surface speed calculation (G96) into account.
– The spindle speed fluctuation detection is effective only in case of G26 and rotating spindle (state
M3 or M4).
– Command G26 must be programmed in single block.
68
Download from Www.Somanuals.com. All Manuals Search And Download.
11 Tool Function
11 Tool Function
11.1 Tool Select Command (Code T)
With a number of max. four digits written at address T, the NC will give a code to the PLC.
When a movement command and a tool number (T) are programmed in a given block, function T
will be issued during or after the motion command. The machine tool builder will define the way of
execution.
11.2 Program Format for Tool Number Programming
There are basically two different ways of making reference to a tool change in the part program.
They depend on the configuration of the machine-tool. The particular technique of calling the tool
(applicable in the part program) is defined by the builder of the machine-tool.
Case A
A tool change can be accomplished on the machine manually or by means of a turret type tool
changer. Now, with reference made to code T:
– in the case of manual tool change, the number of tool to be used appears on the display; it has to
be clamped in the spindle manually. Afterwards, the machining will be resumed upon a start;
– in the case of a turret type tool changer, the new tool will be put to position of use automatically
under the action of code T.
Thus a reference to the tool number will evoke an immediate change in the block which T has been
specified in.
Case B
A tool change needs some preparations on the machine. Its steps:
– The tool to be employed has to be found in the magazine. Now reference to address T in the part
program will bring the appropriate tool in change position. This operation is carried out in
the background, simultaneously with the machining.
– The slides (or only one of them) have to be sent to the change positions.
– The tool change is carried out by function M06 in the program. The control will wait for the
execution of the tool change until tool T (under preparation) is brought to change position.
As a result, the new tool will be placed in the spindle. Henceforth cutting may be resumed.
– The old tool is replaced in the tool magazine. This activity is performed in the background,
simultaneously with cutting.
– The search is commenced for the new tool in the magazine.
69
Download from Www.Somanuals.com. All Manuals Search And Download.
11 Tool Function
This procedure is described in the part program as follows.
Part Program
.................
Explanation
....Tnnnn........
.................
search for tool Tnnnn
the part program is running, tool search is being performed in the
background
...M06 Tmmmm....
.................
tool Tnnnn is placed in the spindle,
the previous tool is replaced in the tool magazine
.................
the search is commenced for tool Tmmmm, with cutting performed in
the meantime
...M06 Tpppp.....
.................
tool Tmmmm is placed in the spindle
tool Tnnnn is replaced in the tool magazine, search for tool Tpppp
begins
.................
meanwhile machining is being performed
70
Download from Www.Somanuals.com. All Manuals Search And Download.
12 Miscellaneous and Auxiliary Functions
12 Miscellaneous and Auxiliary Functions
12.1 Miscellaneous Functions (Codes M)
With a numerical value of max. 3 digits specified behind address M, the NC will transfer the code to
the PLC.
When a movement command and a miscellaneous function (M) are programmed in a given block,
function M will be issued during or after the motion command. The machine tool builder will define
the way of execution.
Codes M’s include standard functions, that can be used for special selected functions only. They:
M00, M01, M02, M30, M96, M97, M98, M99: program control codes
M03, M04, M05, M19: Spindle rotation codes
M06: tool change code
M07, M08, M09: coolant management codes
M11, ..., M18: spindle-range changes codes
The rest of M values can be used without restrictions.
When indexing is triggered by M, the M codes of spindle indexing are selected on the basis of a
parameter.
The control system enables several M codes of different groups to be written in a given block. In
this case, however, codes M’s have a fixed sequence of execution. The groups and the sequence of
execution:
group 1
group 2
group 3
group 4
group 5
group 6
group 7
M06 (tool exchange)
M11, ..., M18 (spindle gear range change)
M03, M04, M05, M19 (spindle management)
M07, M08, M09 (coolant management)
Mnnn (any other function M)
codes M of spindle indexing
M00, M01, M02, M30, M96, M97, M98, M99 (program control codes)
The number of M functions that can be programmed in a given block is 5. Only one M of each
group can be programmed in a block. Conflicting programming will produce error message 3032
CONFLICTING M CODES.
The exact functioning of each M code is defined by the builder of the particular machine-tool to
meet its specific requirements. The only exceptions are the program control codes.
The program control M codes are:
M00= programmed stop
The stop condition will be generated at the end of the block, in which M00 has been specified. All
modal functions remain unchanged. It can be restarted by START.
M01= conditional stop
Its effect is identical with that of code M00. It will be executed when the CONDITIONAL STOP
key is activated. Unless the appropriate key is set up, it is ineffective.
M02, M30= end of program
It means the end of the main program. All operations are stopped, and the control is "reset". The
machine will be reset by the PLC program. Unless the parameter PRTCNTM differ from it, each of
executed M02 or M03 command increase the counters of workpiece.
71
Download from Www.Somanuals.com. All Manuals Search And Download.
12 Miscellaneous and Auxiliary Functions
M98= call of a subprogram (subroutine)
It will call a subprogram (subroutine).
M99= end of subprogram (subroutine)
It will cause the execution to return to the position of call.
12.2 Auxiliary Function (Codes A, B, C)
Max. three digits can be specified at each of addresses A, B, C provided one (or all) of those
addresses is (are) selected as auxiliary function(s) in parameters. The value specified for the auxiliary
function will be transferred to the PLC.
When a movement command and an auxiliary function are programmed in a given block, function A,
B, C will be issued during or after the motion command. The machine tool builder will define the
way of execution.
For example, an indexing table can be indexed at address B.
12.3 Sequence of Execution of Various Functions
The various functions written in a given block will be executed by the control in the following
sequence:
1.
Tool change:
M06
2.
Tool call:
T
3.
4.
5.
6.
Spindle range selection:
Spindle speed:
Spindle management:
Coolant:
M11, ..., M18
S
M03, M04, M05, M19
M07, M08, M09
7.
8.
9.
Other function M:
Spindle indexing:
Function A:
Mnnn
with function M
A
10.
11.
12.
Function B:
Function C:
Program control codes:
B
C
M00, M01, M02, M30, M96, M97, M98, M99
If the above sequence of executions is not desirable, the block has to be broken up into several
ones, with the functions written in the desired sequence in each block.
72
Download from Www.Somanuals.com. All Manuals Search And Download.
13 Part Program Configuration
13 Part Program Configuration
The structure of the part program has been described already in the introduction presenting the
codes and formats of the programs in the memory. This Section will discuss the procedures of
organizing the part programs.
13.1 Sequence Number (Address N)
The blocks of the program can be specified with serial or sequence numbers. The numbering can be
accomplished at address N. The blocks can be numbered with max. 5 digits at address N. The use
of address N is not mandatory. Some blocks can be numbered, others not. The block numbers need
not follow each other in a consecutive order.
13.2 Conditional Block Skip
A conditional block skip can be programmed at the slash address /. The value of the slash address
may be 1 to 9. Digit 1 to 9 represents serial number of switches .
Switch CONDITIONAL BLOCK No. 1 can be found on the operator’s panel of control.
The other switches may be provided optionally, their signals can be entered through the interface of
the control system.
If a conditional block skip /n is programmed at the beginning of a block,
th
– that block will be omitted from the execution when the n switch is on,
th
– that block will be executed when the n switch is off.
13.3 Main Program and Sub-program
Two different programs are differentiated - main program and subprogram. Repetitive activities may
be involved in machining a component part, that can be described with a particular program detail.
In order to avoid writing the repetitive program detail over and over again in the program, they can
be organized into a subprogram to be called from the part program. The structures of the main
program and the subprogram have been described in the Introduction.
The difference between them is that, whereas the machining is completed after execution of the main
program the control is awaiting another START, while after execution of the subprogram it will
return to the calling program, resuming the machining process at that point.
In terms of programming technique, the difference between the two programs lies in the way of
terminating the program. The end of the main program is specified with codes M02 or M30 (not
mandatory ones), whereas the sub-program must be terminated with code M99.
13.3.1 Calling the Sub-program
The series of instructions
M98 P....
will generate a subprogram call. As a result, the execution of the program will be resumed at the
subprogram, the number of which is defined at address P. The limit of address P are 1 to 9999.
After the execution of the sub-program machining will be continued in the main program with the
block following the subprogram call.
73
Download from Www.Somanuals.com. All Manuals Search And Download.
13 Part Program Configuration
main program
subprogram
comment
O0010
......
......
execution of (main-)
program O0010
M98 P0011
–––>
O0011
calling sub-program
O0011
......
......
......
M99
execution of sub-
program O0011
next block
<–––
return to the calling
program
......
......
resumption of program
O0010
The series of instructions
M98 P.... L....
will call the subprogram (specified at address P) repeteatedly in succession specified at address L.
The limit of address L is 1 to 9999. Unless L is assigned a value, the sub-program will be called
once, i.e., the control will assume L=1.
Instruction M98 P11 L6 means that subprogram 011 has to be called six times repeatedly.
It is also possible to call a subprogram from another subprogram. The subprogram calls can be
"nested" to max. 4 levels.
subprogram
>O0011
....
....
M98P12
....<
subprogram
>O0012
....
....
M98P13
....<
subprogram
>O0013
....
....
M98P14
....<
subprogram
main program
O0001
....
>O0014
....
....
....
....
....
M98P11
....<
....
....
M99
....
M99
....
M99
....
M99
M02
L Notes:
– An error message 3069 LEVEL EXCESS is returned when the number of subprogram calls
"nested" exceeds 4.
– An error message 3071 MISSING OR FAULTY P is returned when the value of address P
exceeds 9999 or is not specified.
– An error message 3072 DEFINITION ERROR L is returned when the value of L is incorrect.
– An error message 3073 NOT EXISTING PROGRAM is returned when a program specified with
an identifier at address P is not available in the memory.
13.3.2 Return from a Sub-program
The use of instruction
M99
in a sub-program means the end of that sub-program, and the program execution returns to the
block following the call in the calling program.
74
Download from Www.Somanuals.com. All Manuals Search And Download.
13 Part Program Configuration
comment
main program
subprogram
O0010
......
execution of program
O0010
......
......
–––>
<–––
N101 M98 P0011
O0011
calling sub-program
O0011
execution of sub-
program O0011
......
......
......
M99
N102 ......
return to the next
block of the calling
program
......
......
resumption of program
O0010
The use of instruction
M99 P...
in a sub-program means the end of that sub-program, and the program execution returns to the
block of calling program specified at address P. In this case the limit values of P are to 99999.
main program
subprogram
comment
O0010
......
execution of program
O0010
......
......
N101 M98 P0011
–––>
<–––
O0011
calling sub-program
O0011
execution of
subprogram O0011
......
......
......
M99 P250
N250 ......
return to the N250
block of the calling
program resumption of
O0010
......
......
Instruction
M99 (P.....) L....
will rewrite the cycle counter of the calling program. With 0 written for L, the sub-program will be
called only once. If, e.g., subprogram O0011 is called with instruction M98 P11 L20, and a return
is made with instruction M99 L5, subprogram O0011 will be called 6 times. (The limit values of L
are 1 to 9999.)
L Note:
– An error message 3070 NOT EXISTING BLOCK NO. P is displayed when the return block
number (P) is not found in the calling program.
75
Download from Www.Somanuals.com. All Manuals Search And Download.
13 Part Program Configuration
13.3.3 Jump within the Main Program
The use of instruction
M99
in the main program will produce an unconditional jump to the first block of the main program, and
the execution of the program will be resumed there. The use of this instruction results in an endless
cycle:
O0123
<
N1...
...
.....
.....
M99
The use of instruction
M99 P.....
will produce an unconditional jump to the block specified at address P of the main program, and the
execution of the program will be resumed there. The use of this instruction results in an endless cycle:
O0011
....
....
O0011
....
M99 P225
N128....<
....
....
....
....
M99 P128
N225 <
....
The possibility of endless cycles can be avoided by specifying the block containing instruction M99
in the form /1 M99. Now the jump will be omitted or not, depending on the setting of the conditional
block skip switch.
76
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14 The Tool Compensation
14.1 Referring to Tool Compensation Values (H and D)
Reference can be made to
tool length compensation at address H,
tool radius compensation at address D.
The number behind the address (the tool compensation number) indicates the particular
compensation value to be applied. The limit values of addresses H and D are 0 to 999.
The Table below shows the division of the compensation memory.
Code H
Code D
compensation number
geometry
wear
geometry
-32.120
52.328
wear
0.012
01
02
-350.200
830.500
0.130
-0.102
-0.008
.
.
.
.
.
.
.
.
.
Compensation number 00 is not included in the above Table, the compensation values pertaining to
it are always zero.
Geometry value - the length/radius of the tool. It is a signed number.
Wear - the wear occurring in the course of machining. It is a signed number.
Whenever a reference is made to a compensation at address H or D in the program, the control will
always take the sum of the geometry value and the wear into account for compensation. If, e.g.,
reference is made to H2 in the program, the length compensation will be, on the basis of the above
Table, 830.500+(–0.102)=830.398.
Address H and D are modal ones, i.e., the control will take into account a given compensation value
until another command D or H is given. In other words, once the compensation value has been read
with command D or H, the read-out value will be unaffected by a change in the chart of
compensation values (e.g., by programming G10).
The compensation values will be preserved in the memory after a power-off.
The compensation memory can be saved in the memory as a part program.
77
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Limit values of geometry and wear:
increment
input units output units
system
unit of
geometry value
wear value
measure
IS-A
±0.01 ÷99999.99
±0.001÷9999.999
±0.0001÷999.9999
±0.001÷9999.999
±0.0001÷999.9999
±0.00001÷99.99999
±0.001÷9999.999
±0.0001÷999.9999
±0.00001÷99.99999
±0.01÷99999.99
±0.01÷163.80
±0.001÷16.380
±0.0001÷1.6380
±0.001÷6.448
mm
inch
inch
mm
mm
mm
inch
inch
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
IS-A
IS-B
IS-C
mm
inch
inch
mm
±0.0001÷0.6448
±0.00001÷0.06448
±0.001÷16.380
±0.0001÷1.6380
±0.00001÷0.16380
±0.01÷416.05
±0.001÷9999.999
±0.0001÷999.9999
±0.001÷41.605
±0.0001÷4.1605
The tool compensations can be selected and/or modified from the operator's panel on OFFSET
screen and from the program with the use of instruction G10. If the current compensation is modified
with command G10, reference has to be made again to the current compensation register D or H, or
else the modified value will be disregarded.
The limit values of address H or D for the given control system, i.e., the numbers of length and
radius compensations to be specified in that control system, are determined by the memory
configuration of the control. In the case of a minimum memory configuration, the number of
compensations is 99, i.e., the limit values of addresses H and D are 0 to 99.
14.2 Modification of Tool Compensation Values from the Program (G10)
Instruction
G10 R L P
can be used for modifying the tool compensations from the program. G10 is a one-shot instruction.
The addresses and their values have the following meanings.
The compensation value is specified at address R. At G90 (absolute data specification command),
the value written at address R will be transferred to the appropriate compensation register. At G91
(incremental data specification command) or when operator I is applied, the data written at address
R will be added to the content of the appropriate compensation register.
The compensation value to be modified is specified at address L:
L=10 applies to the geometry value of the length compensation (code H),
L=11 applies to the wear of the length compensation (code H),
L=12 applies to the geometry value of the radius compensation (code H)
L=13 applies to the wear of the radius compensation (code H),
The No. of compensation value to be modified is specified at address P.
L Note: For a programmed modification of the tool radius compensation, the value specified at
address R must be interpreted as a radius in each case regardless of the state of parameter
TOOLRAD. The control will return error message 3001 VALUE EXCESS X,Y,...F
whenever the specified values exceed the limits contained in the above Table.
78
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.3 Tool Length Compensation (G43, G44, G49)
Instruction
G43 q H or
G44 q H
will set up the tool length compensation mode.
Address q means axis q to which the tool length compensation is applied (q= X, Y, Z, U, V, W, A,
B, C).
Address H means the compensation cell, from which the tool length compensation value is taken.
Irrespective of q being an absolute or an incremental data, instruction G43 will add the
compensation value (specified at address H) to the end point coordinate obtained in the course of
execution:
G43: + compensation
Irrespective of q being an absolute or an incremental data, instruction G44 will subtract the
compensation (specified at address H) from the end point coordinate obtained in the course of
execution:
G44: – compensation
Since incremental displacement Z0 has been programmed, each of instructions G43 G91 Z0 H1 and
G44 G91 Z0 H1 will produce displacement just equal to the length of the tool. At G43, the
displacement will be positive or negative, depending on the compensation value at H1 being positive
or negative, respectively. The case is just the opposite for G44. After the command has been
executed, the position displayed at coordinate Z will be the same as the one beforehand, because
the position of the tool's tip will be displayed after the length compensation is set up.
Tool compensations may be defined on several axes at a time. E.g.
G43 Z250 H15
G43 W310 H16
When several axes are selected in a block, the tool length compensation will be taken into account
for each axis selected:
G44 X120 Z250 H27
When the composition value is altered by calling a new H address, the previous one will be deleted,
and the new value will be effective:
H1=10, H2=20
G90 G00
G43 Z100 H1..........moving to Z=110
G43 Z100 H2..........moving to Z=120
The effects of G43 and G44 are modal until another command is received from that group.
Command
G49 or
H00
will cancel the tool length compensation in each axis - with motion or with transformation, if a
movement has been programmed in the block or not, respectively.
The difference between the two commands is that H00 will delete the compensation only, leaving
state G43 or G44 unaffected. If a reference is made afterwards to an address H other than zero, the
new tool length compensation will be set up as the function of state G43 or G44.
79
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
If, however, instruction G49 is used, any
reference to address H will be ineffective until
G43 or G44 is programmed.
At power-on, the value defined in parameter
group CODES decides which code is effective
(G43, G44, G49).
The example below presents a simple drilling
operation with tool length compensation taken
into account:
length of drilling tool, H1=400
Fig. 14.3-1
N1 G90 G0 X500 Y600
N2 G43 Z410 H1
N3 G1 Z100 F180
N4 G4 P2
(positioning in plane X, Y)
(moving to Z410 with H1 length compensation)
(drilling as far as Z100 with F180 feed)
(dwell for 2 seconds)
N5 G0 Z1100 H0
(removing the tool and canceling the length
compensation; the tool's tip is in the X700 point)
(returning with rapid traverse in plane X, Y)
N6 X-800 Y-300
14.4 Tool Offset (G45...G48)
G45 increases the movement amount with the offset value
G46 decreases the movement amount with the offset value
G47 increases the movement amount by twice with the offset value
G48 decreases the movement amount by twice with the offset value
Any one of commands G45...G48 will be effective with the compensation selected with the D code
until another value is called in conjunction with a command G45...G48.
Being non-modal codes, they are effective only in the block in which they have been specified.
In the case of an absolute data specification, the amount of movement will be the difference between
the end point defined in the current block and the end point of the previous block. Any increase or
decrease refers to the direction of motion produced in this way.
80
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
With G45 programmed (increase by the offset value):
a. movement command: 20 b. movement command: 20
compensation: 5 compensation: -5
Fig. 14.4-1
Fig. 14.4-2
a. movement command: -20
compensation: 5
b. movement command: -20
compensation: -5
Fig. 14.4-3
Fig. 14.4-4
With G46 programmed (decrease by the offset value):
a. movement command: 20
compensation: 5
cases b, c, d are similar to G45
Fig. 14.4-5
81
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
With G47 programmed (double increase by the offset value):
a. movement command: 20
compensation: 5
cases b, c, d are similar to G45
Fig. 14.4-6
With G48 programmed (double decrease by the offset value):
a. movement command: 20
compensation: 5
cases b, c, d are similar to G45
Fig. 14.4-7
If, after command G45...G48, movement commands are issued for several axes in the block, the
resultant compensation will be effective in each programmed axis separately, with the value specified
at D (non-vectorially generated).
If, e.g., D1=30, command G91 G45 G1 X100 Y40 D1 will produce displacements of x=130,
y=70.
The resultant compensations cannot be deleted
with a common G command (e.g., G49 for
length compensation) or by programming D00,
only with a command G45...G48 of opposite
meaning.
In the use of G45...G48, only one D code may
be applied, or else the control will return the
error message 3008 ERRONEOUS
G45...G48.
If an incremental 0 displacement is programmed
together with one of commands G45...G48, a
sign preceding the 0 will also be interpreted by
Fig. 14.4-8
the control as follows:
if D1=12
82
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
NC command
displacement
G45 XI0 D1
x=12
G46 XI0 D1
x=-12
G45 XI-0 D1
x=-12
G46 XI-0 D1
x=12
A tool radius compensation applied with one of codes G45...G48 is also applicable with ¼ and ¾
circles, provided the centers of the circles are specified at address I, J or K.
An example: D1=10
N1 G91 G46 G0 X40 Y40 D1
N2 G47 G1 Y100 F180
N3 G47 X40
N4 Y-40
N5 G48 X60
N6 Y40
N7 G47 X20
N8 G45 Y–0
N9 G46 G3 X40 Y–40 I40
N10 G45 G1 X0
N11 G45 Y–20
N12 G45 G2 X–40 Y–40 I–40
N13 G45 G1 X–120
N14 G46 G0 X–40 Y–40
Fig. 14.4-9
83
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5 Cutter Compensation (G38, G39, G40, G41, G42)
To be able to mill the contour of a
two-dimensional workpiece and to
specify the points of that formation
as per the drawing in the program
(regardless of the size of the tool
employed), the control must guide
the tool center parallel to the
programmed contour, spaced by a
tool radius from the latter. The
control will determine the distance
between the path of the tool center
and the programmed contour in
accordance with the compensation
value of the tool radius referred to
by compensation number D.
The compensation vector is a two-
dimensional vector computed over
Fig. 14.5-1
and over again by the control in each block, modifying the programmed displacements with the
compensation vectors effective at the beginning and end of each block. The length and direction of
each compensation vector obtained vary with the compensation value (called at address D) and the
geometry of the transition between the two blocks.
The compensation vectors are computed in the plane selected by instructions G17, G18, G19. This
is the plane of cutter compensation. Movements outside of this plane are not influenced by
compensation. If, e.g., plane X, Y is selected in state G17, the compensation vectors will be
computed in that plane. In this case any movement in Z direction it will be unaffected by the
compensation.
The compensation plane may not be changed while a tool radius compensation is being computed.
Any attempt to do so will result in an error message 3010 PLANE SELECT. IN G41, G42 by the
control.
If a compensation plane is to be defined with additional axes, they have to be defined as parallel
ones in parameters. If, e.g., U is assumed as a parallel axis and the tool radius compensation is to be
applied in plane Z, U, that plane can be selected by the specification of G18 U_Z_.
G40: Cutter compensation cancel
G41: Cutter compensation left
G42: Cutter compensation right
Command G41 or G42 will set up the
compensation computation. In state G41 or
G42 the programmed contours will be tracked
from left side or right side (seen from the travel
direction), respectively. The compensation
number of tool radii has to be specified at
address D. The specification of D00 is always
equivalent to calling zero radius value. The
Fig. 14.5-2
84
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
compensation calculations are performed for interpolation movements G00, G01, G02, G03.
The above points refer to the specification of positive tool radius compensation, but its value may be
negative, too. It has a practical meaning if, e.g., a given subprogram is to be used for defining the
contours of a "female" part and of a "male" one being matched to the former. A possible way of
doing this is to mill the female part with G41 and the male part with G42. However, that change-
over may be omitted from the program when the female part is machined with a positive radius
compensation, and the male part with a negative one. Now the path of the tool center is reversed
with respect to the programmed G41 or G42.
Radius compensation: positive
Radius compensation: negative
G41
G42
on the left side
on the right side
on the right side
on the left side
L Note:
– For simplicity's sake, the subsequent descriptions and Figures will always refer to positive radius
compensations.
Command G40 or D00 will cancel the offset compensation. The difference between the two
commands is that D00 deletes only the compensation vector, leaving state G41 or G42 unchanged.
If a reference is made subsequently to an address D other than zero, the compensation vector will
be computed with the new tool radius as the function of state G41 or G42.
If, however, instruction G40 is used, any reference to address D will be ineffective until G41 or G42
has been programmed.
The procedure of setting up and canceling the radius compensation is detailed in the subsequent
sections.
Commands G40, G41, G42 are modal ones. The control will assume state G40 after power-on, at
the end of a program or in the event of resetting the program to its beginning, under such conditions
the radius compensation vectors will be deleted.
Radius compensation instructions will be carried out by the control in automatic mode only. It is
ineffective when programming a single block in manual mode. The reason of this is as follows. For
the control to be able to compute the compensation vector in the end point of a block
(interpolation), it must also read the next block containing the movement in the selected plane. The
compensation vector depends on the transition between the two interpolations. Accordingly, several
blocks (interpolations) have to be pre-processed for the calculation of a compensation vector.
85
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
An auxiliary data is to be introduced
before embarking on the discussion of the
details of the compensation computation.
It is "" ", the angle at the corner of two
consecutive blocks viewing from the
workpiece side. The direction of "
depends on whether the tool goes around
the corner from the left or right side.
The control will select the strategy of
going around in the intersection points as
the function of angle " . If " >180°, i.e.,
the tool is working inside, the control will
compute a point of intersection between
Fig. 14.5-3
the two interpolations. If " <180°, i.e., the tool is moving around the outside, it may add further
straight sections.
86
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.1 Start up of Cutter Compensation
After power-on, end of program or resetting to the beginning of the program, the control will assume
state G40. The offset vector will be deleted, the path of the tool center will coincide with the
programmed path.
Under instruction G41 or G42 the control will exit from state G40 to enter in radius-compensation
computation mode. The value of compensation will be taken from the compensation cell (D
register). State G41 or G42 will only be assumed in a block containing a linear interpolation (G00 or
G01). The control will return error message 3043 G41, G42 IN G2, G3 to any attempt to set up
the compensation calculation in a circular interpolation (G02, G03). The control will only choose the
procedure of the start up of cutter compensation, if G41 or G42 was commanded after G40. In
other words, the control will not adopt the start up procedure when the compensation is deleted
with D00 and re-activated with Dnn (nn being a number other than 0).
The basic instances of starting compensation up depending on the angle of " at the corner of the two
consecutive blocks and the type of interpolations (linear-to-linear, linear-to-circular) as shown
below. The Figures refer to instance G42, positive radius compensation assumed.
L Note: The symbols in the Figures (below and afterwards) have the following meanings:
r: value of radius compensation,
L: straight line
C: circular arc,
S: single block stop point,
Dashed line: the path of tool center,
Continuos line: the programmed path.
Basic instances of starting up the cutter compensation:
(G40)
(G40)
G42 G01 X_ Y_ D_
X_ Y_
G42 G01 X_ Y_ D_
G2 X_ Y_ R_
Going around an inside corner, 180°<" <360°
Fig. 14.5.1-1
87
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Going around the outside of a corner at an obtuse angle, 90°#" #180°
Fig. 14.5.1-2
Going around the outside of a corner at an acute angle, 0°#" <90°
Fig. 14.5.1-3
Special instances of starting up the radius compensation:
If values are assigned to I, J, K in the compensation-
selecting block (G41 or G42) - but only to those in
the selected plane (e.g., to I, J in the case of G17) -
the control will move to the intersection point between
the next block and the straight line defined by I, J, K
with starting up radius compensation. The values of I,
J, K are always incremental ones, the vector defined
by them pointing to the end point of the interpolation,
in which it has been programmed. This facility is
useful, e.g., in moving to an inside corner.
Fig. 14.5.1-4
88
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
...
G91 G17 G40
...
N110 G42 G1 X-80 Y60 I50 J70 D1
N120 X100
...
In this case the control will always compute a point of
intersection regardless of whether an inside or an outside
corner is to be machined.
Fig. 14.5.1-5
Unless a point of intersection is found, the control will move,
at right angles, to the start point of the next interpolation.
Fig. 14.5.1-6
When the compensation is set up by a special block in which no movement is programmed in the
selected plane, the compensation will be set up without any movement, the calculated compensation
vector’s length is 0. The compensation vector is computed at the end of the next motion block
according to the strategy corresponding to compensation computation in offset mode (see the next
chapter).
...
N10 G40 G17 G0 X0 Y0
N15 G42 D1
N20 G1 X80
N25 X110 Y60
...
Fig. 14.5.1-7
89
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
If zero displacement is programmed (or such is produced) in the block containing the activation of
compensation (G41, G42), the control will not perform any movement but will carry on the
machining along the above-mentioned strategy.
...
N10 G40 G17 G0 X0 Y0
N15 G91 G42 D1 X0
N20 G1 X80
N25 X30 Y60
...
If a displacement of 0 is obtained in the selected plane in the block following the start-up of
compensation, the compensation vector will be set at right angles to the interpolation performing the
setting-up. The path of the tool in the next interpolation will be not parallel to the programmed
contour:
...
N10 G40 G17 G0 X0 Y0
N15 G91 G42 D1 X80
N20 G1 X0
N25 X30 Y60
N30 X60
...
Fig. 14.5.1-8
90
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.2 Rules of Cutter Compensation in Offset Mode
In offset mode the compensation vectors will be calculated continuously between interpolation
blocks G00, G01, G02, G03 (see the basic instances) until more than one block will be inserted,
that do not contain displacements in the selected plane. This category includes a block containing
dwell or functions.
Basic instances of offset mode:
Computation of intersection point for inside corners, 180°<" <360°
Fig. 14.5.2-1
91
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
It may occur that no intersection point is
obtained with some tool-radius values. In this
case the control comes to a halt during
execution of the previous interpolation and
returns error message 3046 NO INTER-
SECTION G41, G42.
Fig. 14.5.2-2
Going around the outside of a corner at an obtuse angle, 90°#" #180°
Fig. 14.5.2-3
92
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Going around the outside of a corner at an acute angle, 0°#" <90°
Fig. 14.5.2-4
Special instances of offset mode:
If zero displacement is programmed (or such is obtained) in the selected plane in a block in offset
mode, a perpendicular vector will be positioned to the end point of the previous interpolation, the
length of the vector will be equal to the radius compensation. Instances of this kind should be
handled with caution because of the hazards of inadvertent undercutting or distortions (in the case of
a circle).
For example:
...G91 G17 G42...
N110 G1 X40 Y50
N120 X0
N130 X90
N140 X50 Y-20
...
Fig. 14.5.2-5
93
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.3 Canceling of Offset Mode
Command G40 will cancel the computation of tool radius compensation. Such a command can be
issued with linear interpolation only. The control will return error message 3042 G40 IN G2, G3 to
any attempt to program G40 in a circular interpolation.
Basic instances of canceling offset mode:
(G42)
(G42)
G02 X_ Y_ R_
G40 G1 X_ Y_
G01 X_ Y_
G40 X_ Y_
Going around an inside corner, 180°<" <360°
Fig. 14.5.3-1
Going around the outside of a corner at an obtuse angle, 90°#" #180°
Fig. 14.5.3-2
94
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Going around the outside of a corner at an acute angle, 0°#" <90°
Fig. 14.5.3-3
Special instances of canceling offset mode:
If values are assigned to I, J, K in the compensation cancel block (G40) - but only to those in the
selected plane (e.g., to I, J in the case of G17) - the control will move to the intersection point
between the previous interpolation and the straight line defined by I, J, K. The values of I, J, K are
always incremental, the vector defined by them points away from the end point of the previous
interpolation.
This facility is useful, e.g., for moving from an inside corner.
...
...G91 G17 G42...
N100 G1 X50 Y60
N110 G40 X70 Y-60 I100 J-20
...
Fig. 14.5.3-4
In this case the control will always compute a point of
intersection regardless of whether an inside or an outside
corner is to be machined.
Fig. 14.5.3-5
95
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Unless a point of intersection is found, the control will move,
at a right angle, to the end point of the previous interpolation.
Fig. 14.5.3-6
If the compensation is canceled in a block in which no
movement is programmed in the selected plane, an offset
vector perpendicular to the end point of the previous
interpolation will be set and the compensation vector will be
deleted by the end of the next movement block.
...G42 G17 G91...
N110 G1 X80 Y40
N120 G40
N130 X-70 Y20
...
Fig. 14.5.3-7
If zero displacement has been programmed (or such is
obtained) in the block (G40) in which the compensation is
canceled, an offset vector perpendicular to the end point of
the previous interpolation will be calculated, and the control
will cover that instance in block G40. For example:
...G42 G17 G91...
N110 G1 X80 Y40
N120 G40 X0
N130 X-70 Y20
...
Fig. 14.5.3-8
96
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.4 Change of Offset Direction While in the Offset Mode
The direction of tool-radius compensation computation is given in the Table below.
Radius compensation: positive
Radius compensation: negative
G41
G42
left
right
left
right
The direction of offset mode can be reversed even during the computation of tool radius
compensation. This can be accomplished by programming G41 or G42, or by calling a tool radius
compensation of an opposite sign at address D. When the direction of offset mode is reversed, the
control will not check it for being "outside", it will always calculate a point of intersection in first
steps. The Figures below assume positive tool radii and change-overs from G42 to G41.
Fig. 14.5.4-1
97
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Unless a point of intersection is found in a
linear-to-linear transition, the path of the tool
will be:
Fig. 14.5.4-2
Unless a point of intersection is found in a
linear-to-circular transition, the path of the tool
will be:
Fig. 14.5.4-3
Unless a point of intersection is obtained in a
circular-to-linear or circular-to-circular
transition, the end of compensation vector in the
start point of the first circular interpolation will
be connected with the end point of the
compensation vector perpendicular to the start
point of the second interpolation by a circular
arc of uncorrected programmed radius R. Now
the center of the interconnecting circular arc will
not coincide with the center of the programmed
arc. The control will return error message 3047
CHANGE NOT POSSIBLE if the direction
change is not feasible even with the relocation of
the circle center outlined above.
Fig. 14.5.4-4
98
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.5 Programming Vector Hold (G38)
Under the action of command
G38 v
the control will hold the last compensation vector between the previous interpolation and G38 block
in offset mode, and will implement it at the end of G38 block irrespective of the transition between
the G38 block and the next one. Code G38 is a single-shot one, i.e., it will not be modal.
G38 has to be programmed over again if the vector is to be held in several consecutive blocks.
G38 can be programmed in state G00 or G01 only, i.e., the vector-hold block must be invariably a
linear interpolation, or else the control will return error message 3040 G38 NOT IN G0, G1. Unless
code G38 is used in offset mode (G41, G42), the control will return error message 3039 G38
CODE IN G40.
An example of using G38:
...G17 G41 G91...
N110 G1 X60 Y60
N120 G38 X90 Y-40
N130 X20 Y70
N140 X60
...
Fig. 14.5.5-1
To program a recession without canceling the
offset mode:
...G17 G42 G91...
N110 G1 X40
N120 G38 X50
N130 G38 Y70
N140 G38 Y-70
N150 X60
...
Fig. 14.5.5-2
14.5.6 Programming Corner Arcs (G39)
By programming
G39 (I J K),
it will be possible - in offset mode - to avoid the automatic intersection-point computation or the
insertion of linear sections when going around outside corners, instead the tool center will travel
along a circular arc equal to the tool radius.
It will insert an arc equal to the tool radius in direction G02 or G03 in state G41 or G42,
respectively.
99
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
The start and end points of the arc will be given
by a tool-radius long vector perpendicular to the
end point of the path of previous interpolation
and by a tool-radius vector perpendicular to the
start point of the next one, respectively. G39
has to be programmed in a separate block:
...G17 G91 G41...
N110 G1 X100
N120 G39
N130 G3 X80 Y-80 I80
...
Fig. 14.5.6-1
When I, J or K is programmed in block G39,
the end point of the circular arc will be given by
a tool-radius long vector perpendicular to the
vector defined by I, J or K from the end point
of the previous interpolation, in accordance with
the selected plane.
...G17 G91 G41...
N110 G1 X100
N120 G39 I50 J-60
N130 G40 X110 Y30
...
Fig. 14.5.6-2
The previously selected mirroring or rotating commands are effectual the vector defined by I, J or K.
As a matter of fact, the scaling command will not affect the direction. No movement command can
be programmed in a block of G39 type. The control will return error message 3036 G39 CODE IN
G40 if command G39 is issued in state G40 or 3D compensation mode.
100
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
14.5.7 General Information on the Application of Cutter Compensation
In offset mode (G41, G42), the control will always have to compute the compensation vectors
between two interpolation blocks in the selected plane. In practice it may be necessary to program
between two interpolation blocks in the selected plane a non-interpolation block or an interpolation
outside of the selected plane. They may be
– functions (M, S, T)
– dwell (G4 P)
– interpolation outside of the selected plane ([G17] G1 Z)
– call of a subprogram (M98 P)
– setting or canceling special transformations (G50, G51, G50.1, G51.1, G68, G69).
L Note: Calling a subprogram some carefulness is needed. Unless the subprogram is beginning
with a motion command in the assigned plane, the interpolation will be distorted.
The control will accept the programming of a single block
of the above type between two interpolation blocks in the
program, leaving the path of the tool unaffected:
...G17 G42 G91...
N110 G1 X50 Y70
N120 G4 P2
N130 X60
...
Fig. 14.5.7-1
When the control inserts one or more straight lines between two interpolations when going
around a corner, any other block without movement or with movement outside of the selected
plane programmed between the interpolations will be executed at the single block stop point
(indicated by "S" in the figures).
When two interpolations outside of the selected plane
or two blocks containing no interpolations are written
in the program, the control will set an offset vector
perpendicular to the end point of the last interpolation
in the selected plane and the path will be distorted:
...G17 G42 G91...
N110 G1 X50 Y70
N120 G4 P2
N130 S400
N140 X60
...
Fig. 14.5.7-2
101
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
If no cut is feasible in direction Zunless the radius compensation is set
up, the following procedure may be adopted:
...G17 G91...
N110 G41 G0 X50 Y70 D1
N120 G1 Z-40
N130 Y40
...
Now the tool will have a correct path as is shown in the Figure.
Fig. 14.5.7-3
If, however, movement in direction Zis broken up into two sections
(rapid traverse and feed), the path will be distorted because of the
two consecutive interpolations outside of the selected plane:
...G17 G91...
N110 G41 G0 X50 Y70 D1
N120 Z-35
N130 G1 Z-5
N140 Y40
...
Fig. 14.5.7-4
As a trade-off, insert a small movement in direction Y between two
ones in direction Z:
...G17 G91...
N110 G41 G0 X50 Y69 D1
N120 Z-35
N130 Y1
N140 G1 Z-5
N150 Y40
...
With the above "trick" a correct compensation vector can be got.
Fig. 14.5.7-5
102
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
The path of tool will be as follows when instructions
G22, G23, G52, G54-G59, G92
G53
G28, G29, G30
are inserted between two interpolations.
When command G22, G23, G52, G54-G59 or G92 is programmed in offset mode between two
interpolation blocks, the compensation vector will be deleted at the end point of the previous
interpolation, the command will be executed and the vector will be restored at the end point of the
next interpolation. If the previous or next interpolation is a circular one, the control will return error
message 3041 AFTER G2, G3 ILLEG. BLOCK.
For example:
...G91 G17
G41...
N110 G1 X80 Y–50
N120 G92 X0 Y0
N130 X80 Y50
...
Fig. 14.5.7-6
If command G53 is programmed in offset mode between two interpolations, the compensation
vector will be deleted at the end point of the previous block, the positioning will be executed in G53,
and the vector will be restored at the end point of the next interpolation (other than G53). If the
previous or next interpolation is a circular one, the control will return error message 3041 AFTER
G2, G3 ILLEG. BLOCK.
For example:
...G91 G17
G41...
N110 G1 X80 Y–50
N120 G53 Y80
N130 G53 Y0
N140 X80 Y50
...
Fig. 14.5.7-7
103
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
If G28 or G30 is programmed (followed by G29) between two blocks in offset mode, the
compensation vector will be deleted at the end point of the block it positions the tool to the
intermediate point, the tool will move to the reference point, and the vector will be restored at the
end point of the returning block G29.
For example:
...G91 G17
G41...
N110 G1 X80 Y–50
N120 G28 Y80
N130 G29 Y0
N140 X80 Y50
...
Fig. 14.5.7-8
A new compensation value can also be
called at address D in offset mode. In the
event of a reversal in the sign of the
radius, the direction of motion along the
contours will be reversed (see earlier).
Otherwise, the following procedure will
be applicable. The compensation vector
will be calculated with the new radius
value at the end point of the interpolation,
Fig. 14.5.7-9
in which the new address D has been
programmed. Since the compensation vector has been computed with the previous radius value at
the start point of that block, the path of the tool center will not be parallel to the programmed path.
A new radius compensation value can be called at address D in a circular interpolation, too, this
time, however, the tool center will be moving along an arc with a variable radius.
A special instance of the foregoing is canceling or setting up the compensation with D00 or Dnn,
respectively, while in offset mode. Notice the difference in tool paths with reference to the following
example, when the compensation is set up with G41 or G42 and canceled with G40, or when the
compensation is set up and canceled by programming D.
104
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Fig. 14.5.7-10
A particular program detail or subprogram may be used also for machining a male or female work-
piece with positive or negative radius compensation, respectively, or vice-versa.
Let us review the following small program
detail:
...
N020 G42 G1 X80 D1
N030 G1 Z-5
N040 G3 I-80
N050 G1 Z2
N060 G40 G0 X0
...
Fig. 14.5.7-11
When the radius compensation is applied to a
circle of a variable radius, the control will
calculate the compensation vector(s) to an
imaginary circle at the start point thereof, the
radius of which is equal to the start-point radius
of the programmed circle, the center point
coinciding with the programmed one. The
compensation vector(s) will be computed to an
Fig. 14.5.7-12
imaginary circle at the end point of it, the radius
of which is equal to the end-point radius of the programmed circle, the center point coinciding with
that of the programmed circle.
105
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
When a full circle is being programmed, it may often occur that the path of tool covers more than a
complete revolution round the circle in offset mode.
For example, this may occur in programming a direction
reversal along the contours:
...G17 G42 G91...
N110 G1 X30 Y-40
N120 G41 G2 J-40
N130 G42 G1 X30 Y40
...
The tool center covers a full arc of a circle from point P1 to
point P1 and another one from point P1 to point P2.
Fig. 14.5.7-13
When offset mode is canceled by programming I, J, K, a
similar condition will emerge:
...G17 G90 G41...
N090 G1 X30
N100 G2 J-60
N110 G40 G1 X120 Y180 I-60 J-60
...
The tool center covers a full arc of a circle from point P1 to
point P1 and another one from point P1 to point P2.
Fig. 14.5.7-14
106
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Two or more compensation vectors may be produced
when going around sharp corners. When their end
points lie close to each other, there will be hardly any
motion between the two points.
When the distance between the two vectors is smaller
than the value of parameter DELTV in each axis, the
vector shown in the Figure will be omitted, and the
path of the tool will be modified accordingly.
L Note: When parameter DELTV is too high (in
causeless way) the sharp corners with acute
angles may be overcut.
Fig. 14.5.7-15
14.5.8 Interferences in Cutter Compensation
It may frequently occur in offset mode that the path of the tool is the opposite of the programmed
one. Under such conditions, the tool may cut into the workpiece contrary to the programmer's
intentions. This phenomenon is referred to as the interference in cutter compensation.
In the case shown in the Figure, after the intersection points
have been computed, a tool path opposite to the
programmed one will be obtained in the execution of
interpolation N2. The hachure area indicates that the tool
cuts in the workpiece.
Fig. 14.5.8-1
To avoid this, the control performs an interference check when parameter INTERFER is set to 1.
Now the control will check that the condition -90°#n#+90° is fulfilled for angle n between the
programmed displacement and the one compensated with the radius.
107
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
In the other words the
control will check wether the
compensated displacement
vector has a component
opposite to the programmed
displacement vector or not.
Fig. 14.5.8-2
If parameter ANGLAL is set to 1, the control will, after an angle check, return an interference error
message 3048 INTERFERENCE ALARM one block earlier than the occurrence of the trouble.
Fig. 14.5.8-3
108
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
If parameter ANGLAL is set to 0, the control will not return an error message, but will automatically
attempt to correct the contour in order to avoid overcutting. The procedure of compensation is as
follows.
Each of blocks A, B and C are in offset mode. The computed vectors between blocks A and B are
PL , PL , PL , PL ; the compensation vectors between blocks B and C are PL , PL , PL , PL .
1
2
3
4
5
6
7
8
- PL and PL will be ignored if there is an interference between them.
4
5
- PL and PL will be ignored if there is an interference between them.
3
6
- PL and PL will be ignored if there is an interference between them.
2
7
- PL and PL cannot be omitted in the case of an interference, so an error message is
1
8
returned.
It is evident from the foregoing that the compensation vectors are paired at the start and end points
of interpolation B, and will be ignored in pairs. If the number of compensation vectors on one side is
1 (or is reduced to 1), only the vectors on the other side will be omitted. The procedure of omitting
will be carried on as long as the interference persists. The first compensation vector at the start point
of interpolation B and the last one at the respective end point cannot beignored. If, as a result of
omissions, the interference is eliminated, no error message will be returned, but error message 3048
INTERFERENCE ALARM will be returned otherwise. The remaining compensation vectors after
each omission will always be interconnected by straight lines - even if interpolation B has been a
circular one.
It is evident from the above example that the execution of interpolation A will not be commenced
unless interpolation B has been checked for an interference. To do so, however, block C also had
to be entered in the buffer, and the compensation vectors had to be calculated for transition B - C.
A few typical instances of interference will be described below.
Milling a step smaller than the tool radius.
The control returns error message 3048
INTERFERENCE ALARM or else it
would cut in the workpiece.
Fig. 14.5.8-4
109
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Machining an inside corner with a radius smaller than
the tool radius. The control returns error message
3048 INTERFERENCE ALARM or else overcutting
would occure.
Fig. 14.5.8-5
Milling a step smaller than the tool radius
along an arc. If parameter ANGLAL is 0,
the control will delete vector PL and will
2
interconnect vectors PL and PL by a
1
3
straight line to avoid a cut-in. If parameter
ANGLAL is 1 it returns error message
3048 INTERFERENCE ALARM and
stops at the end of previous block.
Fig. 14.5.8-6
Sometimes the tool would not actually overcut the workpiece, but the interference check indicates
an error.
If a recess smaller than the radius compensation
is being machined, actually no overcut would
occur (see the Figure), yet the control returns
error message 3048 INTERFERENCE
ALARM because the direction of displacement
along the compensated path in interpolation B is
opposite to the programmed one.
Fig. 14.5.8-7
110
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
In the above example an interference error is
returned again because the displacement of the
compensated path in interpolation B is opposite
to the programmed one.
Fig. 14.5.8-8
14.6 Three-dimensional Tool Offset (G41, G42)
The 2D tool radius compensation will offset the tool in the plane selected by commands G17, G18,
G19. The application of the three-dimensional tool compensation enables the tool compensation to
be taken into account in three dimensions.
14.6.1 Programming the Three-dimensional Tool Offset (G40, G41, G42)
Command
G41 (G42) Xp Yp Zp I J K D (E)
will set up the 3D tool compensation.
Xp, Yp, Zp mean axes X, Y, Z or axes parallel to them (if any).
Unless reference is made to an axis the principal axes will be taken into account automatically. For
example,
instruction G41 X I J K refers to space X Y Z
instruction G41 U V Z I J K refers to space U V Z
instruction G41 W I J K refers to space X Y W.
When the three-dimensional tool compensation is set up, each of addresses I, J, K has to be
specified, or else the control will assume the state of 2D tool-radius compensation.
The values specified at addresses I, J, K are the components of the three-dimensional compensation
vector. The values of the components are modal, i.e., each will remain effective until a reference is
made to another value of I, J or K.
The compensation value to be applied can be called at address D.
The dominator constant of compensation calculation can be specified at address E.
111
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Command
G40 or
D00
will cancel the three-dimensional offset compensation.
The difference between the two commands is that D00 will delete the compensation only, leaving
state G41 or G42 unchanged. If a reference is made subsequently to a new address D (other than
zero), the new tool compensation will be set up as the function of state G41 or G42.
If, however, instruction G40 is used, any reference to address D will be ineffective until G41 or G42
is programmed.
The compensation computation can be set up (G41, G42) or canceled (G40 or D00) only in a
block of linear movement (G00 or G01).
G40, G41, G42 are modal ones. The control will assume state G40 after power-on.
14.6.2 The Three-dimensional Offset Vector
The control will generate the components of compensation vectors in the following way:
r is the compensation value called at address D,
P is the dominator constant,
where
I, J, K are values specified in the program.
The value of dominator constant is taken from parameter DOMCONST unless a different value is
specified in the program at address E. If the value of the dominator constant is 0 and no value has
been specified at address E either, the control will compute the value of P from the relationship
Based on the directions of compensation
vectors specified in each block, the
control will take the compensations into
account in block after block. Thus, in the
course of a three-dimensional machining,
the CAM system need not generate the
path to a given tool, instead, only the
vectorial directions have to be computed
at the end points of the interpolations.
Fig. 14.6.2-1
Then the programs generated in this way
can be run with the use of tools of different dimensions as well.
The compensation vector cannot be altered in a circular interpolation, i.e., the compensation vectors
are identical at the beginning and end of a circular interpolation.
112
Download from Www.Somanuals.com. All Manuals Search And Download.
14 The Tool Compensation
Instruction G42 functions in the same manner as G41 with the difference that the compensation
vector is computed in a direction opposite to G41:
A change-over from state G41 to G42 or vice versa is only feasible in a linear interpolation block.
The previous values will be modal if - with the three-dimensional tool compensation set up - I and J
and K are all omitted in an interpolation.
It is not feasible to set up the three-dimensional compensation and two-dimensional radius
compensation simultaneously.
113
Download from Www.Somanuals.com. All Manuals Search And Download.
15 Special Transformations
15 Special Transformations
15.1 Coordinate System Rotation (G68, G69)
A programmed shape can be rotated in the plane selected by G17, G18, G19 by the use of
command
G68 p q R
The coordinates of the center of rotation will be specified at
address p and q. The system will only interpret the data
written at coordinates p and q of the selected plane.
The entered p and q coordinate data are also interpreted as
rectangular coordinate data even when polar coordinate data
specifications are set up. Using G90, G91 or operator I, the
p and q coordinates of the center of rotation can be
specified as absolute or incremental data.
Unless one or both of p and q are assigned values, the
instantaneous axis position will be taken for the center of
rotation.
Fig. 15.1-1
The angle of rotation is specified at address R. A positive or
negative value written at the address R represents a counter-
clockwise or a clockwise direction of rotation, respectively.
The value of R can be specified in 8 decimal digits. The
accuracy of rotation can be selected with reference to
parameter ANG.ACCU. If its value is 0 or 1, the accuracy
of calculating the rotation will be 0.001° or 0.00001°,
respectively.
The value specified for R may be absolute or incremental.
When the angle of rotation is specified as an incremental
Fig. 15.1-2
data, the value of R will be added to the previously
programmed angles.
The rotation can be canceled with command
G69.
The coordinates of the center of rotation and the angle will be deleted. That instruction may
accompany other commands as well.
114
Download from Www.Somanuals.com. All Manuals Search And Download.
15 Special Transformations
Example:
N1 G17 G90 G0 X0 Y0
N2 G68 X90 Y60 R60
N3 G1 X60 Y20 F150
(G91 X60 Y20 F150)
N4 G91 X80
N5 G3 Y60 R100
N6 G1 X-80
N7 Y-60
N8 G69 G90 X0 Y0
Fig. 15.1-3
15.2 Scaling (G50, G51)
Command
G51 v P
can be used for scaling a programmed shape.
P1...P4:
P1'...P4':
P0:
points specified in the part program
points after scaling
center of scaling
The coordinates of the scaling center can be entered at
coordinates of v. The applicable addresses are X, Y, Z, U,
V, W. The coordinate data of v entered here will also be
interpreted as rectangular (Cartesian) data, even when the
polar coordinate data specification is set up.
Using G90, G91 or operator I, the v coordinates of the
center of scaling can be specified as absolute or incremental
data.
Unless one or both axes’ addresses are assigned values, the
instantaneous axis position will be taken for the center of
scaling.
Fig. 15.2-1
The scale factor can be specified at address P. Its value can be represented by 8 decimal digits; the
position of the decimal point is irrelevant.
Scaling can be canceled with command
G50.
115
Download from Www.Somanuals.com. All Manuals Search And Download.
15 Special Transformations
For example:
N1 G90 G0 X0 Y0
N2 G51 X60 Y140 P0.5
N3 G1 X30 Y100 F150
(G91 X30 Y100 F150)
N4 G91 X100
N5 G3 Y60 R100
N6 G1 X-100
N7 Y-60
N8 G50 G90 X0 Y0
Fig. 15.2-2
15.3 Programmable Mirror Image (G50.1, G51.1)
A programmed shape can be projected as a mirror image along the coordinates selected in v by
command
G51.1 v
in such a way that the coordinates of the axis (or axes) of mirror image can be specified in v. The v
coordinate may be X, Y, Z, U, V, W, A, B, C.
The v coordinate data entered here are interpreted as rectangular coordinate data even when polar
coordinate data specifications are set up.
Using G90, G91 or operator I, the v coordinates of the axes of the mirror image can be specified as
absolute or incremental data.
No mirror image will be on the axis, for the address of which no value has been assigned.
Command
G50.1 v
will cancel the mirror image on axis (axes) specified at v. Any arbitrary data can be written for the v
coordinates, its effect will only record the fact of canceling.
When this command is issued, no rotation or scaling command may be in effect. Otherwise an error
message 3000 MIRROR IMAGE IN G51, G68 is returned.
When a mirror image is applied on an axis of composing the selected plane:
– the circle direction is reversed automatically (interchange of G02, G03)
– the angle of rotation is assigned an opposite meaning (G68).
116
Download from Www.Somanuals.com. All Manuals Search And Download.
15 Special Transformations
Example:
subprogram
O0101
N1 G90 G0 X180 Y120 F120
N2 G1 X240
N3 Y160
N4 G3 X180 Y120 R80
N5 M99
Fig. 15.3-1
main program
O0100
N1 G90
N2 M98 P101
N3 G51.1 X140
(absolute coordinate specification)
(call of subprogram)
(mirror image applied to an axis parallel to axis Y on
coordinate X=140)
N4 M98 P101
(call of subprogram)
N5 G51.1 Y100
(mirror image applied to an axis parallel to axis X on
coordinate Y=100)
N6 M98 P101
N7 G50.1 X0
N8 M98 P101
N9 G50.1 Y0
(call of subprogram)
(canceling mirror image on the axis parallel to Y)
(call of subprogram)
(canceling mirror image on the axis parallel to X)
15.4 Rules of Programming Special Transformations
Rotation and scaling instructions, G68 and G51 can be issued in any order.
It should be borne in mind, however, that - when rotation is followed by scaling - the rotation
command will have an effect on the coordinates of the center of scaling. If, on the other hand, scaling
is followed by rotation, the scaling command will have an effect on the coordinates of the center of
rotation.
Furthermore, the on and off commands of the two procedures have to be "nested", they must not
overlap each other:
rotation-scaling
N1 G90 G17 G0 X0 Y0
N2 G68 X80 Y40 R60
N3 G51 X130 Y70 P0.5
N4 X180 Y40
scaling-rotation
N1 G90 G17 G0 X0 Y0
N2 G51 X130 Y70 P0.5
N3 G68 X80 Y40 R60
N4 X180 Y40
N5 G1 Y100 F200
N6 X80
N5 G1 Y100 F200
N6 X80
N7 Y40
N7 Y40
N8 X180
N8 X180
N9 G50
N9 G69
N10 G69 G0 X0 Y0
N10 G50 G0 X0 Y0
117
Download from Www.Somanuals.com. All Manuals Search And Download.
15 Special Transformations
Fig. 15.4-1
It is evident from the figure that the order of applying the various transformations is relevant.
The programmed mirror image is a different case. It can be set up in states G50 and G69 only, i.e.,
in the absence of scaling and rotation commands.
On the other hand, with mirror imaging set up, both scaling and rotation can be applied.
Mirror images also may not be overlapped with scaling and rotation commands. Accordingly first
rotation and scaling have to be canceled in the appropriate order, followed by the instruction
canceling the mirror image.
G51.1 ...
G51 ...
G68 ...
...
(mirror image set up)
(scaling set up)
(rotation set up)
G69 ...
G50 ...
G50.1 ...
(canceling rotation)
(canceling scaling)
(canceling mirror image)
118
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16 Automatic Geometric Calculations
16.1 Programming Chamfer and Corner Round
The control is able to insert chamfer or rounding between two blocks containing linear (G01) or
circle interpolation (G02, G03) automatically.
A chamfer, the length of which
equals to the value specified at
address
,C
(comma and C) is inserted
between the end point of the block
containing address ,C and the start
point of the forthcoming block.
E.g.:
N1 G1 G91 X30 ,C10
N2 X10 Y40
Fig. 16.1-1
The value specified at the address
,C shows the distance between the start/end point of chamfer and the supposed intersection of the
two successive blocks. A chamfer may also be inserted between circles or between a circle and a
straight line. In this case value ,C is the length of the chord drawn from intersection.
A rounding, the radius of which
corresponds to the value given at
address
,R
(comma and R) is inserted
between the end point of the block
containing address ,R and the start
point of the forthcoming block.
Fig. 16.1-2
E.g.:
N1 G91 G01 X30 ,R8
N2 G03 X-30 Y30 R30
A ,R-radius arc is inserted between the two blocks so that the circle osculates to both path
elements.
119
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Command containing a chamfer or a corner rounding
may also be written at the end of more successive
blocks as shown in the below example:
...
G1 Y40 ,C10
X60 ,R22
G3 X20 Y80 R40 ,C10
G1 Y110
...
L Note:
– Chamfer or rounding can only be programmed
between the coordinates of the selected plane
Fig. 16.1-3
(G17, G18, G19), otherwise error message 3081 DEFINITION ERROR ,C ,R is sent by
the control.
– Chamfer or corner rounding can only be applied between blocks G1, G2 or G3, otherwise error
message 3081 ,C ,R DEFINITION ERROR is sent by the control
– Provided the length of chamfer or the rounding radius is so great, that it cannot be inserted to the
programmed blocks, error message 3084 ,C ,R TOO HIGH is sent by the control.
– If both ,C and ,R are programmed within one block error message 3017,C AND ,R IN ONE
BLOCK is sent by the control.
– In single block mode the control stops and registers STOP state after the execution of chamfer or
corner rounding.
16.2 Specifying Straight Line with Angle
Straight line can be specified in the plane determined by commands G17, G18, G19 by means of a
coordinate of the selected plane and the angle given at address ,A.
In the above formulas Xp, Yp, Zp indicate X, Y, Z axes or those parallel to them, while q
represents an optional axis out of the selected plane. Specification at address ,A can also be used
beside codes G0 and G1. The angle is measured from the first axis of the selected plane and the
positive direction is counter-clockwise. Value ,A may be both positive or negative as well as greater
than 360° or less than ! 360°.
120
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Fig. 16.2-1
For
e:
exampl
G17 G90 G0 X57.735 Y0 ...
G1 G91...
X100 ,A30
(this specification is
equivalent to X100 Y57.735
where 7.735=100Atg30°)
Y100 ,A120
(this specification is
equivalent to X-57.735 Y100
where ! 57.735=100/tg120°)
X-100 ,A210 (this specification is
equivalent to X-100 Y-57.735
where ! 57.735=! 100Atg30°)
Y-100 ,A300 (this specification is
equivalent to X57.735 Y-100
where 57.735=! 100/tg120°)
Fig. 16.2-2
L Note:
– Straight line with angle together with chamfer or corner rounding can be defined in one block. For
example:
X100 ,A30 ,C5
Y100 ,A120 ,R10
X-100 ,A210
– Angle specification at address ,A can also be applied in drilling cycles. In this case it is
acknowledged in the course of positioning execution in the selected plane.
For example block
G81 G91 X100 ,A30 R-2 Z-25
is equivalent to the block below:
G81 G91 X100 Y57.735 R-2 Z-25
121
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3 Intersection Calculations in the Selected Plane
Intersection calculations discussed here are only executed by the control when tool radius
compensation (G41 or G42 offset mode) is on. If eventually no tool radius compensation is
needed in the part program turn the compensation on and use D00 offset:
With tool radius compensation:
G41(or G42) ...Dnn
Without tool radius compensation:
G41(or G42) ...D00
...
...
intersection calculations
intersection calculations
...
G40
...
G40
122
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3.1 Linear-linear Intersection
If the second one of two successive
linear interpolation blocks is specified the
way that its both end point coordinates in
the selected plane and also its angle is
specified, the control calculates the
intersection of the straight lines referred
to in the first block and the straight line
specified in the second one. The straight
line specified in the second block is
determined over. The calculated
intersection is the end point of the first
block, as well as the start point of the
second one.
Fig. 16.3.1-1
G17 G41 (G42)
N1 G1 ,A1 or
X1 Y1
G18 G41 (G42)
N1 G1 ,A1 or
X1 Z1
G19 G41 (G42)
N1 G1 ,A1 or
Y1 Z1
N2 G1G90 X2 Y2 ,A2
N2 G1G90 X2 Z2 ,A2
N2 G1G90 Y2 Z2 ,A2
The intersection is always calculated in the plane selected by G17, G18, G19. The first block (N1)
is specified either by means of its angle (,A1), in this case a straight line is drawn from the start point
to the intersection point in the appropriate angle, or with an optional position other than the start
point of the straight line (X1, Y1; X1, Z1; or Y1, Z1). In this case the intersection is calculated with
the straight line lying on both points. Coordinates given in the second block (N2) are always
interpreted by the control as absolute data (G90).
For example:
G17 G90 G41 D0...
G0 X90 Y10
N10 G1 ,A150
N20 X10 Y20 ,A225
G0 X0 Y20
...
Block N10 can also be given with the
coordinates of a point of the straight line:
G17 G90 G41 D0...
G0 X90 Y10
N10 G1 X50 Y33.094
N20 X10 Y20 ,A225
G0 X0 Y20
...
Fig. 16.3.1-2
Note, that in this case coordinate X, Y (X50 Y33.094) given in block N10 is not acknowledged by
123
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
the control as end point, but as a transit position binding the straight line with the start point.
124
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Intersection calculation can also be combined with a chamfer or corner rounding specification. E.g.:
Fig. 16.3.1-3
Fig. 16.3.1-4
G17 G90 G41 D0...
G0 X90 Y10
G17 G90 G41 D0...
G0 X90 Y10
N10 G1 X50 Y33.094 ,C10
N20 X10 Y20 ,A225
G0 X0 Y20
N10 G1 X50 Y33.094 ,R10
N20 X10 Y20 ,A225
G0 X0 Y20
...
...
In the above examples chamfering amount is measured from the calculated intersection, as well as
rounding is inserted to the calculated intersection.
125
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3.2 Linear-circular Intersection
If a circular block is given after a linear block in a way that the end and center position coordinates
as well as the radius of the circle are specified, i.e., the circle is determined over, then the control
calculates intersection between straight line and circle. The calculated intersection is the end point of
the first block, as well as the start point of the second one.
126
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
G17 G41 (G42)
N1 G1 ,A or
X1 Y1
G18 G41 (G42)
N1 G1,A or
G19 G41 (G42)
N1 G1 ,A or
Y1 Z1
X1 Z1
N2 G2 (G3) G90 X2 Y2 I
J R Q
N2 G2 (G3) G90 X2 Z2 I
K R Q
N2 G2 (G3) G90 Y2 Z2 J
K R Q
Fig. 16.3.2-1
Fig. 16.3.2-2
The intersection is always calculated in the plane selected by G17, G18, G19. The first block (N1)
is specified either by means of its angle (,A), in this case a straight line is drawn from the start point
to the intersection point in the appropriate angle, or an optional point other than the start point of the
straight line is given (X1, Y1; X1, Z1; or Y1, Z1). In this case the intersection is calculated with the
straight line lying on both points. Coordinates given in the second block (N2) also I, J, K
coordinates defining the center of the arc, are always interpreted by the control as absolute data
(G90). Of the two resulting intersections the one to be calculated by the control can be specified at
address Q.
If the address value is less than zero (Q<0) the nearer intersection in direction of the
straight line is calculated, while if the address value is greater than zero (Q>0) the farther
one in direction of the straight line is calculated. The direction of movement along the
straight line is determined by the angle.
127
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Let us see the following example:
Fig. 16.3.2-3
Fig. 16.3.2-4
%O9981
%O9982
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N20 G1 X-30 Y-20
N20 G1 X-30 Y-20
N30 G3 X20 Y40 I20 J-10 R50 Q-1
N30 G3 X20 Y40 I20 J-10 R50 Q1
N40 G40 G0 Y60
N50 X120
N60 M30
%
N40 G40 G0 Y60
N50 X120
N60 M30
%
Circular block N30 G3 is determined over, for both the center coordinates (I20 J–10 in absolute
value) and the circle radius (R50) are specified, the control calculates the intersection of the straight
line given in block N20 and the circle given in block N30. In program O9981 the nearer intersection
in direction of the straight line is calculated because Q–1 is given in circular block N30.
Linear-circular intersection calculation can also be combined with chamfering or rounding
specification. E.g.:
%O9983
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N20 G1 X-30 Y-20 ,R15
N30 G3 X20 Y40 I20 J-10 R50 Q-1
N40 G40 G0 Y60
N50 X120
N60 M30
%
The control calculates the intersection of blocks N20 and N30 and inserts a 15mm corner rounding
as the effect of ,R15 given in block N20.
128
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3.3 Circular-linear Intersection
If a linear block is given after a circular block in a way that the straight line is defined over, i.e., both
its end point coordinate and the angle are specified, then the control calculates intersection between
the circle and the straight line. The calculated intersection is the end point of the first block, as well
as the start point of the second one.
G17 G41 (G42)
N1 G2 (G3) X1 Y1 I J
or R
G18 G41 (G42)
N1 G2 (G3) X1 Z1 I K
or R
G19 G41 (G42)
N1 G2 (G3) Y1 Z1 J K
or R
N2 G1 G90 X2 Y2 ,A Q
N2 G1 G90 X2 Z2 ,A Q
N2 G1 G90 Y2 Z2 ,A Q
Fig. 16.3.3-1
Fig. 16.3.3-2
The intersection is always calculated in the plane selected by G17, G18, G19. The first block (N1),
i.e., the circle is specified with an optional point (X1, Y1; X1, Z1; or Y1, Z1) and its center point
coordinates (I J; I K; or J K) or instead of the center point coordinates with its radius (R). In the
second block (N2) the straight line is determined over, i.e., both the end point coordinates (X2 Y2;
X2 Z2; or Y2 Z2) and the angle (,A) of the straight line are given. The end point coordinates of the
straight line are always interpreted by the control as absolute data (G90). It is always the vector
angle of the straight line pointing from the resulting intersection at the given end point to be
specified at address ,A, otherwise movements contrary to programmer’s needs occur. Of the two
resulting intersections the one to be calculated by the control can be specified at address Q.
If the address value is less than zero (Q<0, e.g., Q–1) the nearer intersection in direction of
the straight line is calculated, while if the address value is greater than zero (Q>0, e.g., Q1)
the farther one in direction of the straight line is calculated. The direction of movement
along the straight line is determined by the angle.
129
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Let us see an example:
Fig. 16.3.3-3
Fig. 16.3.3-4
%O9983
%O9984
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50
N40 G1 X-50 Y42.857 ,A171.87 Q-1
N50 G40 G0 Y70
N60 X90
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50
N40 G1 X-50 Y42.857 ,A171.87 Q1
N50 G40 G0 Y70
N60 X90
N70 M30
N70 M30
%
%
Linear block N40 is defined over because both the end point coordinates (X–50 Y42.875) and the
angle (,A171.87) of the straight line are specified. Therefore X–50 Y0 coordinates of the circle
programmed in the previous block N30 are not referred to as end point coordinates, but only as a
point which is intersected by the circle and the end point is the calculated intersection. In program
No. O9983 the nearer intersection in the direction of the straight line is given (Q–1), while in O9984
the farther one is specified (Q1).
Circular-linear intersection calculation can also be combined with a chamfer or rounding
specification. E.g.:
%O9983
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50 ,R15
N40 G1 X-50 Y42.857 ,A171.87 Q-1
N50 G40 G0 Y70
N60 X90
N70 M30
%
In the example a 15mm-rounding is programmed in block N30 (,R15). The control calculates the
intersection of blocks N30 and N40 and inserts the programmed rounding to the resulting contour.
130
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3.4 Circular-circular Intersection
If two successive circular blocks are specified so that the end point, the center coordinates as well
as the radius of the second block are given, i.e., it is determined over the control calculates
intersection between the two circles. The calculated intersection is the end point of the first block, as
well as the start point of the second one.
G17 G41 (G42)
G18 G41 (G42)
G19 G41 (G42)
N1 G2 (G3) X1 Y1 I1 J1
or X1 Y1 R1
N1 G2 (G3) X1 Z1 I1 K1
or X1 Z1 R1
N1 G2 (G3) Y1 Z1 J1 K1
or Y1 Z1 R1
N2 G2 (G3) G90 X2 Y2
I2 J2 R2 Q
N2 G2 (G3) G90 X2 Z2 I2
K2 R2 Q
N2 G2 (G3) G90 Y2 Z2 J2
K2 R2 Q
Fig. 16.3.4-1
Fig. 16.3.4-2
The intersection is always calculated in the plane selected by G17, G18, G19. The first block (N1)
is specified either with the center coordinates (I1 J1; I1 K1; J1 K1) or with the radius (R1) of the circle.
In this block the interpretation of center coordinates corresponds to the default circle specification,
i.e., it is the relative distance from the start point. The coordinates given in the second block (N2), as
131
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
I, J, K coordinates defining the circle center, are always interpreted by the control as absolute
data (G90). Of the two resulting intersections the one to be calculated by the control can be
specified at address Q. If the address value is less than zero (Q<0, e.g., Q–1) the first intersection
is calculated, while if the address value is greater than zero (Q>0, e.g., Q1) it is the second one.
The first intersection is the one, first intersected going clockwise (independent of the
programmed direction G2, G3).
132
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
Let us see the following example:
Fig. 16.3.4-4
Fig. 16.3.4-3
%O9985
%O9986
N10 G17 G54 G0 X200 Y10 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50
N40 X90 Y87.446 I50 J30 R70 Q–1
N50 G40 G0 Y100
N60 X200
N10 G17 G54 G0 X200 Y10 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50
N40 X90 Y87.446 I50 J30 R70 Q1
N50 G40 G0 Y100
N60 X200
N70 M30
N70 M30
%
%
Circular block N40 is defined over because both, the center coordinates (I50 J30 in absolute value)
and the radius (R70) of the circle, are specified. Therefore coordinates X130 Y–40 of the circle
programmed in the previous block N30, are not referred to as end point coordinates, but only as a
point which is lying on the circle and the end point is the calculated intersection. In program No.
O9985 the nearer intersection in clockwise direction is given (Q–1), while in O9986 the farther one
is specified (Q1).
Circle intersection calculation can also be combined with chamfer or corner rounding specification.
E.g.:
%O9986
N10 G17 G54 G0 X200 Y10 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50 ,R20
N40 X90 Y87.446 I50 J30 R70 Q1
N50 G40 G0 Y100
N60 X200
N70 M30
%
In the example a 20mm corner-rounding is programmed in block N30 (,R20). The control
calculates the intersection of blocks N30 and N40 and inserts the programmed rounding to the
resulting contour.
133
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Automatic Geometric Calculations
16.3.5 Chaining of Intersection Calculations
Intersection calculation blocks can be chained, i.e., more successive blocks can be selected for
intersection calculation. The control calculates intersection till straight lines or circles determined over
are found.
Let us examine the example below:
Fig. 16.3.5-1
%O9984
N10 G17 G54 G0 G42 X230 Y20 D1 F300 S500 M3
N20 G1 X170 Y50
N30 G3 X110 Y10 I150 J40 R50 Q-1
N40 X60 Y70 I100 J70 R40 Q1
N50 G1 X80 Y60 ,A135 Q1
N60 X10 Y108 ,A180
N70 G40 G0 Y130
N80 X240
N90 M30
%
In the above example blocks N30, N40, N50, N60 are determined over. Linear block N20 is not
drawn to its programmed end point (X170 Y50) because circular block N30 is defined over, i.e.,
addresses I, J, R are all filled in and the intersection to be searched is given at address Q. Nor
circular block N30 is drawn to its programmed end point (X110 Y10) for circular block N40 is also
determined over. The last block determined over in the program is the linear block N60. As the
following linear block N70 is not defined over, coordinates X10 Y108 programmed in block N60
are not referred to as an intersection point of the straight line but as end point coordinates of block
N60.
In general it is true, that the coordinate points of linear and circular blocks determined over
in the selected plane are only referred to by the control as end point coordinates if they are
not followed by a block defined over.
134
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17 Canned Cycles for Drilling
A drilling cycle may be broken up into the following operations.
Operation 1: Positioning in the Selected Plane
Operation 2: Operation After Positioning
Operation 3: Movement in Rapid Traverse to Point R
Operation 4: Operation in Point R
Operation 5: Drilling
Operation 6: Operation at the Bottom of the Hole
Operation 7: Retraction to Point R
Operation 8: Operation at Point R
Operation 9: Retraction in Rapid Traverse to the Initial Point
Operation 10: Operation at the Initial Point
Point R, point of approach. - The tool approaches the workpiece to that point in rapid traverse.
Initial point. - The position of the drilling axis assumed prior to the start of cycle.
Fig. 17-1
The above operations give a general picture of a drilling cycle, some of them may be omitted in
specific instances.
A drilling cycle has a positioning plane and a drilling axis. The plane of positioning and the drill
axis will be selected by plane selection instructions G17, G18, G19.
G code
Positioning plane
Drilling axis
G17
G18
G19
plane Xp Yp
plane Zp Xp
plane Yp Zp
Zp
Yp
Xp
135
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
where Xp is axis X or the one parallel to it
Yp is axis Y or the one parallel to it
Zp is axis Z or the one parallel to it.
Axes U, V, W are regarded to be parallel ones when they are defined in parameters.
The drilling cycles can be configuredwith instructions G98 and G99.
G98 : The tool is retracted as far as the initial point in the course of the drilling cycle. A
normal (default) status assumed by the control after power-on, reset or deletion of
cycle mode.
G99 : The tool is retracted as far as point R in the course of the drilling cycle; accordingly,
operations 9 and 10 are omitted.
Fig. 17-2
Codes of the drilling cycles: G73, G74, G76, G81, ..., G89
They will set up the particular cycle mode enabling the cycle variables to be modal.
Code G80 willcancel the cycle mode and delete the cycle variables from the memory.
Addresses used in the drilling cycles (and meanings thereof) are:
G_
Xp_ Yp_
I_ J_
Zp_ R_ Q_ E_ P_ F_ S_
L_
G17
G18 G_
G19 G_
Zp_ Xp_
Yp_ Zp_
K_ I_
J_ K_
Yp_ R_ Q_ E_ P_ F_ S_
Xp_ R_ Q_ E_ P_ F_ S_
L_
L_
No. of repetitions
data of drilling
displacement after spindle orientation
position of hole
code of drilling
136
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
The code of drilling:
For meanings of the codes see below.
Each code will be modal until an instruction G80 or a code is programmed, that belongs to G code
group 1 (interpolation codes: G01, G02, G03, G33).
As long as the cycle state is on (instructions G73, G74, G76, G81,...G89), the modal cycle
variables will be modal between drilling cycles of various types, too.
Initial point:
The initial point is the position of axis selected for drilling; it will be recorded
– when the cycle mode is set up. For example, in the case of
N1 G17 G90 G0 Z200
N2 G81 X0 Y0 Z50 R150
N3 X100 Y30 Z80
the position of initial point will be Z=200 in blocks N2 and N3, too.
– Or when a new drilling axis is selected. For example:
N1 G17 G90 G0 Z200 W50
N2 G81 X0 Y0 Z50 R150
N3 X100 Y30 W20 R25
position of start point is Z=200 in block N2
position of start point is W=50 in block N3
Programming of R is mandatory when the selection of drilling axis is changed, or else error message
3053 NO BOTTOM OR R POINT is returned.
Position of hole - Xp, Yp, Z
p
Of the coordinate values entered, those in the selected plane will be taken for the position of the
hole.
The values entered may be incremental or absolute ones, rectangular (Cartesian) or polar
coordinates in metric or inch units.
The mirror image, coordinate system
rotation and scaling commands are
applicable to the coordinate values
entered.
The control moves to the position of hole
in rapid traverse regardless of which code
in group1 is in effect.
Displacement after spindle
orientation - I, J, K
If the particular machine is provided with
the facility of spindle orientation, the tool
can be retracted off the surface in fine
boring and back boring cycles G76 and
G87 in order not to scratch the surface of
the hole. Now the direction in which the
Fig. 17-3
137
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
tool is to be withdrawn from the surface can be specified at addresses I, J or K. The control will
interpret the addresses in conformity with the plane selected.
G17: I, J
G18: K, I
G19: J, K
Each address is interpreted as an incremental data of rectangular coordinates. The address may be a
metric or inch one.
The mirror image, coordinate system rotation and scaling commands are not applicable to data of I,
J, K. The latter are modal values. They are deleted by G80 or by the codes of the interpolation
group. Withdrawal is accomplished in rapid traverse.
Data of drilling
Bottom position of the hole (point Z): X , Yp, Zp
p
The bottom position of the hole or point Z (in case of G17) has to be specified at the address of the
drilling axis. The coordinate of the bottom point of the hole will always be interpreted in terms of
rectangular data. It may be specified in inch or metric units, absolute or incremental values. When
the value of the bottom point is specified incrementally, the displacement will be calculated from
point R.
Fig. 17-4
The mirror image and scaling commands are applicable to the data of the bottom point. The latter
are modal values deleted by G80 or by the codes of the interpolation group. The control will always
approach point Z with the particular feed in effect.
Point R
The point of approach is specified at address R. It is always a rectangular coordinate data that may
be an incremental or absolute one, metric or inches. When data R is an incremental one, its value is
calculated from the initial point. The mirror image and scaling data are applicable to the data of point
R. They are modal data deleted by G80 or by the codes of the interpolation group. The control will
always approach point R in a rapid traverse.
138
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
Cut-in value (Q)
It is the depth of the cut-in, in the cycles of G73 and G83. It is invariably an incremental, rectangular
positive data (a modal one). Its value will be deleted by G80 or by the codes of the interpolation
group. The scaling does not affect the value of cut-in depth.
Auxiliary data (E)
The extent of retraction in the cycle of G73 and value of clearance in the cycle of G83 is specified
on address E. It is always an incremental, rectangular, positive data. The scaling command has no
effect to the auxiliary data. (Modal value). Its value will be deleted by G80 or by the codes of the
interpolation group. Unless it has been programmed, the control will take the necessary value from
parameter RETG73, or CLEG83.
Dwell (P)
Specifies the time of dwell at the bottom of the hole. Its specification is governed by the rules
described at G04. The value of the dwell is a modal one deleted by G80 or by the codes of the
interpolation group.
Feed (F)
It will define the feed. A modal value, re-written only by the programming of another data F. It will
not be deleted by G80 or some other code.
Spindle speed (S)
A modal value re-written only by programming another data S. It will not be deleted by G80 or
some other code.
Number of repetitions (L)
Defining the number of cycle repetitions over the range of 1 through 9999. Unless L is filled in, the
value of L=1 is assumed. In the case of L=0 the data of the cycle will be stored but not executed.
The value of L is effective only in the block in which it has been specified.
Examples of modal drilling codes and cycle variables:
N1 G17 G0 Z_ M3
N2 G81 X_ Y_ Z_ R_ F_
It is mandatory to specify the data of drilling (Z, R) at the beginning of cycle mode.
N3 X_
Since the data of drilling have been specified in block N2 and they are used unchanged in N3, they
need not be filled in again, i.e., G81, Z_, R_, F_ may be omitted. The position of the hole is varied
in direction X only, the tool moves in that direction and will drill the same hole as in block N2.
N4 G82 Y_ Z_ P_
The position of the hole is shifted in direction Y. The method of drilling complies with G82, the
bottom point assumes a new value (Z), the point R and the feed (R, F) are taken from block N2.
N5 G80 M5
The cycle mode and the modal cycle variables (except for F) will be deleted.
N6 G85 Y_ Z_ R_ P_ M3
Since the data of drilling are deleted in block N5 under the command of G80, the values of Z, R
and P have to be specified again.
N7 G0 X_ Y_
The cycle mode and the modal cycle variables (except for F) will be deleted.
139
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
Examples of using cycle repetitions:
If a particular type of hole is to be drilled with unchanged parameters at equally spaced positions,
the number of repetitions can be specified at address L. The value of L is only effective in the block,
in which it has been specified.
N1 G90 G17 G0 X0 Y0 Z100 M3
N2 G91 G81 X100 Z–40 R–97 F50 L5
Under the above instructions the control will drill 5
identical holes spaced at 100mm along axis X. The
position of the first hole is X=100, Y=0.
Under G91 the position of the hole has been
specified incrementally. If it had been specified as
Fig. 17-5
an absolute data (G90), the operation would have been carried out five times in succession in the
point of X100, Y0 coordinates.
N1 G90 G17 G16 G0 X200 Y–60 Z50 M3
N2 G81 YI60 Z–40 R3 F50 L6
Under the above instructions the control will drill 6
holes spaced at 60 degrees around a circle of a
200mm radius. The position of the first hole
coincides with the point of X=200 Y=0
coordinates.
Fig. 17-6
140
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1 Detailed Description of Canned Cycles
17.1.1 High Speed Peck Drilling Cycle (G73)
Fig. 17.1.1-1
The variables used in the cycle are
G17 G73 Xp__ Yp__ Zp__ R__ Q__ E__ F__ L__
G18 G73 Zp__ Xp__ Yp__ R__ Q__ E__ F__ L__
G19 G73 Yp__ Zp__ Xp__ R__ Q__ E__ F__ L__
The operations of the cycle are
1.
2.
rapid-traverse positioning
-
3.
rapid-traverse movement to point R
4.
-
5.
drilling as far as the point Z, with feed F
6.
-
7.
with G99, retraction to point R, in rapid traverse
8.
-
9.
10.
with G98, retraction to the initial point, in rapid traverse
-
Description of drilling operation 5 is as follows:
– drilling the cut-in depth specified at address Q in the workpiece, with feed,
– rapid-traverse retraction by the distance specified at address E or in parameter RETG73,
– drilling cut-in depth Q again, reckoned from the end point of the previous cut-in,
– rapid-traverse retraction at the value specified at address E.
The above procedure is carried on as far as the bottom point specified at address Z.
141
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.2 Counter Tapping Cycle (G74)
Fig. 17.1.2-1
This cycle can be used only with a spring tap. The variables used in the cycle are
G17 G74 Xp__ Yp__ Zp__ R__ (P__) F__ L__
G18 G74 Zp__ Xp__ Yp__ R__ (P__) F__ L__
G19 G74 Yp__ Zp__ Xp__ R__ (P__) F__ L__
Prior to start the cycle, the spindle has to be started or programmed to rotate in the direction of M4
(counter-clockwise).
The value of feed has to be specified in conformity with the thread pitch of the tapper.
– In state G94 (feed per minute):
where P is the thread pitch in mm/rev or inches/rev,
S is the spindle speed in rpm
– In state G95 (feed per revolution):
where P is the thread pitch in mm/rev or inches/rev.
The operations of the cycle:
rapid-traverse positioning in the selected plane
-
rapid-traverse movement as far as point R
-
drilling as far as thebottom point, with feed F (override and stop inhibited)
dwell with the value specified at address P, provided parameter TAPDWELL is
enabled (=1) spindle direction reversal (M3)
retraction as far as point R with feed F (override and stop inhibited)
spindle direction reversal (M4)
1.
2.
3.
4.
5.
6.
7.
8.
with G98, rapid-traverse retraction to the initial point
-
9.
10.
142
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.3 Fine Boring Cycle (G76)
Fig. 17.1.3-1
Cycle G76 is only applicable when the facility of spindle orientation is incorporated in the machine-
tool. In this case parameter ORIENT1 is to be set to 1, otherwise message 3052 ERROR IN G76 is
returned.
Since, on the bottom point, the cycle performs spindle orientation and recesses the tool from the
surface with the values specified at I, J and K, the part will not be scratched when the tool is
withdrawn.
The variables used in the cycle are
G17 G76 Xp__ Yp__ I__ J__ Zp__ R__ P__ F__ L__
G18 G76 Zp__ Xp__ K__ I__ Yp__ R__ P__ F__ L__
G19 G76 Yp__ Zp__ J__ K__ Xp__ R__ P__ F__ L__
Command M3 has to be issued prior to starting the cycle.
The operations of the cycle:
1.
2.
3.
4.
5.
6.
rapid-traverse positioning in the selected plane
-
rapid-traverse movement as far as point R
-
boring as far as the point Z, with feed F
– dwell with the value specified at address P
– spindle orientation (M19)
– rapid-traverse receding of the tool with values I, J, K in the selected plane
with G99, rapid-traverse retraction as far as point R
with G99,
7.
8.
– rapid-traverse retraction of the tool in the selected plane, opposite to the values
specified at I, J, K
– spindle re-started in direction M3
9.
10.
with G98, rapid-traverse retraction to the initial point
with G98,
– rapid-traverse retraction of the tool in the selected plane, opposite to the values
specified at I, J, K
143
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
– spindle re-started in direction M3
17.1.4 Canned Cycle Cancel (G80)
The code G80 will cancel the cycle state, the cycle variables will be deleted.
Z and R will assume incremental 0 value (the rest of variables will assume 0).
With coordinates programmed in block G80 but no other instruction is issued, the movement will be
carried out according to the interpolation code in effect prior to activation of the cycle (G code
group 1).
17.1.5 Drilling, Spot Boring Cycle (G81)
Fig. 17.1.5-1
The variables used in the cycle are
G17 G81 Xp__ Yp__ Zp__ R__ F__ L__
G18 G81 Zp__ Xp__ Yp__ R__ F__ L__
G19 G81 Yp__ Zp__ Xp__ R__ F__ L__
The operations of the cycle are
rapid-traverse positioning in the selected plane
-
1.
2.
rapid-traverse movement as far as point R
3.
-
4.
drilling as far as the point Z, with feed F
5.
-
6.
with G99, retraction to point R, in rapid traverse
7.
-
8.
with G98, rapid-traverse retraction to the initial point
-
9.
10.
144
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.6 Drilling, Counter Boring Cycle (G82)
Fig. 17.1.6-1
The variables used in the cycle are
G17 G82 Xp__ Yp__ Zp__ R__ P__ F__ L__
G18 G82 Zp__ Xp__ Yp__ R__ P__ F__ L__
G19 G82 Yp__ Zp__ Xp__ R__ P__ F__ L__
the operations of the cycle are
1.
2.
rapid-traverse positioning in the selected plane
-
3.
rapid-traverse movement as far as point R
4.
-
5.
drilling as far as the bottom point, with feed F
6.
dwell for the time specified at address P
7.
with G99, rapid-traverse retraction to point R
8.
-
9.
10.
with G98, rapid-traverse retraction to the initial point
-
145
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.7 Peck Drilling Cycle (G83)
Fig. 17.1.7-1
The variables used in the cycle are
G17 G83 Xp__ Yp__ Zp__ R__ Q__ E__ F__ L__
G18 G83 Zp__ Xp__ Yp__ R__ Q__ E__ F__ L__
G19 G83 Yp__ Zp__ Xp__ R__ Q__ E__ F__ L__
The oprations of the cycle are
1.
2.
rapid-traverse positioning in the selected plane
-
3.
rapid-traverse movement to point R
4.
-
5.
drilling to the bottom point, with feed F
6.
-
7.
with G99, rapid-traverse retraction to point R
8.
-
9.
10.
with G98, rapid-traverse retraction to the initial point
-
Description of drilling operation 5 is as follows:
– drilling the depth specified at address Q, with feed,
– rapid-traverse retraction to point R,
– rapid-traverse approach of the previous depth as far as the clearance amount specified on
address E,
– drilling depth Q again, reckoned from the previous cut-in, with feed F (displacement E+Q),
– rapid-traverse retraction to point R.
The above procedure is carried on as far as the bottom point specified at address Z.
146
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
Distance E will be taken from the program (address E) or from parameter CLEG83.
17.1.8 Tapping Cycle (G84)
Fig. 17.1.8-1
This cycle can be used only with a spring tap.
The variables used in the cycle are
G17 G84 Xp__ Yp__ Zp__ R__ (P__) F__ L__
G18 G84 Zp__ Xp__ Yp__ R__ (P__) F__ L__
G19 G84 Yp__ Zp__ Xp__ R__ (P__) F__ L__
Direction of spindle rotation M3 (clockwise) has to be selected prior to starting the cycle.
The value of feed has to be specified in conformity with the thread pitch of the tap.
– In state G94 (feed per minute):
where P is the thread pitch in mm/rev or inches/rev.
S is the spindle speed in rpm
– In state G95 (feed per revolution):
where P is the thread pitch in mm/rev or inches/rev.
The operations of the cycle are
1.
2.
3.
4.
5.
6.
rapid-traverse positioning in the selected plane
-
rapid-traverse movement to point R
-
tapping to the bottom point with feed F, override and stop inhibited
– dwell with value specified at address P, provided parameter TAPDWELL is
enabled (=1),
– reversal of spindle direction (M4)
7.
8.
retraction to point R with feed F, override and stop inhibited
reversal of spindle direction (M3)
147
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
9.
with G98, rapid-traverse retraction to the initial point
10.
-
17.1.9 Rigid (Clockwise and Counter-clockwise) Tap Cycles (G84.2, G84.3)
In a tapping cycle the quotient of the drill-axis feed and the spindle rpm must be equal to the thread
pitch of the tap. In other words, under ideal conditions of tapping, the quotient
must be constant from moment to moment
P is the thread pitch (mm/rev or inches/rev),
F is the feed (mm/minute or inches/minute),
S is the rpm of spindle (revolutions/minute).
where
The spindle speed and the feed of the tapping axis are controlled completely independently in left-
hand and right-hand tapping cycles G74 and G84, respectively. Accordingly, the above condition
cannot be fulfilled to full accuracy. This is particularly applicable to the bottom of the hole where the
feed of the drill axis and the spindle speed ought to be slowed down and stopped in synchronism,
and accelerated so in the opposite direction. This condition cannot be fulfilled from a controlled
point of view in the above case. The above problem can be eliminated by a spring tap, that would
compensate for the fluctuations in the value of quotient
.
A different principle of control is adopted in drilling cycles G84.2 and G84.3 enabling rigid tap
(tapping without spring). There the control maintains quotient
moment.
constant from moment to
The control will regulate only the speed of the spindle in the former case, in the latter case its
position is also controlled. The movements of the drilling axis and the spindle are linked through
linear interpolations in cycles G84.2 and G84.3. In this way quotient
can be maintained
constant in the acceleration and deceleration stages as well.
G84.2: Rigid tapping cycle
G84.3: Rigid counter tapping cycle
The above cycles are only applicable with machines in which the spindle is fitted with an encoder,
and the main drive can be fed back for position control (parameter INDEX1=1). Otherwise the
control will return error message 3052 ERROR IN G76, G87 when the mode is called.
The variables used in the cycle are
G17 G84._ Xp__ Yp__ Zp__ R__ F__ S__ L__
G18 G84._ Zp__ Xp__ Yp__ R__ F__ S__ L__
G19 G84._ Yp__ Zp__ Xp__ R__ F__ S__ L__
The spindle comes to a halt at the end of the cycle, if necessary, it has to be re-started by the
programmer.
The feed and the spindle rpm have to be specified in conformity with the thread pitch of the tap.
148
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
– In state G94 (feed per minute),
where P is the thread pitch in mm/rev or inches/rev,
S is the spindle speed in rpm
In this case the displacement and the feed along the drilling axis and the spindle will be as
follows (Z assumed to be the drilling axis):
displacement
feed
Z
S
z= distance between point R and point Z
– In state G95 (feed per revolution),
where P is the thread pitch in mm/rev or inches/rev. Evidently, the thread pitch can be
programmed directly in state G95 (feed per revolution), but S also has to be
programmed in order to define the feed.
In this case, the displacement and the feed along the drilling axis and the spindle will be as
follows (assuming axis Z to be the drilling axis):
displacement
feed
z=R distance between point and the base
point
Z
S
Fig. 17.1.9-1
In the case of G84.2, the operations of the cycle are
rapid-traverse positioning in the selected plane
-
rapid-traverse movement to point R
1.
2.
3.
149
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
4.
5.
spindle orientation (M19)
linear interpolation between the drilling axis and the spindle, with the spindle
rotated in clockwise direction
6.
7.
-
linear interpolation between the drilling axis and the spindle, with the spindle
being rotated counter-clockwise
8.
9.
10.
-
with G98, rapid-traverse retraction to the initial point
-
Fig. 17.1.9-2
In the case of G84.3, the operations of the cycle are
1.
2.
3.
4.
5.
rapid-traverse positioning in the selected plane
-
rapid-traverse movement to point R
spindle orientation (M19)
linear interpolation between the drilling axis and the spindle, with the spindle
rotated in counter-clockwise direction (-)
6.
7.
linear interpolation between the drilling axis and the spindle, with the spindle
being rotated clockwise (+)
8.
9.
10.
-
with G98, rapid-traverse retraction to the initial point
-
150
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.10 Boring Cycle (G85)
Fig. 17.1.10-1
The variables used in the cycle are
G17 G85 Xp__ Yp__ Zp__ R__ F__ L__
G18 G85 Zp__ Xp__ Yp__ R__ F__ L__
G19 G85 Yp__ Zp__ Xp__ R__ F__ L__
The operations of the cycle are
1.
2.
rapid-traverse positioning in the selected plane
-
3.
rapid-traverse movement to point R
4.
-
5.
boring as far as the bottom point with feed F
6.
-
7.
retraction to point R with feed F
8.
-
9.
10.
with G98, rapid-traverse retraction to the initial point
-
151
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.11 Boring Cycle Tool Retraction with Rapid Traverse (G86)
Fig. 17.1.11-1
The variables used in the cycle are
G17 G86 Xp__ Yp__ Zp__ R__ F__ L__
G18 G86 Zp__ Xp__ Yp__ R__ F__ L__
G19 G86 Yp__ Zp__ Xp__ R__ F__ L__
The spindle has to be given rotation of M3 when the cycle is started.
The operations of the cycle are
1.
2.
rapid-traverse positioning in the selected plane
-
3.
4.
rapid-traverse movement to point R
-
5.
6.
boring as far as the point Z with feed F
stopping the spindle (M5)
7.
8.
9.
10.
with G99, rapid-traverse retraction to point R
with G99, spindle re-started (M3)
with G98, rapid-traverse retraction to the start point
with G98, spindle re-started (M3)
152
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.12 Boring Cycle/Back Boring Cycle (G87)
The cycle will be performed in two different ways.
Fig. 17.1.12-1
A. Boring Cycle, Manual Operation at Bottom Point
Unless the machine is provided with the facility of spindle orientation (parameter ORIENT1=0), the
control will act according alternative "A".
The variables used in the cycle are
G17 G87 Xp__ Yp__ Zp__ R__ F__ L__
G18 G87 Zp__ Xp__ Yp__ R__ F__ L__
G19 G87 Yp__ Zp__ Xp__ R__ F__ L__
The spindle must be started in M3 when the cycle is started.
The operations of the cycle are
rapid-traverse positioning in the selected plane
-
rapid-traverse movement to point R
1.
2.
3.
4.
5.
6.
-
boring as far as the bottom point with feed F
– spindle stop (M5)
– the control assumes STOP state (M0), from which the operator can get in one of
the manual movement modes (JOG, INCREMENTAL JOG, or HANDLE)
and operate the machine manually, for example retract the tool from the side
of the hole then remove the tool from the hole. After returning AUTO mode
machining can be continued by START.
with G99, START followed by rapid-traverse retraction to point R
with G99, spindle re-started (M3)
7.
8.
with G98, START followed by rapid-traverse retraction to the initial point
with G98, spindle re-started (M3)
9.
10.
153
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
Fig. 17.1.12-2
B. Back Boring Cycle
If the machine is provided with the facility of spindle orientation (parameter ORIENT1=1), the
control will act in conformity with case "B".
The variables of cycle are
G17 G87 Xp__ Yp__ I__ J__ Zp__ R__ F__ L__
G18 G87 Zp__ Xp__ K__ I__ Yp__ R__ F__ L__
G19 G87 Yp__ Zp__ J__ K__ Xp__ R__ F__ L__
The spindle must be given rotation M3 when the cycle is started.
The operations of cycle are
rapid-traverse positioning in the selected plane
– spindle orientation
1.
2.
– tool receded in the selected plane with values I, J, K (rapid traverse)
rapid-traverse movement to point R
– tool receded in the selected plane opposite to the values specified at I, J or K
(rapid traverse)
3.
4.
– spindle re-started in direction M3
boring as far as the point Z, with feed F
– spindle orientation (M19)
5.
6.
– tool receded in the selected plane with values I, J, K (rapid traverse)
-
-
7.
8.
rapid-traverse retraction to the initial point
– tool receded in the selected plane opposite to the values specified at I, J or K
(rapid traverse)
9.
10.
– spindle re-started in direction M3
Following from the nature of the cycle, point R is located, unlike in the previous instances, lower
than point Z. This must be taken into account in programming the boring axis and addresses R.
154
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.13 Boring Cycle (Manual Operation on the Bottom Point) (G88)
Fig. 17.1.13-1
The variables used in the cycle are
G17 G88 Xp__ Yp__ Zp__ R__ P__ F__ L__
G18 G88 Zp__ Xp__ Yp__ R__ P__ F__ L__
G19 G88 Yp__ Zp__ Xp__ R__ P__ F__ L__
The spindle must be given rotation M3 when the cycle is started.
The operations of the cycle are
1.
2.
3.
4.
5.
6.
rapid-traverse positioning in the selected plane
-
rapid-traverse movement to point R
-
boring as far as the bottom point with feed F
– dwell with value P
– spindle stop (M5)
– the control assumes STOP state (M0), from which the operator can get in one of
the manual movement modes (JOG, INCREMENTAL JOG, or HANDLE)
and operate the machine manually, for example retract the tool from the side
of the hole then remove the tool from the hole. After returning AUTO mode
machining can be continued by START.
7.
8.
with G99, START followed by retraction to point R (rapid traverse)
with G99, spindle re-started (M3)
9.
with G98, rapid-traverse retraction to the initial point
10.
with G98, spindle re-started (M3)
The cycle is the same as case "A" of G87 but dwelling before the spindle stop.
155
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
17.1.14 Boring Cycle (Dwell on the Bottom Point, Retraction with Feed) (G89)
Fig. 17.1.14-1
The variables used in the cycle are
G17 G89 Xp__ Yp__ Zp__ R__ P__ F__ L__
G18 G89 Zp__ Xp__ Yp__ R__ P__ F__ L__
G19 G89 Yp__ Zp__ Xp__ R__ P__ F__ L__
The operations of the cycle are
1.
2.
rapid-traverse positioning in the selected plane
-
3.
rapid-traverse movement to point R
4.
-
5.
boring as far as the bottom point, with feed F
6.
dwelling with the value specified at address P
7.
retraction to point R, with feed F
8.
-
9.
10.
with G98, rapid-traverse retraction to the initial point
-
Except for dwelling, the cycle is identical with G85.
17.2 Notes to the use of canned cycles
– The drilling cycle will be executed in cycle mode provided a block without code G contains one
of the addresses
Xp, Yp, Zp, or R
Otherwise, the drilling cycle will not be executed.
– With dwell G04 P programmed in cycle mode, the command will be executed in conformity with
P programmed, but the cycle variable of dwell will not be deleted and will not be re-written.
– The values of I, J, K, Q, E, P have to be specified in a block, in which drilling is also performed,
or else the values will not be stored.
156
Download from Www.Somanuals.com. All Manuals Search And Download.
17 Canned Cycles for Drilling
To illustrate the foregoing, let us see the following example.
G81 X_ Y_ Z_ R_ F
(the drilling cycle is executed)
(the drilling cycle is executed)
X
F_
(the drilling cycle is not executed, F is
over-written)
M_
(the drilling cycle is not executed, code M
is executed)
G4 P_
(the drilling cycle is not executed, the
dwell will be re-written, but not the dwell
value of cycle variable)
I_ Q_
(the drilling cycle is not executed, the
programmed values will not be recorded as
cycle variables)
– If a function as well as a drilling cycle are programmed in one block, the function will be executed
at the end of the first operation, on completion of positioning. If L has also been
programmed in the cycle, the function will be executed in the first round only.
– In block-byQblock mode, the control will stop after each of operations 1, 3 and 10 during the
cycle.
– The STOP button is ineffective to each of operations 5, 6 and 7 of cycles G74, G84. If STOP is
depressed during those operations, the control will continue its functioning, and will not stop
before the end of operation 7.
– The feed and the spindle override will always be 100% in each of operations 5, 6 and 7 of cycles
G74, G84 regardless of the override switch setting.
– If G43, G44, G49 is programmed in a cycle interpolation, or if a new value of H is specified, the
length compensation will be taken into account in operation 3, invariably along the drilling
axis.
– Instructions G45, ... G48 will not be executed in the drilling cycle.
157
Download from Www.Somanuals.com. All Manuals Search And Download.
18 Measurement Functions
18 Measurement Functions
18.1 Skip Function (G31)
Instruction
G31 v (F) (P)
starts linear interpolation to the point of v coordinate. The motion is carried on until an external skip
signal (e.g. that of a touch-probe) arrives or the control reaches the end-point position specified at
the coordinates of v. The control will slow down and come to a halt after the skip signal has arrived.
Address P specifies which skip signal input is to be used during movement of the 4 ones available in
control:
P0: uses skip signal 1
P1: uses skip signal 2
P2: uses skip signal 3
P3: uses skip signal 4
If address P is not specified, control takes skip signal 1.
G31 is a non-modal instruction applicable only in the particular block, in which it has been
programmed. The control returns error message 3051 G22, G28, ... G31, G37 if a syntactic error
is found in instruction G31.
The speed of motion is
– the specified or modal value F if parameter SKIPF=0
– the feed value taken from G31FD if parameter SKIPF=1.
In the instant the external signal arrives, the
positions of axes will be stored in the system
variables specified below.
#5061.........position of axis 1
#5062.........position of axis 2
.
.
#5068.........position of axis 8
Fig. 18.1-1
The position stored there is
– the position assumed in the instant the external signal (if any) has arrived,
– the programmed end-point position of interpolation G31 (unless an external signal has arrived),
– to be understood invariably in the current work coordinate system,
– with the actual length compensation (G43, G44) and
– with the actual tool offset (G45 ... G48) taken into account.
The motion comes to a halt with linear deceleration after the external signal has arrived. Now the
end-point position of interpolation G31 is slightly different from the positions stored in variables
#5061... on arrival of the signal, the difference varies with the feed applied in the interpolation. The
end-point positions of the interpolations are accessible in variables #5001... . The next interpolation
will be effective from those end-point positions on.
158
Download from Www.Somanuals.com. All Manuals Search And Download.
18 Measurement Functions
The interpolation can be executed in state G40 only. Programming G31 in state G41 or G42 returns
error message 3054 G31 IN INCORRECT STATE. Again, the same error message will be
returned if state G95, G51, G51.1, G68 or G16 is in effect.
The value specified at coordinates v may be an incremental or an absolute one. If the next movement
command following G31 block is specified in incremental coordinates, the motion will be calculated
from the point where the skip signal has arrived and the motion stopped.
For example,
N1 G31 G91 X100
N2 X30 Y50
An incremental motion in direction X is started
in block N1. If the control comes to a halt at the
point of coordinate X=86.7 on arrival of the
external signal, it will move incrementally 30 in
X direction and 50 in Y direction in block N2
(reckoned from that point).
Fig. 18.1-2
In the case of an absolute data specification
being programmed, the motion will be
N1 G31 G90 X200
N2 X300 Y100
Interpolation N1 starts a motion in direction X
to the point of coordinate X=200. If, after
arrival of the external signal, the control comes
to a halt at the point of coordinate X=167, the
Fig. 18.1-3
displacement in direction X will be X=300-167,
i.e., X=133 in block N2.
18.2 Automatic Tool Length Measurement (G37)
Instruction
G37 q
will cause the motion to be started in rapid traverse in the direction specified at coordinate q. The
value of q is interpreted invariably as an absolute data and it is the predicted position of the
measuring sensor.
The motion will be carried on in rapid traverse
rate as far as position q - RAPDIST where
RAPDIST is a parameter-selected value.
The motion is then carried on with the feed
specified in parameter G37FD until the signal of
the probe arrives or until the control returns the
error message 3103 OUT OF RANGE. The
latter occurs only when the touch-probe signal
arrives outside of the ALADIST range
(specified on parameter) of the predicted
position q.
Fig. 18.2-1
If the measurement is completed successfully
159
Download from Www.Somanuals.com. All Manuals Search And Download.
18 Measurement Functions
and the touch-probe signal has arrived at the point of coordinate Q, the control will
– add the difference Q-q to the wear of compensation register selected on address H earlier (if
parameter ADD=1)
– or will subtract the difference from it (if parameter ADD=0).
The appropriate H value and the length compensation have to be set up prior to commencement of
the measurement.
– G37 is a single-shot instruction.
– Cycle G37 will be executed invariably in the coordinate system of the current workpiece.
– Parameters RAPDIST and ALADIST are always positive values. The condition RAPDIST >
ALADIST must be fulfilled for the two parameters.
– Error message 3051 G22, G28, ... G31, G37 will be returned in the case of a syntactic error.
– Code G referring to a length compensation (G43, G44, G49) cannot be specified in block G37,
or else error message 3055 G37 IN INCORRECT STATE is returned.
– Again, the same error message is returned when state G51, G51.1, G68 or G16 is in effect.
The following error message will be returned during the execution of function G37.
– Message 3103 OUT OF RANGE is returned if the touch-probe signal arrives outside of the
ALADIST range of the end position programmed in interpolation G37.
160
Download from Www.Somanuals.com. All Manuals Search And Download.
19 Safety Functions
19 Safety Functions
19.1 Programmable Stroke Check (G22, G23)
Instruction
G22 X Y Z I J K P
will forbid to enter the area selected by the command. Meaning of addresses:
X:
I:
limit along axis X in positive direction
limit along axis X in negative direction
limit along axis Y in positive direction
limit along axis Y in negative direction
limit along axis Z in positive direction
limit along axis Z in negative direction
Y:
J:
Z:
K:
The following conditions must be fulfilled for the specified data:
X$I, Y$J, Z$K
It can be selected at address P that the area is prohibited on the outside or on the inside.
P=0, the selected area is prohibited on the inside.
P=1, the selected area is prohibited on the outside.
Fig. 19.1-1
Instruction
G23
will cancel programmable stroke check function, the tool can enter the area selected above.
Instruction G22, G23 will re-write directly the respective parameters.
Instruction G22 or G23 will set parameter STRKEN to 1 or 0, respectively.
Instruction G22 P0 or G22 P1 will set parameter EXTER to 0 or 1, respectively.
Coordinates X, Y, Z in instruction G22 will write the LIMP2n parameters pertaining to the
respective axes, coordinates I, J, K will set the LIMN2n values pertaining to the respective axes.
Before being written to the respective parameters, the coordinates in instruction G22 will be
converted to the coordinate system of the machine, with the selected compensation offsets included.
Thus e.g., if the length compensation is set up in direction Z when instruction G22 is specified, the
161
Download from Www.Somanuals.com. All Manuals Search And Download.
19 Safety Functions
limit data of coordinates specified for that axis will limit the movement by stopping the tip of the tool
at the limit. If, however, the compensation is not set up, the reference point of the tool holder will not
be allowed into the prohibited area. It is advisable to set the border of the forbidden area at the axis
of the tool for the longest one.
– Programable stroke check function is not available for the additional axes.
– Instructions G22, G23 have to be specified in independent blocks.
– Programable stroke check function will be effective after reference point return.
– If the machine enters a prohibited area after reference-point return or as a result of programming
G22, and the area is prohibited internally, the prohibition has to be released in manual mode
by programming G23; the axis/axes must be moved out by manual jog, and stroke check
has to be set up again by programming G22. In the case of an externally forbidden area, the
procedure of leaving the area will be the same as the one following an overtravel.
– If an axis reaches the border of the prohibited area in motion, it can be removed from it by
manual movement (in one of the manual modes).
– The entire space is allowed if X=I, Y=J, Z=K and E=0.
– The entire space is prohibited if X=I, Y=J, Z=K and E=1.
– If the area is prohibited internally, and the axes reach the prohibited area or a border thereof, the
control will return the error message 1400 INTERNALLY FORBIDDEN AREA.
– If the area is prohibited externally, and the axes reach the prohibited area or a border thereof, the
control will return the error message FORBIDDEN AREA t+ or FORBIDDEN AREA t–
where t is the name of axis.
19.2 Parametric Overtravel Positions
Using the parameters of the control, the machine-tool builder can define for each axis the overtravel
positions that is the stroke limit permissible with the particular machine. As soon as the border of
that area is reached, the control will return an error message as if it had run over a limit switch.
S Parametric overtravel function is only
performed by the control after reference
point has been returned.
S The parametric overtravel function will
prohibit always an external area.
S The areas of programmed stroke check and
that of overtravel functions may overlap.
Fig. 19.2-1
162
Download from Www.Somanuals.com. All Manuals Search And Download.
19 Safety Functions
19.3 Stroke Check Before Movement
The control differentiates two forbidden areas. The first is the parametric overtravel area which
delimits the physically possible movement range of the machine. The extreme positions of that range
are referred to as limit positions. During movements the control will not allow those axes to move
beyond the limits of that area defined by parameters. The limit positions are set by the builder of the
machine; The user may not alter those parameters.
The second is the area defined by the programmable stroke check function. This may be
accomplished by programming command G22 or rewriting the parameters.
During any motion the control will not allow the axes to move beyond the limits of these areas.
If parameter
CHBFMOVE is set to
1, the control will -
before starting the axes
in the course of
executing a block -
check whether the
programmed end point
of the particular
interpolation is in a
prohibited area.
If the end point of the
Fig. 19.3-1
block is located
outside of the parametric overtravel area or in the programmed forbidden area, error message 3056
LIMIT or 3057 FORBIDDEN AREA will be returned, respectively. As a result, the movement is
practically not started at all.
Since, prior to starting
the interpolation, the
control only checks
whether the end point
of the interpolation is
located in a prohibited
area the error message
Fig. 19.3-2
is produced in the
instances shown in the figures at the border of the forbidden area, after the movement has been
started.
163
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20 Custom Macro
20.1 The Simple Macro Call (G65)
As a result of instruction
G65 P(program number) L(number of repetitions) <argument assignment>
the custom macro body (program) specified at address P (program number) will be called as many
times as is the number specified at address L.
Arguments can be assigned to the macro body. They are specific numerical values assigned to
definite addresses, that are stored in respective local variables during a macro call. Those local
variables can be used by the macro body, i.e., the macro call is a special subprogram call in which
the main program can transfer values (parameters) to the subprogram.
The following two argument assignments can be selected:
Address string of argument assignment No.1 is
A B C D E F H I J K M Q R S T U V W X Y Z
No value can be transferred to the macro body at any one of addresses G, L, N, O, P. The
addresses can be filled in any arbitrary sequence, not necessarily in alphabetical order.
Address string of selecting argument assignment No.2 is
A B C I1 J1 K1 I2 J2 K2 ... I10 J10 K10
In addition to addresses A, B, C, maximum 10 different arguments can be assigned for addresses I,
J, K. The addresses can be filled in any arbitrary sequence. If several arguments are selected for a
particular address, the variables will assume the respective values in the order of selection.
l v
1. a a
2. a a
l v
1. a a
2. a a
l v
1. a a
2. a a
#1
A
B
C
I
A
B
#12
(L)
M
(N)
(O)
(P)
Q
K3
I4
#23
W
X
Y
Z
–
J7
K7
I8
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#13
#14
#15
#16
#17
#18
#19
#20
#21
#22
#24
#25
#26
#27
#28
#29
#30
#31
#32
#33
C
J4
I1
J1
K1
I2
J2
K2
I3
J3
K4
I5
J8
J
K8
I9
K
D
E
J5
–
R
K5
I6
–
J9
S
–
K9
I10
J10
K10
F
T
J6
–
(G)
H
U
K6
I7
–
V
–
S Abbreviations: lv=local variable, 1.a a=argument assignment No.1, 2.a a= argument
assignment No.2.
The subscripts following addresses I, J, K indicate the argument assignment sequence.
The control will accept simultaneous selections of arguments 1 and 2 in a given block. An error
message will be returned when an attempt is made to make reference twice to a variable of a
164
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
particular number. For example,
G65 A2.12 B3.213 J36.9 J–12 E129.73 P2200
variable
#1=2.12
#2=3.213
#5=36.9
#8=–12
#8= ERROR
In the above example, variable #8 has already been assigned a value by the second address J
(value, -12), since the value of address E is also assigned to variable #8, the control returns error
message 3064 BAD MACRO STATEMENT.
A decimal point and a sign can also be transferred at the addresses.
20.2 The Modal Macro Call
20.2.1 Macro Modal Call in Every Motion Command (G66)
As a result of instruction
G66 P(program number) L(number of repetitions) <argument assignment>
the macro body specified at address P (program number) will be called after the execution of each
motion command, as many times as is the number specified at address L. The interpretations of
addresses P and L and the rules of argument assignment are identical with those described for
instruction G65.
The selected macro will be called until with command
G67
it is canceled.
For example, a hole has to be drilled in a given segment of the part program after each movement:
Main program
...
G66 P1250 Z–100 R–1 X2 F130
(Z=Z point of hole, R=R point of hole,
X=dwell F=feed)
G91 G0 X100
Y30
drilling is performed after each posi-
tioning
X150
...
G67
Macro body
%O1250
(rapid-traverse positioning in direction Z to the
G0 Z#18
point specified at address R–1)
(drilling as far as the point Z specified at
G1 Z#26 F#9
address Z–100, with the feed specified at address
F130)
(dwell at the bottom of the hole for the time
G4 P#24
specified at address X2)
165
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
G0 Z-[#18+#26]
M99
%
(retraction of the tool to the initial point)
(return to the main program)
20.2.2 Macro Modal Call From Each Block (G66.1)
As a result of command
G66.1 P(program number) L(number of repetitions) <argument assignment>
all subsequent blocks will be interpreted as argument assignment, and the macro of the number
specified at address P will be called, and will be executed as many times as is the number specified
at address L.
The command produces the same effect as if each block were a G65 macro call:
G66.1 P L
G65 P L X Y Z
G65 P L M S
G65 P L X
X Y Z
M S
X
=
G67
The selected macro will be called until with command
G67
it is canceled.
The rules of argument assignment are
In the block performing the activation (in which G66.1 P L has been programmed), the rules
of the argument assignment are the same as in command G65.
In the blocks following instruction G66.1,
1.
2.
the same addresses can be used as in command G65, and
L: #12,
P: #16,
G: #10 with the qualification that the control will accept only one reference to an address G
in each block; programming several G addresses will produce error message 3005
ILLEGAL G CODE.
N: #14 if an N address is at the beginning of a block (or preceded at most by the address of
a conditional block "/"), the second N address will be considered for an argument:
/N130 X12.3 Y32.6 N250
Block No.
#24=12.3
#25=32.6
#14=250
if address N is in the middle of the block (preceded by any address other than "/"),
address N will be interpreted as an argument:
X34.236 N320
#24=34.236
#14=320
if address N has been recorded already as an argument, the next reference to
address N will produce error message 3064 BAD MACRO STATEMENT.
166
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
In the case of G66.1, the rules of block execution:
The selected macro will be called already from the block, in which code G66.1 has been specified,
taking into account the rules of argument assignment described at point 1.
Each NC block following G66.1 to a block containing code G67 will produce a macro call with the
rules of argument assignment described under point 2. No macro will be called if an empty block is
found (e.g., N1240) where a reference is made to a single N address, or from a block containing a
macro instruction.
20.3 Custom Macro Call Using G Code
Maximum 10 different G codes can be selected by parameters, to which macro calls are initiated.
Now instead of specifying
Nn G65 Pp <argument assignment>
the following command can be used
Nn Gg <argument assignment>.
The particular program number to be called by the G code has to be selected in parameters. None
of codes G65, G66, G66.1 and G67 may be specified for this purpose.
G(9010)=code G calling program O9010
G(9011)=code G calling program O9011
:
G(9019)=code G calling program O9019
If a negative value is written in parameters, the selected G code will generate a modal call. If, e.g.,
G(9011)=-120, instruction G120 in the program will produce a modal call. The state of parameter
MODGEQU will define the type of call:
MODGEQU=0, call is G66 type
MODGEQU=1, call is G66.1 type.
If the value of the parameter is 0, the macro will be called at the end of each motion block. If the
value of the parameter is 1, the macro will be called for each block.
If a standard G code is selected for user call (e.g., G01), and a reference is made to that code again
in the body of the macro, it will not produce another call, instead, it will be interpreted and executed
by the control as an ordinary G code.
If a reference is made to the calling G code again in the body of the macro, and it is different from a
standard G code, the control will return error message 3005 ILLEGAL G CODE.
– Calling a user M, S, T, A, B, C from a user G code call,
– Calling a user G code from a user M, S, T, A, B, C call is enabled, depending on the parameter
value.
FGMAC=0, not enabled (executed as ordinary M, S, ... G codes)
FGMAC=1, enabled, i.e. a new call is generated.
The user G codes have the following sets of arguments:
– if the code is of G65 or G66 type, the set of arguments assigned to G65, plus P and L,
– if the code is of G66.1 type, the points described are applicable to its set of arguments.
A modal code can be deleted by instruction G67.
167
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.4 Custom Macro Call Using M Code
Maximum 10 different M codes can be selected by parameters, to which macro calls are initiated.
Now the series of instructions
Nn Mm <argument assignment>
have to be typed. Now code M will not be transferred to the PLC, but the macro of the respective
program number will be called.
The particular program number to be called by the calling M code has to be selected by parameters.
M(9020)=code M calling program O9020
M(9021)=code M calling program O9021
:
M(9029)=code M calling program O9029
Code M can specify invariably a type G65 call (i.e., a non-modal one).
If reference is made again to the same M code in the middle of the macro body, the latter will not
call the macro, instead, M code will be transferred to the PLC.
If a user call type G, S, T, A, B, C or some other user call type M is made in the middle of the
macro body,
FGMAC=0, not enabled (executed as ordinary M, S, ... G codes)
FGMAC=1, enabled, i.e. a new call is generated.
An M code selected by parameters to initiate a macro call may be preceded only by "/" and address
N in the block.
A block containing a macro call initiated by M code may include a single M code only.
Set of arguments No.1:
A B C D E F G H I J K L P Q R S T U V W X Y Z
Set of arguments No. 2 also can be used with function M.
20.5 Subprogram Call with M Code
Maximum 10 M codes can be selected by parameters, by which subprogram calls can be initiated.
Now instead of instruction
Nn Gg Xx Yy M98 Pp
can be specified
Nn Gg Xx Yy Mm
Now the selected M code will not be transferred to the PLC, instead, the respective subprogram
will be called.
The particular program number to be called by M code can be selected by the following
parameters.
M(9000)=code M calling program O9000
M(9001)=code M calling program O9001
:
M(9009)=code M calling program O9009
If reference is made to the same M code again in the subprogram, the latter will not call the
subprogram again, but M code will be transferred to the PLC.
If a user call G, S, T, A, B, C or some other user call M is made in the subprogram:
FGMAC=0, not enabled (executed as an ordinary codes M, S, ... G)
FGMAC=1, enabled, i.e. a new call will be generated.
168
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.6 Subprogram Call with T Code
With parameter T(9034)=1 set, the value of T written in the program will not be transferred to the
PLC, instead, the T code will initiate the call of subprogram No. O9034.
Now block
Gg Xx Yy Tt
will be equivalent to the following two blocks:
#199=t
Gg Xx Yy M98 P9034
The value assigned to address T will be transferred as an argument to common variable #199.
If reference is made to address T again in the subprogram started upon code T, the subprogram will
not be called over again, but the value of address T will be transferred already to the PLC.
If a user call of G, M, S, A, B, C is made in the subprogram,
FGMAC=0, not enabled (executed as an ordinary codes M, S, ... G)
FGMAC=1, enabled, i.e. a new call is generated.
20.7 Subprogram Call with S Code
With parameter S(9033)=1 set, the value of S written in the program will not be transferred to the
PLC, instead, the call of subprogram O9033 will be initiated by the S code.
Now block
Gg Xx Yy Ss
is equivalent to the following two blocks:
#198=s
Gg Xx Yy M98 P9033
The value assigned to address S will be transferred as an argument to common variable #198.
If reference is made to address S again in the subprogram started by S code, the subprogram will
not be called again, but the value of the address will be transferred already to the PLC.
If a user call of G, M, T, A, B, C is made in the subprogram,
FGMAC=0, not enabled (executed as an ordinary codes M, S, ... G)
FGMAC=1, enabled, i.e. a new call is generated.
20.8 Subprogram Call with A, B, C Codes
If address A, B or C is defined as an auxiliary function by parameters (1493 A.MISCEL=1, 1496
B.MISCEL=1, or 1499 C.MISCEL=1) and parameter A(9030)=1, or B(9031)=1, or C(9032)=1
is set, the value of A, B or C written in the program will not be transferred to the PLC or the
interpolator, instead the call of subprogram No.O9030, O9031 or O9032 will be initiated by code
A, B or C, respectively.
Now e.g. block
Gg Xx Yy Bb
is equivalent to the following two blocks:
#196=b
Gg Xx Yy M98 P9031
The values assigned to addresses A, B and C will be transferred to common variables #195,
#196,and #197, respectively.
169
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
If reference is made again to the same address in the subprogram started by code A, B or C, the
subprogram will not be called again, but the value of the address will be transferred already to the
PLC or interpolator.
If a call of a user G, M, S, T code is made in the subprogram,
FGMAC=0, not enabled (executed as ordinary codes M, S, ... G)
FGMAC=1, enabled, i.e. a new call is generated.
20.9 Differences Between the Call of a Sub-Program and the Call of a Macro
– A macro call may include arguments, but a subprogram call may not.
– The call of a subprogram will only branch into the subprogram after the execution of other
commands programmed in the block; a macro call will branch only.
– A macro call will alter the levels of local variables, a subprogram call will not. For example, the
value of #1 prior to the call of G65 is different from the one in the middle of macro body.
The value of #1 before M98 is identical with that in the subprogram.
20.9.1 Multiple Calls
Another macro can be called again from a macro. Macro calls can be made in four levels of depth,
including simple and modal ones. With the subprogram calls included, the maximum depth of the
calls may cover 8 levels.
In the case of multiple calls of modal macros (type G66), first the latter specified macro will be
called after execution of each interpolation block, from which the previously specified macros will be
called in a backward sequence. Let us see the example below:
%O0001
...
N10 G66 P2
N11 G1 G91 Z10
N12 G66 P3
N13 Z20
(1–11)
(1–13)
N14 G67
N15 G67
N16 Z–5
(canceling of call G66 P3...)
(canceling of call G66 P2 ...)
(1–16)
...
%O0002
N20 X4
N21 M99
%
(2–20)
%O0003
N30 Z2
N31 Z3
N32 M99
%
(3–30)
(3–31)
170
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Including only the interpolations, the sequence of executions will be
(1–13)
(1–16)
Level of call
(1–11)
) ) ) Level 0
) ) ) Level 1
) ) ) Level 2
(2–20)
(3–30)
(3–31)
(2–20)
(2–20)
Of the numbers in brackets, the first and the second ones are the numbers of the programs and
block being executed, respectively.
Instruction G67 specified in block N14 will cancel the macro called in block N12 (O0003); the one
specified in block N15 will cancel the macro called in block N10 (O0002).
In the case of multiple calls of macros type G66.1, first the last specified macro will be called in
entering each block (treating the addresses of the particular block as arguments), then the previously
specified macro will be called, entering the blocks of that macro and treating them as arguments.
If another macro is called again from a macro, the levels of local variables will also increase with the
macro levels.
main program
level 0
macro
level 1
O_____
macro
level 2
O_____
macro
level 3
O_____
macro
level 4
O_____
G65 P
G65 P
M99
G65 P
M99
G65 P
M99
M99
local variables
level 0
#1
level 1
#1
:
level 2
#1
:
level 3
#1
:
level 4
#1
:
#33
#33
#33
#33
#33
When the first macro is called, the local variables of the main program will be stored (#1 through
#33), and the local variables at level 1 will assume the argument values specified in the call. If
another macro is called from the first level, the local variables of the first level will be stored (#1
through #33), and the local variables on the second level will assume the argument values specified
in the call. In the case of multiple call, the local variables of the previous level will be stored and the
local variables on the next level will assume the argument values specified in the call. In the case of
M99, returning from the called macro to the calling program, the local variables stored on the
previous level will be restored in the same states they were at the time of being stored during the call.
171
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.10 Format of Custom Macro Body
The program format of a user macro is identical with that of a subprogram:
O(program number)
:
commands
:
M99
The program number is irrelevant, but the program numbers between O9000 and O9034 are
reversed for special calls.
20.11 Variables of the Programming Language
Variables instead of specific numerical values can be assigned to the addresses in the main
programs, subprograms and macros. A value can be assigned to each variable within the permissible
range. The use of variables will make for much more flexible procedures of programming.
The appropriate data can be parametrized by the use of common variables in the main programs and
subprograms, thus it will not be necessary to write new programs for similar work parts of different
size. Instead, the operator can change to new part of different size by re-writing the appropriate
common variables.
The use of variables can make a macro much more flexible than a conventional subprogram.
Whereas arguments cannot be transferred to a subprogram, arguments can be attached to a macro
through the local variables.
20.11.1 Identification of a Variable
A number of variables can be used, and each will be identified by its number. A variable is
composed of the code # and a number. For example,
#12
#138
#5106
A formula may also be used to make reference to variable - #[<formula>]
For example,
#[#120] means that variable 120 contains the serial number of variable that is referred to;
#[#120-4] means that the referred variable number is obtained by subtracting 4 from the
number contained in the variable.
20.11.2 Referring to a variable
The various addresses in the words of a program block can assume values of variables as well as
numerical values. The minus sign ("–") or operator I can, wherever it is permissible with numerical
values, be used even when a reference is made to a variable after an address. For example,
G#102
if #102=1.0, this reference is equivalent to G1
XI–#24
if #24=135.342, this reference is equivalent to XI–135.342
172
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– Referring to program number O, block number N or conditional block / by a variable is not
permissible. Address N will be regarded as a block number if it is preceded only by address
"/" in the block.
– The number of a variable may not be substituted for by a variable, i.e. ##120 is not permissible.
The correct specification is #[#120].
– If the variable is used behind an address, its value may not exceed the range of values permissible
for the particular address. If, e.g., #112=5630, reference M#112 will produce an error
message.
– If the variable is used behind an address, its value will be rounded to a significant digit
corresponding to the address. For example,
M#112
M#112
will be M1
will be M2
for
for
#112=1.23
#112=1.6
20.11.3 Vacant Variables
A variable that has not been referred to (undefined) is vacant. Variable #0 is used for a variable
that is always vacant:
#0=<vacant>
20.11.4 Numerical Format of Variables
Each variable is represented by 32 bits of mantissa and 8 bits of characteristic,
variable= M*2C
M=0, C=0
Representation of a vacant variable,
M=0, C=–128
Representation of a 0 - value variable,
The nature of a vacant variable, compared in an address:
Reference to a vacant variable in an address:
If #1=<vacant>
if #1=0
G90 X20 Y#1
G90 X20 Y#1
*
*
G90 X20
G90 X20 Y0
Vacant variable in a definition instruction:
if #1=<vacant>
if #1=0
#2=#1
#2=#1
*
*
#2=<vacant>
#2=0
#2=#1*3
*
#2=#1*3
*
#2=0
#2=0
#2=#1+#1
#2=#1+#1
*
*
#2=0
#2=0
173
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Difference between a vacant variable and a 0 - value one in a conditional expression will be
if #1=<vacant>
if #1=0
#1 EQ #0
*
#1 EQ #0
*
fulfilled
not fulfilled
#1 NE 0
*
#1 NE 0
*
fulfilled
not fulfilled
#1 GE #0
*
#1 GE #0
*
fulfilled
not fulfilled
#1 GT 0
#1 GT 0
*
*
fulfilled
not fulfilled
20.12 Types of Variables
With reference to the ways of their uses and their properties, the variables are classified into local,
common and system variables. The number of the variables tells the particular category to which it
pertains.
20.12.1 Local Variables (#1 through #33)
The local variable is a variable used by the macro program locally. If macro A calls B, and reference
is made to local variable #i in each of macros A and B, the value of local variable #i at the level
macro A will not be lost and will not be re-written after macro B has been called - despite the fact
that reference is made to #i in macro B as well. The local variables are used for the transfer of
arguments. The matches between the addresses of arguments and the local variables are contained
in the Table in the Section describing the procedure of a simple macro call (G65).
The local variable whose address has not been involved in the argument assignment, is a vacant one
that can be used optionally.
20.12.2 Common Variables (#100 through #199, #500 through #599)
Unlike the local variables, the common variables are identical throughout the entire program (not
only at the given levels of program calls) - regardless of whether they are in the main program, a
subprogram or in a macro, or at whatever level of the macro. If accordingly, #i has been used in a
macro, e.g. a value has been assigned to it, #i will have the same value in another macro, too, until it
is re-written. The common variables can be used absolutely freely in the system, they have no
distinguished functions at all.
The common variables from #100 to #199 will be deleted upon a power-off.
The values of common variables #500 through #599 will be preserved even after a
power-off.
The macro variables #500 through #599 can be made "write-protected" by the use of parameters
WRPROT1 and WRPROT2. The number of the first and the last element of the block to be
174
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
protected will be written to parameters WRPROT1 and WRPROT2, respectively. If, e.g., the
variables #530 through #540 are to be protected, the respective parameters have to be set as
WRPROT1=530 and WRPROT2=540.
20.12.3 System Variables
The system variables are fixed ones providing information about the states of the system.
Interface input signals - #1000–#1015, #1032
16 interface input signals can be determined, one by one, by reading the system variables #1000
through #1015.
Name of system variables
Interface input with reference to the
PLC program
#1000
#1001
#1002
#1003
#1004
#1005
#1006
#1007
#1008
#1009
#1010
#1011
#1012
#1013
#1014
#1015
I[CONST+000]
I[CONST+001]
I[CONST+002]
I[CONST+003]
I[CONST+004]
I[CONST+005]
I[CONST+006]
I[CONST+007]
I[CONST+010]
I[CONST+011]
I[CONST+012]
I[CONST+013]
I[CONST+014]
I[CONST+015]
I[CONST+016]
I[CONST+017]
where CONST=I_LINE*10 and I_LINE is a parameter. Thus, any arbitrary interface input can be
read.
The values of the above variables are
0= if the contact at the input is open,
1= if the contact at the input is closed.
The above 16 inputs can be read simultaneously at variable #1032. Depending on the system
variables assigned to the one-by-one reading, the value will be
Accordingly, with 24V applied to inputs #1002 and #1010, the rest of inputs being open, the value
of variable #1032 will be
The variables of the interface inputs are "read only" ones, and may not be used on the left side of a
definition instruction.
175
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Interface output signals - #1100–#1115, #1132
16 interface output signals can be issued, one by one, by assigning values to variables #1100
through #1115.
Name of system variables
Interface input with reference to the
PLC program
#1100
#1101
#1102
#1103
#1104
#1105
#1106
#1107
#1108
#1109
#1110
#1111
#1112
#1113
#1114
#1115
Y[CONST+000]
Y[CONST+001]
Y[CONST+002]
Y[CONST+003]
Y[CONST+004]
Y[CONST+005]
Y[CONST+006]
Y[CONST+007]
Y[CONST+010]
Y[CONST+011]
Y[CONST+012]
Y[CONST+013]
Y[CONST+014]
Y[CONST+015]
Y[CONST+016]
Y[CONST+017]
where CONST=O_LINE*10 and O_LINE is a parameter. Thus, any arbitrary interface output
word can be issued or read.
The values of the above variables may be
0= the contact at the output is open,
1= the contact at the output is closed.
The above 16 outputs can be issued simultaneously by using variable #1132. Depending on the
system variables assigned to the single outputs, the output value will be
Accordingly, with outputs #1102 and #1109 are on, the rest of outputs being off, variable #1132
must output the value
176
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Tool compensation values - #10001 through #13999
The tool compensation values can be read from variables #10001 through #13999, or values can be
assigned them.
No. of compensation
geometry
H
D
wear
#11001
#11002
:
geometry
#12001
#12002
:
wear
#13001
#13002
:
1
2
#10001
#10002
:
:
999
#10999
#11999
#12999
#13999
177
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Work zero-point offsets - #5201 through #5328
The work zero-point offsets can be read at variables #5201 through #5328, or values can be
assigned them.
No. of
variable
value of variable
workpiece
coordinate
system
#5201
#5202
:
common work zero point offset, axis 1
common work zero point offset, axis 2
common for
all the
coordinate
systems
#5206
#5221
#5222
:
common work zero point offset, axis 6
work zero point offset value, axis 1
work zero point offset value, axis 2
G54
G55
G56
G57
G58
G59
#5228
#5241
#5242
:
work zero point offset value, axis 8
work zero point offset value, axis 1
work zero point offset value, axis 2
#5248
#5261
#5262
:
work zero point offset value, axis 8
work zero point offset value, axis 1
work zero point offset value, axis 2
#5268
#5281
#5282
:
work zero point offset value, axis 8
work zero point offset value, axis 1
work zero point offset value, axis 2
#5288
#5301
#5302
:
work zero point offset value, axis 8
work zero point offset value, axis 1
work zero point offset value, axis 2
#5308
#5321
#5322
:
work zero point offset value, axis 8
work zero point offset value, axis 1
work zero point offset value, axis 2
#5368
work zero point offset value, axis 8
178
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
The axis number refers to the physical ones. The relationship between the numbers and the names of
axes will be defined by the machine tool builder by parameters in group AXIS. Usually axes 1, 2 and
3 are assigned to addresses X, Yand Z, respectively, but different specifications are also permissible.
Alarm - #3000
By defining
#3000=nnn(ALARM),
a numerical error message (nnn=max. three decimal digits) and the text of error message can be
provided. The text must be put in (,) brackets. A message may not be longer than 25 characters.
If the macro contains an error, i.e., the program runs to a branch in which a value has been defined to
variable #3000, the program will be executed as far as the previous block, then the execution is
suspended and the error message and the code of it (4nnn) are displayed on the screen. The number
ofthe message is the sum ofnumber specified on#3000 variable and 4000. Ifno number was specified,
the code of the message would be 4000 if no text was specified the message field will be empty. The
error state can be canceled by the RESET button.
Millisecond timer - #3001
The value of variable #3001 can be read and written.
The time interval between two time instants canbe measured in milliseconds, withanaccuracyofabout
20 ms. Counter #3001 will overflowat 65536. The value of variable #3001 will start from zero at the
time of power-on, and will count upwards. Counting is continuous as long as the control is on.
Main time timer - #3002
The value of variable #3002 can be read and written.
The time interval betweentwo time instants canbe measured in minutes, with an accuracy of about 20
ms.
At the time ofpower-on, the value ofvariable #3002 will start at the power-off leveland willbe counted
upwards.
Counting is on as long as the START light is on, i.e., the time is being measured in the start condition
of the control. It is located at time meter CUTTING2 of the parameter memory.
Suppression of block-by-block execution - #3003
If #3003=1, the controlwill not stop on completion of a block (in the state of single block mode) until
that variable assumes value 0.
The value of the variable is 0 at power-off or after resetting the program to its beginning.
#3003 block-by-block execution
0 = not suppressed
1 = suppressed
179
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Suppression of stop button, feed override, exact stop - #3004
Under the conditions of suppression of feed stop function, the feed will stop after the stop button is
pressed when the suppression is released.
When the feedrate override is suppressed, the override takes the value of 100% until the suppression
is released.
Under the conditions ofthe suppressionofthe exact stop, the controlwill not perform a check until the
suppression has been released.
The value of the variable is 0 at power-on or after resetting the program to its beginning.
#3004
Exact stop
Feed override
Feed stop
0
1
2
3
4
5
6
7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0 = function is effective
1 = function is suppressed
Stop with message - #3006
As a result of a value assigned to
#3006=nnn(MESSAGE)
the execution of the programis stopped, and the message in round brackets and the code 5nnn will be
displayed on the screen. The code is the sum of the number specified on the variable and 5000. If no
number was specified, code 5000 would be displayed, if no text was specified message field would be
empty. The execution of the program is resumed upon depression of the START button, then the
message is cleared fromthe screen. The message maynot be longer than25 characters. This instruction
is useful whenever the operator's intervention is needed during the execution of the program.
Mirror image status - #3007
By reading variable #3007, the operator can establish the particular physical axis, on which mirror-
image command is recorded. This variable is a "read only" one.
The value of the variable is interpreted in binary terms as follows.
1 1 1 1 1 1
5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Axis 1
Axis 2
Axis 3
Axis 8
180
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
The bits have the following meanings:
0 = no mirror imaging
1 = mirror imaging on.
If, e.g., the value of the variable is 5, mirror image is on in axes 1 and 3. The axis number refers to a
physical axis, the parameter defining the particular name of axis pertaining to a physical axis number.
Number of machined parts, number of parts to be machined - #3901, #3902
The numbers of machined parts are collected in counter #3901 by the control. The contents of the
counter will be incremented by 1 upon the execution of each function M02, M30 or selected M
functions in parameter PRTCNTM. As soon as the number of machined parts becomes equal to the
required number of parts (counter #3902), the NC tells it the PLC on a flag.
Number of machined parts
Number of parts to be machined
#3901
#3902
Counters #3901 and #3902 are located on parameters PRTTOTAL and PRTREQRD, respectively.
Modal information - #4001 through #4130, #4201 through #4330
The modalvalues effective in the previous block can be established by reading systemvariables #4001
through #4130.
The modal commands effective in the block under execution can be established by reading variables
#4201 through 4330.
system
variable
modal information of
the previous block
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
system
variable
modal information of
the block being
executed
#4001
:
G code, group 1
:
G code, group 20
code A
#4201
:
G code, group 1
:
G code, group 20
code A
#4020
#4101
#4102
#4103
#4107
#4108
#4109
#4111
#4113
#4114
#4115
#4119
#4120
#4220
#4301
#4302
#4303
#4307
#4308
#4309
#4311
#4313
#4314
#4315
#4319
#4320
code B
code C
code D
code E
code F
code H
code B
code C
code D
code E
code F
code H
code M entered first
block number, N
program number, O
code S
code M entered first
block number, N
program number, O
code S
code T
code T
181
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Positional information - #5001 through #5108
Positions at block end
system
position information
reading in during
motion
variable
#5001
#5002
:
block end coordinate of axis 1
block end coordinate of axis 2
possible
#5008
block end coordinate of axis 8
The block end coordinate will be entered in the variable
– in the current work coordinate system
– with the coordinate offsets taken into account
– in Cartesian coordinates
– With all compensations (length, radius, tool offset) ignored.
Instantaneous positions in the coordinate system of the machine
system
variable
nature of position information
entry during
motion
#5021
#5022
:
instantaneous coordinate of axis 1 (G53)
instantaneous coordinate of axis 2 (G53)
not possible
#5028
instantaneous coordinate of axis 8 (G53)
The instantaneous position (G53) will be entered in the variable
– in machine coordinate system
– with all compensations (length, radius, tool offset) taken into account.
Instantaneous positions in the work coordinate system
system
variable
nature of position information
entry during
motion
#5041
#5042
:
instantaneous coordinate of axis 1
instantaneous coordinate of axis 2
not possible
#5048
instantaneous coordinate of axis 8
The instantaneous coordinate of will be entered in the variable
– in the current work coordinate system
– with the coordinate offsets taken in account
– in Cartesian coordinates
– with all compensations (length, radius, tool offset) taken into account.
182
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Skip signal position
system
variable
nature of position information
entry during
motion
#5061
#5062
:
Skip signal coordinate of axis 1 (G31)
Skip signal coordinate of axis 2 (G31)
possible
#5068
Skip signal coordinate of axis 8 (G31)
The position, in which the skip signal has arrived in block G31 will be entered in the variable
– in the work coordinate system
– with the coordinate offsets taken into account
– in Cartesian coordinates
– with all compensations (length, radius, tool offset) taken into account.
Unless the skip signal has arrived, the above variables will assume the end-point positionprogrammed
in block G31.
Fig. 20.12.3-1
Tool-length compensation
system
variable
nature of position information
entry during
motion
#5081
#5082
:
length compensation on axis 1
length compensation on axis 2
not possible
#5088
length compensation on axis 8
The readable tool-length compensation is the one in effect in the block being executed.
183
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Fig. 20.12.3-2
Servo lag
system
variable
nature of position information
entry during
motion
#5101
#5102
:
servo lag in axis 1
servo lag in axis 2
not possible
#5108
servo lag in axis 8
The readable servo lag is a signed value in millimeters.
20.13 Instructions of the Programming Language
The expression
#i = <formula>
is used for describing the various instructions. The expression <formula> may include arithmetic
operations, functions, variables or constants.
In general, references are made to variables #j and #k in a <formula>.
It is not only possible for the <formula> to stand on the right side of a definition instruction, the various
addresses in the NC block may also assume a formula instead ofa specific numericalvalue or variable.
20.13.1 Definition, Substitution: #i = #j
The code of instruction is =.
As a result of the instruction, variable #i will assume the value of variable #j, i.e., the value of variable
#j will be entered in variable #i.
184
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.13.2 Arithmetic Operations and Functions
Single-Operand Operations
Single-operand minus: #i = – #j
The code of the operation is –.
As a result of the operation, variable #i will have a value identical with variable #j in absolute
value but opposite in sign.
Arithmetic negation: #i = NOT #j
The code of the operation is NOT
As a result ofthe operation, variable #j is converted first into a 32-bit fixed-point number. Error
message 3091 ERRONEOUSOPERATION WITH # is returned unless the converted number
can be represented by 32 bits. Thenthe value ofthat fixed-point number will be negated bit by
bit and the number produced this waywill be re-converted into a floating-point one and will be
put in variable #i.
Additive arithmetic operations
Addition: #i = #j + #k
The code of the operation is +.
As a result ofthe operation, variable #iwill assume the sum ofthe values of variables #j and #k.
Subtraction: #i = #j – #k
The code of the operation is –.
As a result of the operation, variable #i will assume the difference of the values of variables #j
and #k.
Logical sum, or: #i = #j OR #k
The code of the operation is OR.
As a result of operation, the logic sum of variables #j and #k will be entered in variable #i at
everybit of32 bits. Wherever 0 is found at each of the identical bit values of the two numbers,
0 will be represented by that bit value in the result (otherwise 1).
Exclusive or: #i = #j XOR #k
The code of the operation is XOR.
As a result of operation, the variables #j and #k will be added together in every bit of 32 bits
in variable #i in such a way that 0 will be the bit value in the result wherever identicalnumerical
values are found in identicalbit positions (and 1 will be wherever different numerical values are
found), in each of the 32 bits.
Multiplicative arithmetic operations
Multiplication: #i = #j * #k
The code of the operation is *.
As a result ofoperation, variable #iwill assume the product ofthe values ofvariables #j and #k.
185
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Division: #i = #j / #k
The code of the operation is /.
As a result of operation, variable #i will assume the quotient of variables #j and #k. The value
of #k may not be 0 or else the control will return error message 3092 DIVISION BY 0 #.
Remainder: #i = #j MOD #k
The code of the operation is MOD.
As a result of the operation, variable #i will assume the remainder of the quotient of variables
#j and #k. The value of #k may not be 0 or else the control will return error message 3092
DIVISION BY 0 #.
Example:
at #120 = 27 MOD 4, the value of variable #120 will be 3.
Logical product, and - i# = #j AND #k
The code of operation is AND.
As a result of operation, the logical product of variables #j and #k will be entered in every bit
of the 32 bits in variable #i. Wherever 1 is found at each of the identical bit position of two
numbers, 1 will be found there in the result, otherwise 0.
Functions
Square root: #i = SQRT #j
The code of operation is SQRT.
As a result of operation, variable #iwill assume the square root of variable #j. The value of #j
may not be a negative number.
Sine: #i = SIN #j
The code of operation is SIN.
As a result of operation, variable #i will assume the sine of variable #j. The value of #j always
refers to degrees.
Cosine: #i = COS #j
The code of operation is COS.
As a result of operation, variable #iwill assume the cosine ofvariable #j. The value of#j always
refers to degrees.
Tangent: #i = TAN #j
The code of operation is TAN.
As a result of operation, variable #i will assume the tangent of variable #j. The value of #j
always refers to degrees. The value of #j may not be (2n+1)*90°, where n=0, ±1, ±2, ...
Arc sine: #i = ASIN #j
The code of the function is ASIN.
As a result of operation, variable #i will assume the arc sine of variable #j in degrees. The
condition –1##j#1 must be true. The result, i.e., the value of #i, lies between +90° and -90°.
Arc cosine: #i = ACOS #j
The code of the function is ACOS.
As a result of operation, variable #i will assume the arc cosine of variable #j in degrees. The
condition –1##j#1 must be true. The result, i.e. the value of #i, lies between 0° and 180°.
186
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Arc tangent - #i = ATAN #j
The code of the function is ATAN.
As a result of operation, variable #i will assume the arc tangent of variable #j in degrees. The
result, i.e. the value of #i, lies between +90° and -90°.
Exponent with base e: #i = EXP #j
The code of the function is EXP.
As a result of the operation, variable #i will assume the #j-th power of the natural number (e).
Logarithm natural: #i = LN #j
The code of the function is LN.
As a result of operation, variable #i will assume the logarithm natural of number #j. The value
of #j may not be 0 or a negative number.
Absolute value: #i = ABS #j
The code of the function is ABS.
As a result of operation, variable #i will assume the absolute value of variable #j.
Conversion from binary into binary-coded decimal: #i = BCD #j
The code of the function is BCD.
As a result ofoperation, variable #i will assume the BCD value of variable #j. The value range
of variable #j is 0 to 99999999.
Conversion from binary-coded decimal into binary: #i = BIN #j
The code of the function is BIN.
As a result of the operation, variable #i will assume the binary value of variable #j. The value
range of variable #j is 0 to 99999999.
Discard fractions less than 1: #i = FIX #j
The code of the function is FIX.
This operation will discard the fraction of variable #j, and that value will be put in variable #i.
For example,
#130 = FIX 4.8 = 4
#131 = FIX –6.7 = –6
Add 1 for fractions less than 1: #i = FUP #j
The code of the function is FUP
This operation will discard the fraction of variable #j, and will add 1 to #j in absolute value.
For example,
#130 = FUP 12.1 = 13
#131 = FUP –7.3 = –8
187
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Complex Arithmetic Operations - Sequence of Execution
The above-mentionedarithmetic operations and functions canbe combined. The sequence ofexecuting
the operations, or the precedence rule is function - multiplicative operations - additive operations.
For example,
#110 = #111 + #112 * COS #113
1
2
Sequence of operations
3
Modifying the Sequence of execution
The sequence ofexecuting the operations can be modified by the use of brackets [ and ]. Brackets can
be nested in 5 levels. The control will return error message 3064 BAD MACRO STATEMENT if a
depth over 5 levels is found in the program.
Example of brackets nested in 3 levels:
#120 = COS [ [ [#121 - #122] * #123 + #125] * #126]
1
2
3
4
5
The numbers refer to the sequence of executing the operations. Clearly, the above-mentioned rule of
precedence is applicable to the sequence of executing the operations at a given level of brackets.
20.13.3 Logical Operations
The programming language uses the following logical operations:
equal to
#i EQ #j
#i NE #j
#i GT #j
#i LT #j
#i GE #j
#i LE #j
not equal to
greater than
less than
greater than or equal to
less than or equal to
The variables on both sides of a logical operation can be substituted by formula as well. The above
conditional expressions can be used in divergence or iteration instructions IF or WHILE.
L Note: Since the above conditional expressions are followed by additions and subtractions, the
possible errors must be taken into account in respect of the accuracy of decision.
20.13.4 Unconditional Divergence: GOTOn
As a result of instruction GOTOn, the executionofthe programwill be resumed unconditionally at the
block of the same program with sequence number n. Sequence number n can be substituted for by a
variable or a formula. The number of the block, to which the jump is made byinstructionGOTO must
be put at the beginning of the block. Unless the selected block number is found, error message 3070
NOT EXISTING BLOCK NO. P will be returned.
188
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.13.5 Conditional Divergence: IF[<conditional expression>] GOTOn
If [<conditional expression>], put mandatorily between square brackets, is satisfied, the execution of
the program will be resumed at the block of the same program with sequence number n.
If [<conditional expression>], is not satisfied, the execution of the program will be resumed at the next
block.
Error message 3091ERRONEOUS OPERATION WITH # is returned unless IF is followed by a
conditionalexpression. Ifthe conditionalexpressionincludesasyntactic error, error message 3064 BAD
MACRO STATEMENT will be returned.
20.13.6 Conditional Instruction: IF[<conditional expression>] - THEN
If [<conditional expression>], is satisfied, the instruction behind THEN will be executed.
If[<conditional expression>], is not satisfied, the execution of the program will be resumed at the next
block.
The word THEN can be omitted, the series of instructions
IF[<conditional expression>] instruction
will be equally executed.
20.13.7 Iteration: WHILE[<conditional expression>] Dom ... ENDm
As long as [<conditional expression>] is satisfied, the blocks following DOm up to block ENDm will
be repeatedly executed. Inthe instruction, the controlwill check wether the condition has been fulfilled;
if so, the program detail between DOm and ENDm will be executed; then, as a result of instruction
ENDm, the program will return to check the post-WHILE condition again.
Unless [<conditionalexpression>]is satisfied, the executionofthe programwill be resumed at the block
behind ENDm.
If WHILE [<conditional expression>] is omitted, i.e., the cycle is described by instructions DOm ...
ENDm, the programdetail betweenDOmand ENDmwill be executed for anindefinite (infinite) period
of time.
Possible values of m are 1, 2, 3. Error message 3091ERRONEOUS OPERATION WITH # will be
returned if any other value is specified. Error message 3091ERRONEOUS OPERATION WITH # is
returned unless WHILE is followed by a conditional expression. Error message 3064 BAD MACRO
STATEMENT will be returned if the conditional expression includes a syntactic error.
The rules of cycle organization:
– Instruction DOm has to be specified before instruction ENDm.
:
END1
:
:
false (ERROR 72)
:
DO1
189
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– Instructions DOm and ENDm must be put in pairs.
:
DO1
:
DO1
:
false
END1
:
or
:
DO1
:
END1
:
false
END1
:
– A particular identifier number can be used several times.
:
DO1
:
END1
:
:
correct
:
DO1
:
END1
:
– Pairs DOm ... ENDm can be nested into one another at three levels.
:
DO1
:
DO2
:
DO3
:
:
correct
:
END3
:
END2
:
END1
:
190
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– Pairs DOm ... ENDm may not be overlapped.
:
DO1
:
DO2
:
:
false
:
END1
:
END2
– A divergence can be made outside from a cycle.
:
DO1
:
GOTO150
:
:
correct
:
END1
:
N150
:
– No entry is permissible into a cycle from outside.
:
GOTO150
:
DO1
:
:
false
:
N150
:
END1
:
or
:
DO1
:
N150
:
:
false
:
END1
:
GOTO150
:
191
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– A subprogramor a macro canbe called fromthe inside of a cycle. The cycles inside the subprogram
or the user macro can again be nested up to three levels.
:
DO1
:
M98...
:
G65...
:
G66...
:
G67...
correct
correct
correct
correct
:
END1
:
20.13.8 Data Output Commands
The control will recognize the following data output commands:
POPEN
BPRNT
DPRNT
PCLOS
periphery open
binary data print (output)
decimal data print (output)
periphery close
Those data output commands canbe used for outputting characters and values ofvariables. The output
may be accomplished to the memory of the control or to an external data storage device (through a
serial channel).
Opening a peripheral - POPENn
Before issuing a data output command, the appropriate peripheralhas to be opened, through whichthe
data output is to be performed. The appropriate peripheral is selected by number n.
n = 1
RS–232C interface of serial channel
n = 31 memory of control
A % character is also output to the peripheral simultaneously with the opening of the peripheral, i.e.,
each data output begins with a % character.
Binary data output - BPRNT[...]
BPRNT[ a #b [c] ... ]
number of digits below the decimal point
variable
character
The command will send the characters in ISO or ASCII code (depending onthe parameter setting); the
variables will be output in binary form.
192
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– The characters are output in ISO or ASCII code. The characters to be output are
alphabetic characters (A, B, ..., Z)
numerical characters (1, 2, ..., 0)
special characters (*, /, +, –)
The control will output the ISO code of a space character (A0h) instead of *.
– The values of variables will be output by the control in 4 bytes (i.e. in 32 bits), beginning with the
most significant byte. The number ofvariables must be followed by the number of digits behind
the decimal point in square brackets [ ]. Now the control will convert the floating-point value
ofthe variable into a fixed-point one, in which the number of significant decimaldigits are equal
to the value put in [ ] square brackets. The possible values of c are 1, 2, ..., 8.
If, e.g., #120 = 258.647673 and [3] S) ) ) Q 258648=0003F258h will be output.
– A vacant variable will be output with binary code 00000000h.
– At the end of a data output, the control will automatically output a LineFeed character.
For example,
BPRNT [ C*/ X#110 [3] Y#120 [3] M#112 [0] ]
#110=318.49362
#120=0.723415
318494=0004DC1Eh
723=000002D3h
#112=23.9
24=00000018h
Characters to be output are
7 6 5 4 3 2 1 0
1 1 0 0 0 0 1 1 --- C
1 0 1 0 0 0 0 0 --- Space
1 0 1 0 1 1 1 1 --- /
1 1 0 1 1 0 0 0 --- X
0 0 0 0 0 0 0 0 --- 00
0 0 0 0 0 1 0 0 --- 04
1 1 0 1 1 1 0 0 --- DC
0 0 0 1 1 1 1 0 --- 1E
0 1 0 1 1 0 0 1 --- Y
0 0 0 0 0 0 0 0 --- 00
0 0 0 0 0 0 0 0 --- 00
0 0 0 0 0 0 1 0 --- 02
1 1 0 1 0 0 1 1 --- D3
0 1 0 0 1 1 0 1 --- M
0 0 0 0 0 0 0 0 --- 00
0 0 0 0 0 0 0 0 --- 00
0 0 0 0 0 0 0 0 --- 00
0 0 0 1 1 0 0 0 --- 18
0 0 0 0 1 0 1 0 --- Line Feed
Decimal data output - DPRNT[...]
DPRNT[ a #b [ c d ] ... ]
Number of digits behind the decimal point
Number of digits before the decimal point
Variable
Character
All characters and digits will be output in ISO or ASCII code, depending on the parameter setting.
193
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– For the rules of character outputs, see instruction BPRNT.
– For the output of variable values, the numbers of decimal integers and fractions must be specified,
in which the variable is to be out put. The digits have to be specified in square brackets [ ]. The
condition 0 < c + d < 9 must be fulfilled for the specification of digits. The procedure of
outputting the digits begins with the most significant digit. In outputting the digits, the negative
sign (-)and the decimalpoint (.) will also be output withthe respective ISO codes. Ifparameter
PRNT=0, a space code will be output in the positionofthe + sign and the leading zeros; each
zero is output withcode 0 after the decimal point (if any). Ifparameter PRNT=1, the + sign and
the leading zeros will not be output; if the decimal point is defined, the zeros behind it will be
output. Otherwise, neither the decimal point nor any of zeros will be output.
– If d=0, the decimalpoint will be output; if c only is specified, eventhe decimalpoint will not be output
either.
– A vacant variable will be output with code 0.
– At the end of data outputting, the control will automatically output a line feed character (LF).
Example:
DPRNT [ X#130 [53] Y#500 [53] T#10 [2] ]
#130=35.897421
#500=–150.8
35.897
–150.8
#10=214.8
15
Output of data with PRNT=0:
7 6 5 4 3 2 1 0
1 1 0 1 1 0 0 0 --- X
1 0 1 0 0 0 0 0 --- Space
1 0 1 0 0 0 0 0 --- Space
1 0 1 0 0 0 0 0 --- Space
1 0 1 0 0 0 0 0 --- Space
0 0 1 1 0 0 1 1 --- 3
0 0 1 1 0 1 0 1 --- 5
0 0 1 0 1 1 1 0 --- Decimal Point (.)
1 0 1 1 1 0 0 0 --- 8
0 0 1 1 1 0 0 1 --- 9
1 0 1 1 0 1 1 1 --- 7
0 1 0 1 1 0 0 1 --- Y
0 0 1 0 1 1 0 1 --- Negative Sign (–)
1 0 1 0 0 0 0 0 --- Space
1 0 1 0 0 0 0 0 --- Space
1 0 1 1 0 0 0 1 --- 1
0 0 1 1 0 1 0 1 --- 5
0 0 1 1 0 0 0 0 --- 0
0 0 1 0 1 1 1 0 --- Decimal Point(.)
1 0 1 1 1 0 0 0 --- 8
0 0 1 1 0 0 0 0 --- 0
0 0 1 1 0 0 0 0 --- 0
1 1 0 1 0 1 0 0 --- T
1 0 1 0 0 0 0 0 --- Space
1 0 1 1 0 0 0 1 --- 1
0 0 1 1 0 1 0 1 --- 5
0 0 0 0 1 0 1 0 --- Line Feed (LF)
194
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Data output at PRNT=1:
7 6 5 4 3 2 1 0
1 1 0 1 1 0 0 0 --- X
0 0 1 1 0 0 1 1 --- 3
0 0 1 1 0 1 0 1 --- 5
0 0 1 0 1 1 1 0 --- Decimal Point (.)
1 0 1 1 1 0 0 0 --- 8
0 0 1 1 1 0 0 1 --- 9
1 0 1 1 0 1 1 1 --- 7
0 1 0 1 1 0 0 1 --- Y
0 0 1 0 1 1 0 1 --- Negative Sign (–)
1 0 1 1 0 0 0 1 --- 1
0 0 1 1 0 1 0 1 --- 5
0 0 1 1 0 0 0 0 --- 0
0 0 1 0 1 1 1 0 --- Decimal Point (.)
1 0 1 1 1 0 0 0 --- 8
0 0 1 1 0 0 0 0 --- 0
0 0 1 1 0 0 0 0 --- 0
1 1 0 1 0 1 0 0 --- T
1 0 1 1 0 0 0 1 --- 1
0 0 1 1 0 1 0 1 --- 5
0 0 0 0 1 0 1 0 --- Line Feed (LF)
Closing a peripheral - PCLOSn
The peripheral opened with command POPEN has to be closed with command PCLOS. Command
PCLOS has to be followed by the specification of the number of peripheral to be closed. At the time
of closing, a % character is also sent to the peripheral, i.e., each data output is terminated by a %
character.
L Notes:
– The sequence of data output commands is a fixed one. First the appropriate peripheral has to be
opened with command POPEN, followed by the process of data outputting (with command
BPRNT or DPRINT); finally, the open peripheral has to be closed with instruction PCLOS.
– The opening and closing of a peripheral canbe specified in any point of the program. For example,
it canbe opened and closed at the beginning and end ofthe program, respectively, data canbe
output in any part of the program in between.
– A command M30 or M2 executed during the process of data output will interrupt the data transfer.
To avoid this, waiting is to be performed during data transfer before the executionofcommand
M30.
– The parameters (baud rate, number of stop bits etc.) of the peripheral have to be set correctly. They
can be selected in group SERIAL of the field of parameters.
20.14 NC and Macro Instructions
NC and macro blocks can be differentiated in the programming language. The blocks written in terms
of conventional codes G, M etc. are regarded as NC blocks even when the values of the addresses
assume variables or formulae as well as numerical values.
The following blocks are regarded as macro instructions:
– the block containing a definition, substitution instruction (#i=#j)
195
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– a block containing a conditional divergence or iteration instruction (IF, WHILE)
– blocks containing control commands (GOTO, DO, END)
– blocks containing macro calls (G65, G66, G66.1, G67, or codes G, or M that initiate macro calls).
20.15 Execution of NC and Macro Instructions in Time
The macro blocks can be executed by the control parallel to NC blocks or in consecutive order.
Parameter SBSTM determines the execution of NC and macro blocks. If the parameter:
=0: NC and macro blocks are executed in the order written in the program,
=1: macro statements are executed in the course of NC block execution
196
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Example:
SBSTM=0
SBSTM=1
%O1000
...
%O1000
...
N10 #100=50
N20 #101=100
N30 G1 X#100 Y#101
N40 #100=60 (definition after N30)
N50 #101=120 (definition after N30)
N60 G1 X#100 Y#101
N10 #100=50
N20 #101=100
N30 G1 X#100 Y#101
N40 #100=60 (definition during N30)
N50 #101=120 (definition during N30)
N60 G1 X#100 Y#101
Definition commands in blocks N40 and N50
are executed after the movement ofblock N30.
Definition commands in blocks N40 and N50
are executed during movement in block N30.
Fig. 20.15-1
Fig. 20.15-2
L Conclusions:
L Conclusions:
– program execution is slower,
– if execution of block N30 is interrupted
and afterwards the machining is
restarted the machining can be
simply continued since variables of
block N30 are not overwritten by
block N40, N50.
– program execution is faster,
– if execution of block N30 is interrupted
and afterwards the machining is
restarted the machining can not be
continued, only if block search is
started for block N30 since variables
of block N30 arealreadyoverwritten
by the blocks N40, N50.
20.16 Displaying Macros and Sub-programs in Automatic Mode
The blocks ofmacros and subprograms willbedisplayedbythe controlin automatic mode. Ifparameter
MD8 is set to 0, the blocks ofsubprograms and macros numbered 8000 to 8999 will not be listed when
they are executed. With parameter MD8 set to 1, their blocks will also be listed.
Ifparameter MD9 is set to 0, the blocks of subprograms and macros numbered 9000 to 9999 will not
be listed when they are executed. With parameter MD9 set to 1, their blocks will also be listed.
20.17 Using the STOP Button While a Macro Instruction is Being Executed
Pressing the STOP button, i.e., suspension of the program execution will be effective always on
completion of the macro instruction being executed.
197
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
20.18 Pocket-milling Macro Cycle
Instruction
G65 P9999 X Y Z I J K R F D E Q M S T
will start a pocket-milling cycle. For the execution of the cycle, macro of programnumber O9999 has
to be filled in the memory, from the PROM memory of the control.
Prior to calling the cycle, the tool must be brought over the geometric center of the pocket in the
selected plane, at a safety distance over the workpiece. At the end ofthe cycle the toolwill be retracted
to the same point.
The addresses in the block have the
following meaning:
X = size of pocket in direction X
Y = size of pocket in direction Y
Z= size of pocket in direction Z
Instructions G17, G18, G19 will define
the length, width and depth of the
pocket for the three coordinates. For
example, in case of G17 Z will be the
depth of the pocket, the longer one of
X and Y will be the length of pocket
(the shorter one will be the width
thereof). Those values have to be
entered in absolute values as positive
numbers.
R = the radius of the corners of the
pocket.
Rounding (if any) of the corners of the
pocket should be specified at address
R. Unless address R is filled, the
rounding ofthe pocket's corners will be
rounded with the tool radius.
I = safety distance toward the depth
of pocket in the case of G19
J = safety distance toward the depth
Fig. 20.18-1
of pocket in the case of G18
K = safety distance toward the depth of pocket in the case of G17
Depending on the plane selected, the safety allowance in the directionofthe toolhas to be specified at
the addresses I(G19), J(G18) or K(G17) in the block. When the cycle is started, the control assumes
that the tip of the tool is located at that distance from the surface of the workpiece. While the pocket
is being milled, as soonas the materialofa levelis removed, the toolwill be lifted to that distance so that
it can be brought to the start point for milling the next level.
D = address of register containing the radius compensation of the tool
The radius-compensation number of the tool, used in the program is to be specified mandatorily at
address D. Besides, the milling of a pocket has to be carried out in state G40.
198
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
E = width of cutting, in percent of milling diameter
with + sign, machining in counter-clockwise sense,
with – sign, machining in clockwise sense.
Two types of information can be specified at address E. The value of E defines the width of cutting in
percent of milling diameter. Unless it is specified, the control will automatically assume +83%. The
controlcanmodify the data specified at address E, depending onthe widthofpocket, in order to obtain
auniformcutting in milling a particular level. Sucha modificationmay, however, be a reductiononly. The
sign of address E will define the direction of milling. When E+, i.e., it is positive, the machining will be
carried out in counter-clockwise sense, if it is E–, i.e., negative, the machining will be carried out in
clockwise sense.
Q = depth of cut
The depth of cut can be specified at address Q in the applicable units of measure (mm or inches).
Depending on the depth of pocket, the control may override the program value in order to obtain a
uniform distribution of cuts. Such a modification may, however, be a reduction only.
F = feed
The feed applied in the cycle canbe specified at address F. Unless F is givena value, the modalF value
will be adopted. 50% of the F value will be applied
– when a level begins to be milled, and a depth of cut (Q) is drilled,
– when milling the pocket longitudinally as long as the Q is loaded on both sides.
M S T = function
A function M, S, T can be specified in the block calling the procedure of pocket milling, which will be
executed by the control prior to commencement of milling.
Degenerated cases of cavity milling:
Unless the width of pocket has been specified, the radius of the pocket's corners will be taken twice
for the width of pocket.
Fig. 20.18-2
199
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
Unless the width of pocket and the rounding radii of corners have been specified, the tool diameter
applied will be taken for the width of pocket (groove).
Fig. 20.18-3
Ifneither the lengthnor the width of pocket has been specified, only address Rhas beenprogrammed,
a circular pocket of radius R will be milled.
Fig. 20.18-4
If neither length, nor width, nor radius have been specified, the cycle will "degenerate" into drilling.
Error messages in the course of pocket milling:
MACRO ERROR 1 - false block specification. Possible causes:
– Depth of pocket not specified
– Radius of tool not specified
– Depth of cut not specified.
MACRO ERROR 2 - definition error in sizes specified. Possible causes:
200
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Custom Macro
– The size specified for the length or width of pocket is smaller than twice of the pocket radius.
– The length or width of pocket is smaller than the diameter of tool called at address D.
– The value specified for the width of cutting is 0 or the tool radius called is 0
– The value of depth of cut is 0, i.e. 0 has been programmed at address Q.
201
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
Notes
202
Download from Www.Somanuals.com. All Manuals Search And Download.
Index in Alphabetical Order
Index in Alphabetical Order:
#0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
#10001–#13999 . . . . . . . . . . . . . . . . . 173
#1000–#1015 . . . . . . . . . . . . . . . . . . . 172
#1032 . . . . . . . . . . . . . . . . . . . . . . . . . 172
#1100–#1115 . . . . . . . . . . . . . . . . . . . 173
#1132 . . . . . . . . . . . . . . . . . . . . . . . . . 173
#195 . . . . . . . . . . . . . . . . . . . . . . . . . . 166
#196 . . . . . . . . . . . . . . . . . . . . . . . . . . 166
#197 . . . . . . . . . . . . . . . . . . . . . . . . . . 166
#198 . . . . . . . . . . . . . . . . . . . . . . . . . . 166
#199 . . . . . . . . . . . . . . . . . . . . . . . . . . 166
#1nn . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
#3000 . . . . . . . . . . . . . . . . . . . . . . . . . 175
#3001 . . . . . . . . . . . . . . . . . . . . . . . . . 175
#3002 . . . . . . . . . . . . . . . . . . . . . . . . . 175
#3003 . . . . . . . . . . . . . . . . . . . . . . . . . 175
#3004 . . . . . . . . . . . . . . . . . . . . . . . . . 176
#3006 . . . . . . . . . . . . . . . . . . . . . . . . . 176
#3007 . . . . . . . . . . . . . . . . . . . . . . . . . 176
#3901 . . . . . . . . . . . . . . . . . . . . . . . . . 177
#3902 . . . . . . . . . . . . . . . . . . . . . . . . . 177
#4001–#4130 . . . . . . . . . . . . . . . . . . . 177
#4201–#4330 . . . . . . . . . . . . . . . . . . . 177
#5201–#5326 . . . . . . . . . . . . . . . . . . . 174
#5nn . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Absolute Coordinate Specification . . . . . . 14
Acceleration . . . . . . . . . . . . . . . . . . . . . . 48
Address Chain . . . . . . . . . . . . . . . . . . . . . 9
Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . 175
arc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
arc of variable radius . . . . . . . . . . . . . . . 105
auxiliary function(s) . . . . . . . . . . . . . . . . . 73
Axes
circle of variable radius . . . . . . . . . . . . . 106
circular . . . . . . . . . . . . . . . . . . . . . . . 88, 95
interpolation . . . . . . . . . . . . . . . . . . . . 62
Codes M . . . . . . . . . . . . . . . . . . . . . . . . 72
Compensation . . . . . . . . . . . . . . . . . . 78, 85
Length . . . . . . . . . . . . . . . . . . . . . . 78-80
Radius . . . . . . . . . . . . . . . . . . . . . . . . . 79
Conditional divergence . . . . . . . . . . . . . 185
conditional stop . . . . . . . . . . . . . . . . . . . . 72
Controlled Axes . . . . . . . . . . . . . . . . . . . 17
coolant . . . . . . . . . . . . . . . . . . . . 15, 72, 73
Coordinate Data . . . . . . . . . . . . . . . . . . . 40
Limit . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Specification . . . . . . . . . . . . . . . . . . . . 40
Value Range . . . . . . . . . . . . . . . . . . . . 40
Coordinate Specification
Absolute . . . . . . . . . . . . . . . . . . . . . . . 14
Incremental . . . . . . . . . . . . . . . . . . . . . 14
Coordinate System . . . . . . . . . . . . . . . . . 13
common offset . . . . . . . . . . . . . . . . . . 59
local . . . . . . . . . . . . . . . . . . . . . . . . . . 60
machine's . . . . . . . . . . . . . . . . . . . . . . . 56
Transformations . . . . . . . . . . . . . . . . . 115
work . . . . . . . . . . . . . . . . . . . . . . . . . 57
Workpiece . . . . . . . . . . . . . . . . . . . . 174
Corner Arcs . . . . . . . . . . . . . . . . . . . . . 100
corner override . . . . . . . . . . . . . . . . . . . . 50
Cutter Radius Compensation . . . . . . . . . . 16
Deceleration . . . . . . . . . . . . . . . . . . . . . . 48
decimal point . . . . . . . . . . . . . 40, 188-190
direction of offset mode . . . . . . . . . . . . . . 98
DNC mode . . . . . . . . . . . . . . . . . . . . . . 11
dominator constant . . . . . . . . . . . . . . . . 113
drilling axis . . . . . . . . . . . . . . . . . . . . . . 132
Drilling Cycles . . . . . . . . . . . . . . . . . . . . 132
Addresses . . . . . . . . . . . . . . . . . . . . . 133
Codes . . . . . . . . . . . . . . . . . . . . . . . . 133
configure . . . . . . . . . . . . . . . . . . . . . . 133
Dwell . . . . . . . . . . . . . . . . . . . 52, 102, 136
End of Program . . . . . . . . . . . . . . . . 10, 72
endless cycle . . . . . . . . . . . . . . . . . . . . . . 77
Exact Stop . . . . . . . . . . . . . . . . . . . 49, 176
Increment System . . . . . . . . . . . . . . . . 17
Names . . . . . . . . . . . . . . . . . . . . . . . . . 17
Number . . . . . . . . . . . . . . . . . . . . . . . . 17
Unit System . . . . . . . . . . . . . . . . . . . . . 17
Beginning of Program . . . . . . . . . . . . . . . 10
Block . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
block-by-block execution . . . . . . . . . . . 175
circle . . . . . . . . . . . . . . . . . . . . . . . 94, 100
direction . . . . . . . . . . . . . . . . . . . . . . 117
203
Download from Www.Somanuals.com. All Manuals Search And Download.
Index in Alphabetical Order
Feed . . . . . . . . . . . . . . . . . . . . . . . 12, 176
Feed Reduction . . . . . . . . . . . . . . . . . . . 51
Format . . . . . . . . . . . . . . . . . . . . . . . . . . 10
full arc of circle . . . . . . . . . . . . . . . . . . . 106
full circle . . . . . . . . . . . . . . . . . . . . . . . 106
going around sharp corners . . . . . . . . . . 107
Going around the outside of a corner . . 93-
96
Inch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Increment System . . . . . . . . . . . . . . . 17, 40
Increment System . . . . . . . . . . 41, 47, 79
input . . . . . . . . . . . . . . . . . . . . . . . . . . 18
output . . . . . . . . . . . . . . . . . . . . . . . . . 18
Incremental Coordinate Specification . . . 14
Initial point . . . . . . . . . . . . . . . . . . 132, 134
input increment system . . . . . . . . . . . . . . 18
Inside Corner . . . . . . . . 88, 89, 95, 96, 110
machine . . . . . . . . . . . . . . . . . . . . . . . 50
inside corners . . . . . . . . . . . . . . . . . . . . . 92
Interface . . . . . . . . . . . . . . . . . . . 172, 173
Interferences in Cutter Compensation
. . . . . . . . . . . . . . . . . . . . . . . . . . . 107
intermediate point . . . . . . . . . . . . . . . . . . 54
Interpolation . . . . . . . . . . . . . . . . . . . . . . 12
lag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
leading zeros . . . . . . . . . . . . . . . . . . . . . 40
length compensation . . . . . . . . . . . . . . . 179
limit of address L . . . . . . . . . . . . . . . . . . 75
limit of address P . . . . . . . . . . . . . . . 74, 76
limit of addresses H and D . . . . . . . . . . . 78
Limit values . . . . . . . . . . . . . . . . . . . . . . 79
limit-stop
parametric . . . . . . . . . . . . . . . . . . . . . . 53
Logical Operations . . . . . . . . . . . . . . . . 184
machining corners . . . . . . . . . . . . . . . . . . 49
main axis . . . . . . . . . . . . . . . . . . . . . . . . 63
main plane . . . . . . . . . . . . . . . . . . . . . . . 63
Main Program . . . . . . . . . . . . . . . . . . . . 10
Measurement . . . . . . . . . . . . . . . . . . . . 155
Measurement Functions . . . . . . . . . . . . 155
Metric . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Mirror image . . . . . . . . . . . . . . . . . . . . 119
Mirror Images . . . . . . . . . . . . . . . . . . . 117
mirror imaging . . . . . . . . . . . . . . . 135, 176
mirroring . . . . . . . . . . . . . . . . . . . . . . . 101
Modal Functions . . . . . . . . . . . . . . 14, 177
Modification of Tool Compensations . . . 79
Numeric Representation . . . . . . . . . . . . 170
One-shot (Non-modal) Functions . . . . . . 15
output increment system . . . . . . . . . . . . . 18
output units of measures . . . . . . . . . . . . . 17
Override . . . . . . . 30, 45, 49-51, 154, 176
corner . . . . . . . . . . . . . . . . . . . . . . . . . 50
inhibit . . . . . . . . . . . . . . . . . . . . . . . . . 20
overtravel . . . . . . . . . . . . . . . . . . . . . . . 159
parameter
A(9030) . . . . . . . . . . . . . . . . . . . . . . 166
ACC1 . . . . . . . . . . . . . . . . . . . . . . . . 49
ACC6 . . . . . . . . . . . . . . . . . . . . . . . . 49
ACCDIST . . . . . . . . . . . . . . . . . . . . . 51
ACCO . . . . . . . . . . . . . . . . . . . . . . . . 48
ADD . . . . . . . . . . . . . . . . . . . . . . . . 157
ALADIST . . . . . . . . . . . . . . . . . . . . 157
ANG.ACCU . . . . . . . . . . . . . . . . . . 115
ANGLAL . . . . . . . . . . . . . . . . . 108, 111
AXIS1 . . . . . . . . . . . . . . . . . . . . . . . 174
B(9031) . . . . . . . . . . . . . . . . . . . . . . 166
C(9032) . . . . . . . . . . . . . . . . . . . . . . 166
CDIR6 . . . . . . . . . . . . . . . . . . . . . . . . 67
CHBFMOVE . . . . . . . . . . . . . . . . . . 160
CIRCOVER . . . . . . . . . . . . . . . . . . . . 51
CLEG83 . . . . . . . . . . . . . . . . . . 135, 143
CODES . . . . . . . . 22, 23, 38, 46, 63, 81
CORNANGLE . . . . . . . . . . . . . . . . . 50
CORNOVER . . . . . . . . . . . . . . . . . . . 51
CUTTING2 . . . . . . . . . . . . . . . . . . . 175
DECDIST . . . . . . . . . . . . . . . . . . . . . 51
DELTV . . . . . . . . . . . . . . . . . . . . . . 107
DOMCONST . . . . . . . . . . . . . . . . . 113
EXTER . . . . . . . . . . . . . . . . . . . . . . . 158
FEED . . . . . . . . . . . . . . . . . . . . . . . . . 46
G(901n) . . . . . . . . . . . . . . . . . . . . . . 164
G31FD . . . . . . . . . . . . . . . . . . . . . . . 155
G37FD . . . . . . . . . . . . . . . . . . . . . . . 156
HELICALF . . . . . . . . . . . . . . . . . . . . 28
I_LINE . . . . . . . . . . . . . . . . . . . 172, 173
INDEX-C1 . . . . . . . . . . . . . . . . . . . . 67
INDEX1 . . . . . . . . . . . . . . . . . . . 67, 145
INPOS . . . . . . . . . . . . . . . . . . . . . . . . 22
INTERFER . . . . . . . . . . . . . . . . . . . 108
204
Download from Www.Somanuals.com. All Manuals Search And Download.
Index in Alphabetical Order
LIMP2n . . . . . . . . . . . . . . . . . . . . . . 158
M(9001) . . . . . . . . . . . . . . . . . . . . . . 165
M(9020) . . . . . . . . . . . . . . . . . . . . . . 165
M-NUMB1 . . . . . . . . . . . . . . . . . . . . . 67
MD8 . . . . . . . . . . . . . . . . . . . . . . . . . 192
MD9 . . . . . . . . . . . . . . . . . . . . . . . . . 192
MODGEQU . . . . . . . . . . . . . . . . . . . 164
MULBUF . . . . . . . . . . . . . . . . . . . . . . 21
O_LINE . . . . . . . . . . . . . . . . . . . . . . 173
ORIENT1 . . . . . . . . . . 66, 140, 150, 151
POSCHECK . . . . . . . . . . . . . . . . . . . 22
PRNT . . . . . . . . . . . . . . . . . . . . . . . . 189
PRTCNTM . . . . . . . . . . . . . . . . . 72, 177
PRTREQRD . . . . . . . . . . . . . . . . . . . 177
PRTTOTAL . . . . . . . . . . . . . . . . . . . 177
RAD . . . . . . . . . . . . . . . . . . . . . . . . . . 79
RADDIF . . . . . . . . . . . . . . . . . . . . . . . 26
RAPDIST . . . . . . . . . . . . . . . . . 156, 157
RAPID6 . . . . . . . . . . . . . . . . . . . . . . . 67
REFPOS . . . . . . . . . . . . . . . . . . . . . . . 54
RETG73 . . . . . . . . . . . . . . . . . . 135, 138
S(9033) . . . . . . . . . . . . . . . . . . . . . . . 166
SECOND . . . . . . . . . . . . . . . . . . . . . . 52
SKIPF . . . . . . . . . . . . . . . . . . . . . . . 155
STRKEG . . . . . . . . . . . . . . . . . . . . . 158
T(9034) . . . . . . . . . . . . . . . . . . . . . . . 166
TAPDWELL . . . . . . . . . . . . . . . 139, 144
TEST FEED . . . . . . . . . . . . . . . . . . . . 30
WRPROT1 . . . . . . . . . . . . . . . . . . . . 171
Part Program . . . . . . . . . . . . . . . . . . . . . . 9
plane . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Plane Selection . . . . . . . . . . . . . . . . . 56, 62
Point R . . . . . . . . . . . . . . . . . . . . . . . . . 132
position feedback . . . . . . . . . . . . . . . . . . 66
position indication . . . . . . . . . . . . . . . 60, 61
Position information . . . . . . . . . . . . . . . . 178
Position of hole . . . . . . . . . . . . . . . . . . . 134
positioning plane . . . . . . . . . . . . . . . . . . 132
Preparatory Functions . . . . . . . . . . . . . . . 12
Program Format . . . . . . . . . . . . . . . 10, 169
Program Name . . . . . . . . . . . . . . . . . . . . 10
Program Number . . . . . . . . . . . . . . . . . . 10
programmed stop . . . . . . . . . . . . . . . . . . 72
PROM . . . . . . . . . . . . . . . . . . . . . . . . . 193
Reference Point . . . . . . . . . . . . . 12, 53, 54
Retract . . . . . . . . . . . . . . . . . . . . . . . . . 132
retraction . . . . . . . . . . . . . . . . . . . . . . . 135
rotary table . . . . . . . . . . . . . . . . . . . . . . . 60
rotational axis . . . . . . . . . . . . . . . . . . . . . 23
RS232C . . . . . . . . . . . . . . . . . . . . . . . . . 11
Safety Functions . . . . . . . . . . . . . . . . . . 158
scaling . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Increment System . . . . . . . . . . . . . . . 116
Sequence of Execution . . . . . . . . . . . . . . 73
Spindle . . . . . . . . . . . . . . 15, 46, 64, 72, 73
orientation . . . . . . . . . . . . . . . . . . . . . . 66
override . . . . . . . . . . . . . . . . . . . . . 30, 50
range changes . . . . . . . . . . . . . . . . . . . 72
STOP . . . . . . . . . . . . . . . . . . . . . . 154, 192
conditional . . . . . . . . . . . . . . . . . . . . . . 72
inhibit . . . . . . . . . . . . . . . . . . . . . . . . . . 45
programmed . . . . . . . . . . . . . . . . . . . . 72
switches . . . . . . . . . . . . . . . . . . . . . . . . 49
STOP state . . . . . . . . . . . . . . . . . . 150, 152
Sub-program . . . . . . . . . . . . . . . . . . 10, 74
subprogram . . . . . . . . . . . . . . . . . . 72, 102
System Variables . . . . . . . . . . . . . . . . . 172
Three-dimensional Tool Compensation
. . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Tool change . . . . . . . . . . . . . . . . . . . . . . 73
Tool compensation values . . . . . . . . . . . 173
Tool Length Compensation . . . . 15, 98, 154
Tool Length Measurement . . . . . . . . . . . 156
Tool Management . . . . . . . . . . . . . . . . . . 70
Tool Number . . . . . . . . . . . . . . . 15, 70, 72
Transformations . . . . . . . . . . . . . . . . . . 115
programming rules . . . . . . . . . . . . . . . 118
rotate . . . . . . . . . . . . . . . . . . . . . . . . . 115
transforms . . . . . . . . . . . . . . . . . . . . . . . 102
Unconditional Divergence . . . . . . . . . . . 184
units . . . . . . . . . . . . . . . . . . . . . . . . . 40, 79
units of input measures . . . . . . . . . . . . . . 17
Value Limits . . . . . . . . . . . . . . . . . . . . . . . 9
Variable . . . . . . . . . . . . . . . . . . . . . . . . 169
0 - value . . . . . . . . . . . . . . . . . . . . . . 170
common . . . . . . . . . . . . . . . . . . . . . . 171
global . . . . . . . . . . . . . . . . . . . . . . . . 166
local . . . . . . . . . . . . . . . . . . . . . 167-169
vacant . . . . . . . . . . . . . . . . . . . . . . . . 170
Variables . . . . . . . . . . . . . . . . . . . . . . . 171
205
Download from Www.Somanuals.com. All Manuals Search And Download.
Index in Alphabetical Order
Local . . . . . . . . . . . . . . . . . . . . . . . . 171
Vacant . . . . . . . . . . . . . . . . . . . . . . . 170
varying radius . . . . . . . . . . . . . . . . . . . . . 28
Vector Hold . . . . . . . . . . . . . . . . . . . . . 100
Wear Compensation . . . . . . . . . . . . . . . 16
Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Work Coordinate System . . . . . . . . . . . . 57
206
Download from Www.Somanuals.com. All Manuals Search And Download.
|
Miele Dishwasher G 643 User Manual
Multiquip Portable Generator GA 36RZ3 User Manual
NAD DVD Player T512 User Manual
NEC Projector LT150 User Manual
NEC Projector NP 610 User Manual
NETGEAR Switch GSM7224 User Manual
Nike Heart Rate Monitor Triax C5 User Manual
Omega Vehicle Security Switch 430 User Manual
Panasonic Air Conditioner CS KC12NKH 3 User Manual
Panasonic Fax Machine KX PW92CW User Manual