osai 10 CNC Programming Manual

10 Series CNC Programming Manual
Code: 45004457K Rev. 18
PUBLICATION ISSUED BY:
PRIMA ELECTRO S.p.A. Strada Carignano, 48/2 - 10024 Moncalieri (To) - Italy
Tel. +39-011 9899800 Web: www.osai.it; www.primaelectro.com e-mail: it.sales@primaelectro.com
Copyright 2011 by PRIMA ELECTRO All rights reserved
Edition: September 2011
IMPORTANT USER INFORMATION
PRIMA ELECTRO reserves the right to modify and improve the product described in this manual at any time and without prior notice. This document has been drafted by PRIMA ELECTRO in order to be used by its customers and this is the most updated document related to this product at time of publication. The application of this manual is under customer responsibility. No further guarantees will be given by PRIMA ELECTRO, in particular for any possible faults, incompleteness and/or difficulties in the operation. In no event will PRIMA ELECTRO responsible or liable for indirect or consequential damages that may result by the use of such documentation.
ab
UPDATE
10 Series CNC Programming Manual
SUMMARY OF CHANGES
PAGE
UPDATING TYPE
INDEX
Updated
CHAPTER 2
p. 30-35
Changed paragraphs UDA, SDA, XDA
p. 42-45
Changed paragraphs
- Defining/Changing the following ratio
- Activating the following function
- Deactivating the following function
p. 48
pp. 49-54
New paragraph added, ACCESSING AXIS/DRIVE PARAMETERS New paragraphs added
- CPA – Read/Write of a CNC parameter related to an axis
- CPD – Drive Parameter Read/Write
p. 65
Changed DYM paragraph
p. 67
Changed MDA paragraph
p. 69
Changed VEF paragraph
p. 70
New paragraph added, CRV – Curve – Velocity Optimization Parameter
p. 72
New paragraph added, MOA – Motion Auxiliary
p. 74
Changed MOV paragraph
p. 81
New value added
p.92
New paragraph added, MOM- Manual Operating Modality
p.108
Changed ROT paragraph
p.125
Changed UPR paragraph
p.153
New value added in the table
p. 187
New paragraph added, TCP - Tool Centre Point for machines with rotary axis plus balancing axis (Mixed)
p.192
New paragraph added, TCP - Tool Centre Point for machines with double rotary axis on the table (Machine Bed)
p. 200
New paragraph added, REMARKS ON TCP PARAMETERS CHAPTER 3
p. 3
Changed description
CHAPTER 4
pp. 1-13
Changed Cutter diameter compensation paragraph
p. 22
Changed paragraph TPO - Path optimisation on bevels with G41/G42
p. 28
Added TPO=2 and TPO=3 modes
p. 31
Added TPO=4, TPO=8 and TPO=16 modes
CHAPTER 9
p. 8
Changed description
p. 11
New paragraph added, DGM – Disable Paramacro scrolling
General
This publication is issued with reference to Software Release 7.6 (E69).
10 Series CNC Programming Manual
UPDATE
10 Series CNC Programming Manual
CHAPTER 14
p. 7
Changed SND paragraph
CHAPTER 17
p. 5
New paragraph added, ERF – Error form
APP. B
p. 11
Changed description for NC133
10 Series CNC Programming Manual
Preface
10 Series CNC Programming Manual
PREFACE
This manual describes the procedures used for writing part programs with the 10 Series CNC system. It provides programmers with all the information they need for creating machine control programs.
REFERENCES
For further information:
10 Series CNC - AMP Software Characterization Manual 10 Series CNC - User Guide
The chapters in this manual are organised in sections. They describe the language elements (commands and functions) used for managing a specific task, e.g. axis programming, tool programming, probe management. Programming examples have been introduced in the command description.
SUMMARY
1. Programming with 10 Series System
This chapter contains the general programming rules of the International Standards Organization (ISO) standard. The chapter also provides an overview of the programming environment and a summary of the most used codes.
2. Programming the Axes
This chapter describes axis programming. The G codes and extended commands involved in this activity are provided with their characteristics. Several examples complete the command description and give suggestions for programming the major types of movements.
3. Programming Tools and tool offsets
This chapter describes tool programming and provides the functions and instructions used in tool operation.
10 Series CNC Programming Manual 1
Preface
10 Series CNC Programming Manual
4. Cutter Diameter Compensation
This chapter describes cutter compensation. T functions and G codes used in tool compensation are provided with characteristics and several examples.
5. Programming the Spindle
This chapter describes spindle programming. The G codes and extended commands involved in this activity are provided with their characteristics. Several examples complete the command description and give hints for solving the main cases of spindle programming.
6. Miscellaneous Functions
This chapter describes miscellaneous functions and provides a list of M functions with their meaning and characteristics.
7. Parametric Programming
This chapter deals with special programming applications that use local and system variables.
8. Canned Cycles
This chapter provides a description of the canned cycles available with the control. The G codes and extended commands used in this activity are provided with their characteristics. Several examples complete the command description.
9. Paramacros
This chapter describes how paramacros can be used in programs.
10. Probing Cycles
This chapter provides a description of the probing cycles available with the control. The G codes and extended commands involved in probe management are provided complete with examples.
11. Managing the Screen
This chapter discusses the commands used to handle the system screen from a part programs. Examples are given to complete the command description.
12. Modifying the Program Execution Sequence
This chapter contains the commands used for modifying the sequence of execution of a part program. It describes commands for branching, repeating blocks and executing subprograms, as well as commands for putting the part program on hold and releasing it.
13. High Speed Machining
This chapter describes the high-speed milling features on machine tools with 3 axes.
14. Multiprocess management commands
This chapter shows 10 Series CNC's multi process potentials.
2 10 Series CNC Programming Manual
Preface
10 Series CNC Programming Manual
15. High level geometric programming (GTL)
This chapter discusses the set of programming instructions available with the GTL utility.
16. Working Cycles for Turning Systems This chapter provides the instructions for programming macro-cycles of rough-shaping,
threading and groove cutting.
17.Filters
This chapter describes the various types of filters that can be configured and hence applied in OSAI control units, designed to improve machine tool performances from the geometric and dynamic points of view and hence the finishing quality of the parts produced.
A. Characters and Commands
Appendix A provides a summary of all the characters allowed in the system and gives lists of G codes, mathematical functions and extended commands.
B. Error Messages
Appendix B provides a list of all the error messages that can occur during programming..
C. Error management
10 Series CNC Programming Manual 3
Preface
10 Series CNC Programming Manual
SYMBOL
MEANING
[ ]
Brackets enclose optional entries. Do not enter the brackets.
{ }
Braces enclose entries which may be repeated more than once. This could also be described as a series of alternative entries, i.e. only one of these may be entered. Alternative entries are separated by a (|). Do not enter the braces in the command itself.
|
A vertical bar separates alternative entries. Do not enter the bar.
COMMANDS
Commands are dealt with in the chapters that describe the specific task. A common structure has been adopted in the command description. For each command, the following information is provided:
Command name Command function Command syntax Parameters Characteristics and notes Examples
Where possible, examples consist of a portion of program and a diagram that shows how the commands in that portion work.
Syntax conventions
Use these conventions with the commands:
Key-words are written in bold. They must be entered exactly as they are represented in the syntax description. Parameters that must be passed with commands are indicated by a mnemonic written in italics. Appropriate values must be entered in place of the mnemonic. Leading zeros can be omitted. For example, you can program G00 as G, G01 as G1.
Example: (SCF,[value])
SCF, the comma and parenthesis are key-words and must be written as described. value is a parameter name and must be replaced by an appropriate value. The brackets indicate that value is an optional value.
4 10 Series CNC Programming Manual
Preface
10 Series CNC Programming Manual
WARNING
Draws attention to facts or circumstances that may cause damage to the control, to the machine or to operators.
CAUTION
Indicates information to be followed in order to avoid damage to equipment in general.
IMPORTANT
Indicates information that must be followed carefully in order to ensure full success of the application.
Warnings
For correct control operation, it is important to follow the information given in this manual. Take particular care with topics bearing one of the mentions: WARNING, CAUTION or IMPORTANT, which indicate the following types of information:
Terminology
Some terms appearing throughout the manual are explained below. Control Refers to the 10 Series numerical control unit comprising front panel unit and
basic unit.
Front Panel Is the interface module between machine and operator; it has a monitor on
which messages are output and a keyboard to input the data. It is connected to the basic unit.
Basic Unit Is the hardware-software unit handling all the machine functions. It is connected
to the front panel and to the machine tool.
10 Series CNC Programming Manual 5
Preface
10 Series CNC Programming Manual
END OF PREFACE
6 10 Series CNC Programming Manual
Index
10 Series CNC Programming Manual
INDEX
PROGRAMMING WITH 10 SERIES SYSTEMS
THE PROGRAM FILES ................................................................................................... 1-1
Program Components ............................................................................................ 1-2
Blocks .................................................................................................................... 1-2
Block Types ........................................................................................................... 1-4
Programmable Functions ....................................................................................... 1-6
G Codes ................................................................................................................. 1-9
SYNCHRONISATION AND PROGRAM EXECUTION ................................................... 1-13
Default Synchronisation ......................................................................................... 1-13
Overriding Default Synchronisation ....................................................................... 1-14
Part Program Interpreter ........................................................................................ 1-14
Sequence of execution .......................................................................................... 1-15
Programming restrictions for long real (double) formats ....................................... 1-15
PROGRAMMING THE AXES
AXIS MOTION CODES .................................................................................................... 2-1
Defining Axis Motion .............................................................................................. 2-1
G00 - Rapid Axes Positioning ................................................................................ 2-2
G01 - Linear Interpolation ...................................................................................... 2-3
G02 G03 - Circular Interpolation ............................................................................ 2-4
CET (PRC) - Circular Endpoint Tolerance ............................................................. 2-7
FCT - Full Circle Threshold .................................................................................... 2-8
ARM - Defining Arc Normalisation Mode ............................................................... 2-9
CRT - Circular interpolation speed reduction threshold ......................................... 2-13
CRK - Circular interpolation speed reduction constant .......................................... 2-13
Helical Interpolation ............................................................................................... 2-16
G33 - Constant or Variable Pitch Threading .......................................................... 2-18
Rotary Axes ........................................................................................................... 2-22
Axes with Rollover ................................................................................................. 2-24
G90 - Absolute mode ............................................................................................. 2-24
G91 - Incremental mode ........................................................................................ 2-26
Pseudo Axes .......................................................................................................... 2-27
Diameter Axes ....................................................................................................... 2-27
UDA - Dual Axes .................................................................................................... 2-30
SDA - Special Dual Axes ....................................................................................... 2-32
XDA - Master/Slave axes ....................................................................................... 2-34
Master/Slave Association ....................................................................................... 2-34
10 Series CNC Programming Manual i
Index
10 Series CNC Programming Manual
Syntax .............................................................................................................................. 2-34
Mode 0 ................................................................................................................... 2-36
Mode 1 ................................................................................................................... 2-37
Mode 2 ................................................................................................................... 2-38
Mode 3 ................................................................................................................... 2-40
Releasing the Slave(s) from the Master ................................................................. 2-41
Syntax .............................................................................................................................. 2-41
Defining/Changing the following ratio ..................................................................... 2-42
Syntax .............................................................................................................................. 2-42
Activating the following function ............................................................................. 2-43
Syntax .............................................................................................................................. 2-43
Deactivating the following function ......................................................................... 2-44
Syntax .............................................................................................................................. 2-44
AXF – Definition of axes with dynamic following function ...................................... 2-46
ACCESSING AXIS/DRIVE PARAMETERS ..................................................................... 2-48
CPA – Read/Write of a CNC parameter related to an axis .................................... 2-49
CPD – Drive Parameter Read/Write ...................................................................... 2-53
ORIGINS AND COORDINATE CONTROL CODES ........................................................ 2-55
G17 G18 G19 - Selecting the Interpolation Plane .................................................. 2-56
G16 - Defining the Interpolation Plane ................................................................... 2-57
G27 G28 G29 - Defining the Dynamic Mode ......................................................... 2-58
AUTOMATIC DECELERATION ON BEVELS IN G27 MODE......................................... 2-63
DLA - Deceleration Look Ahead ............................................................................. 2-64
DYM - Dynamic Mode ............................................................................................ 2-65
MDA - Maximum Deceleration Angle ..................................................................... 2-67
VEF - Velocity Factor ............................................................................................. 2-68
CRV – Curve – Velocity Optimization Parameter ................................................... 2-70
MOA – Motion Auxiliary .......................................................................................... 2-72
Jerk Limitation ........................................................................................................ 2-73
MOV - Enable Jerk Limitation ................................................................................ 2-74
JRK - Jerk Time Constant ...................................................................................... 2-83
JRS - Jerk Smooth Constant.................................................................................. 2-85
ODH - Online Debug Help ...................................................................................... 2-87
MBA – MultiBlock retrace Auxiliary functions ......................................................... 2-89
REM – Automatic return to profile at end of move ................................................. 2-90
IPB (DTL) - In Position Band .................................................................................. 2-91
MOM- Manual Operating Modality ......................................................................... 2-92
G70 G71 - Measuring Units ................................................................................... 2-95
G90 G91 G79 - Absolute, Incremental and Zero Programming ............................. 2-96
G92 G98 G99 - Axis Presetting .............................................................................. 2-98
G04 G09 - Dynamic Mode Attributes ..................................................................... 2-99
t - Block Execution Time ........................................................................................ 2-100
DWT (TMR) - Dwell Time....................................................................................... 2-100
G93 - V/D Feedrate ................................................................................................ 2-101
VFF - Velocity Feed Forward ................................................................................. 2-102
CODES THAT MODIFY THE AXES REFERENCE SYSTEM ......................................... 2-103
SCF - Scale Factors ............................................................................................... 2-104
MIR - Using Mirror Machining................................................................................. 2-105
ROT (URT) - Interpolation Plane Rotation ............................................................. 2-108
UAO - Using Absolute Origins ................................................................................ 2-113
UTO (UOT) - Using Temporary Origins ................................................................. 2-114
UIO - Using Incremental Origins ............................................................................ 2-116
RQO - Requalifying Origins .................................................................................... 2-118
OVERTRAVELS AND PROTECTED AREAS ................................................................. 2-119
SOL (DLO) - Software Overtravel Limits ................................................................ 2-120
DPA (DSA) - Define Protected Areas ..................................................................... 2-121
ii 10 Series CNC Programming Manual
Index
10 Series CNC Programming Manual
PAE (ASC) - Protected Area Enable ...................................................................... 2-123
PAD (DSC) - Protected Area Disable .................................................................... 2-123
VIRTUAL AXES MANAGEMENT .................................................................................... 2-124
Virtual Axes ............................................................................................................ 2-124
Virtual modes available on 10 Series CNC ............................................................ 2-124
UPR - Rotation of Cartesian axes .......................................................................... 2-125
Using UPR ............................................................................................................. 2-131
UVP - Programming polar coordinates .................................................................. 2-136
Programming examples with polar coordinates ..................................................... 2-138
UVC - Programming cylindrical coordinates .......................................................... 2-140
UVA - Programming non orthogonal axes ........................................................... 2-142
Example of programming with polar coordinates .................................................. 2-143
TCP - Tool Center Point for machines with "Double Twist" head ......................... 2-144
Programming the "m" and "n" parameters (angles) ............................................... 2-160
Programming the "m", "n", "o" and “u”, “v”, “w” parameters (vectors) ................... 2-161
TCP - Tool Center Point for generic 5-axis machines ........................................... 2-163
Programming ......................................................................................................... 2-168
TCP - Tool Center Point for machines with fixed tool and rotary table .................. 2-172
Programming ......................................................................................................... 2-178
TCP - Tool Center Point for machines with Prismatic Head .................................. 2-179
Programming ......................................................................................................... 2-186
TCP - Tool Center Point for machines with rotary axis plus balancing
axis (Mixed)............................................................................................................ 2-187
Rotary axes table .............................................................................................. 2-189
TCP - Tool Center Point for machines with double rotary axis on the
table (MachineBed) ................................................................................................ 2-192
TCP on multi-processor ......................................................................................... 2-198
REMARKS ON TCP PARAMETERS .............................................................................. 2-200
Dynamic Mode – L356 ........................................................................................... 2-200
Operational Limits Mode – L367 ............................................................................ 2-200
PROGRAMMING TOOLS AND TOOL OFFSETS
T address for programming tools ........................................................................... 3-2
T address for multi-tool programming .................................................................... 3-3
h address ............................................................................................................... 3-5
TTR – Toroidal Tool Radius ................................................................................... 3-7
AXO - Axis Offset Definition ................................................................................... 3-8
RQT (RQU) - Requalifying Tool Offset .................................................................. 3-10
RQP - Requalifying Tool Offset ............................................................................. 3-11
TOU (TOF) - Tool Expiry Declaration .................................................................... 3-12
LOA - Table loading ............................................................................................... 3-13
CUTTER DIAMETER COMPENSATION
TTC – Tool Type Compensation ............................................................................ 4-3
G40 G41 G42 – Tool Compensation ..................................................................... 4-4
Enabling Tool Compensation ................................................................................. 4-5
Tool Diameter Compensation ................................................................................ 4-5
Tool Thickness Compensation (TTC, 1) ............................................................... 4-6
Notes on using tool compensation ......................................................................... 4-10
Tool path optimisation (TPO) ................................................................................. 4-10
Disabling Cutter Diameter Compensation ............................................................. 4-11
Disabling Compensation with TPO active .............................................................. 4-12
10 Series CNC Programming Manual iii
Index
10 Series CNC Programming Manual
Disabling disc thickness compensation.................................................................. 4-13
TOOL DIAMETER COMPENSATION CHANGE ............................................................. 4-14
Linear/Linear tool path ............................................................................................ 4-14
Linear/Circular, Circular/Linear, Circular/Circular tool paths .................................. 4-16
r - Radiuses in Compensated Profiles .................................................................... 4-18
b - Bevels in Compensated Profiles ....................................................................... 4-19
TPO - Path optimisation on bevels with G41/G42 .................................................. 4-22
TPO=1, TPO=33 and TPO=65 Modes ................................................................... 4-23
Examples of profile optimisation with TPO=1 ........................................................ 4-26
TPO=2 mode .......................................................................................................... 4-28
TPO=3 mode .......................................................................................................... 4-28
Examples of TPO=2 mode ..................................................................................... 4-29
TPO=4 mode .......................................................................................................... 4-31
TPO=8 and TPO=16 modes .................................................................................. 4-31
TPO=32 mode and 64 mode .................................................................................. 4-31
TPA – Threshold angle for TPO ............................................................................. 4-32
TPT - Tool Path Threshold ..................................................................................... 4-33
u v w - Paraxial Compensation............................................................................... 4-35
Examples of compensation factor applications u, v, w .......................................... 4-36
UVW – Definition of axes for paraxial compensation ............................................. 4-40
MSA (UOV) - Defining a Machining Stock Allowance ............................................ 4-41
AUTOMATIC CONTOUR MILLING ................................................................................. 4-42
Limits to use of automatic contour miling ............................................................... 4-42
GTP - Get Point ...................................................................................................... 4-43
Determining the approach point ............................................................................. 4-44
CCP - Cutter Compensation Profile ....................................................................... 4-46
PROGRAMMING THE SPINDLE
SPINDLE FUNCTIONS .................................................................................................... 5-1
G96 G97 - CSS and RPM Programming ............................................................... 5-1
SSL - Spindle Speed Limit ..................................................................................... 5-3
M19 - Oriented Spindle Stop .................................................................................. 5-4
GTS – Spindle sharing ........................................................................................... 5-5
MISCELLANEOUS FUNCTIONS
Standard M functions ............................................................................................. 6-1
PARAMETRIC PROGRAMMING
LOCAL VARIABLES ........................................................................................................ 7-4
E Parameters ......................................................................................................... 7-4
! - User Variables ................................................................................................... 7-6
SYSTEM VARIABLES ..................................................................................................... 7-8
SN - System Number ............................................................................................. 7-8
SC - System Character .......................................................................................... 7-9
TIM - System Timer ................................................................................................ 7-11
@ - PLUS Variables ............................................................................................... 7-12
L Variables ............................................................................................................. 7-13
Multiple Assignments ............................................................................................. 7-14
iv 10 Series CNC Programming Manual
Index
10 Series CNC Programming Manual
CANNED CYCLES
CANNED CYCLES G8N .................................................................................................. 8-1
Canned Cycle Features ......................................................................................... 8-2
Canned Cycle Moves ............................................................................................. 8-3
G81 - Drilling Cycle ................................................................................................ 8-5
G82 - Spot Facing Cycle ........................................................................................ 8-7
G83 - Deep Drilling Cycle ...................................................................................... 8-9
DRP – G83 hole reworking distance ...................................................................... 8-12
G84 - Tapping Cycle with no Transducer .............................................................. 8-13
G84 - Tapping Cycle with Transducer ................................................................... 8-16
G84 - Rigid tapping cycle with a transducer mounted on the spindle .................... 8-17
TRP (RMS) - Tapping Return Percentage ............................................................. 8-18
G85 - Reaming Cycle (or Tapping by Tapmatic) ................................................... 8-19
G86 - Boring Cycle ................................................................................................. 8-20
G89 - Boring Cycle with Spot Facing ..................................................................... 8-21
Using two R dimensions in a canned cycle ............................................................ 8-22
Updating Canned Cycle Dimensions ..................................................................... 8-23
Updating R dimensions (upper limit and lower limit) during execution .................. 8-24
PARAMACRO
Paramacro Definition ............................................................................................. 9-1
HC Parameters ...................................................................................................... 9-3
DAN - Define Axis Name ....................................................................................... 9-6
PMS – S as a paramacro ....................................................................................... 9-7
PMT – T as a paramacro ....................................................................................... 9-7
PMM – M as a paramacro ..................................................................................... 9-7
Syntax.............................................................................................................................. 9-7
S, T, M ANCILLARY FUNCTIONS EXECUTED AS PARAMACROS ............................ 9-8
Syntax: ............................................................................................................................ 9-8
DGM – Disable Paramacro scrolling ...................................................................... 9-11
PROBING CYCLES
MANAGING AN ELECTRONIC PROBE ......................................................................... 10-1
PRESETTING A PROBING CYCLE ................................................................................ 10-3
DPP (DPT) - Defining Probing Parameters ........................................................... 10-3
Dynamic Measurement of the Ball Diameter ......................................................... 10-4
Probe Requalification ............................................................................................. 10-4
Dynamic Measurement of the Probe Length ......................................................... 10-4
Probe Presetting .................................................................................................... 10-4
PROBING CYCLES ......................................................................................................... 10-6
G72 - Point Measurement with Compensation ...................................................... 10-7
G73 - Hole Probing Cycle ...................................................................................... 10-9
G74 - Tool Requalification Cycle ........................................................................... 10-11
UPA (RTA) - Update Probe Abscissa .................................................................... 10-13
UPO (RTO) - Update Probe Ordinate .................................................................... 10-13
ERR - Managing Probing Errors ............................................................................ 10-13
OPERATIONS WITH A NON-FIXED PROBE ................................................................. 10-14
Requalifying Origins by Probing Reference Surfaces ............................................ 10-14
Requalifying Origins by Centring on a Hole ........................................................... 10-16
Checking Diameters .............................................................................................. 10-16
Checking Plane Dimensions and Hole Depths ...................................................... 10-18
10 Series CNC Programming Manual v
Index
10 Series CNC Programming Manual
OPERATIONS THAT USE A FIXED PROBE .................................................................. 10-19
MANAGING THE SCREEN
GRAPHICS VISUALIZATION .......................................................................................... 11-1
UGS (UCG) - Use Graphic Scale (Machine plot) ................................................... 11-2
UGS (UCG) - Use 3D Graphic Scale ..................................................................... 11-3
CGS (CLG) - Clear Graphic Screen ....................................................................... 11-3
DGS (DCG) - Disable Graphic Scale ..................................................................... 11-4
DIS - Displaying a Variable..................................................................................... 11-4
MODIFYING THE PROGRAM EXECUTION SEQUENCE
GENERAL ........................................................................................................................ 12-1
COMMAND FOR PROGRAM BLOCKS REPETITION ................................................... 12-4
RPT - ERP.............................................................................................................. 12-4
COMMANDS FOR SUBROUTINE EXECUTION ............................................................ 12-8
CLS – CLD - CLT - Call Subroutine ....................................................................... 12-8
PTH - Declaration of the default pathname ............................................................ 12-14
EPP - Executing a Portion of a Program ................................................................ 12-15
EPB - Execute Part-Program Block ....................................................................... 12-17
BRANCHING AND DELAY COMMANDS ....................................................................... 12-19
GTO - Branch Command ....................................................................................... 12-19
IF ELSE ENDIF .................................................................................................... 12-23
DLY - Defining Delay Time ..................................................................................... 12-24
DSB - Disable Slashed Blocks ............................................................................... 12-25
REL - Releasing the part program ......................................................................... 12-25
WOS - WAIT on signal ........................................................................................... 12-26
DEVICE DEFINING COMMANDS ................................................................................... 12-27
GDV - Definition of the device for file access ......................................................... 12-27
RDV - Release device ............................................................................................ 12-28
HIGH SPEED MACHINING
GENERAL CONSIDERATIONS ....................................................................................... 13-1
PROGRAMMING POINTS AND CHARACTERISTICS OF THE PROFILE .................... 13-3
Considerations on the use of the G62,G63,G66 and G67 functions
(transition codes) .................................................................................................... 13-6
GENERAL HIGH SPEED MACHINING PROGRAMMING STRUCTURE ...................... 13-7
Interaction with Machine Logic ............................................................................... 13-7
POINT DEFINING CONVENTIONS ................................................................................. 13-8
Points and machining coordinates ......................................................................... 13-8
Tool Direction: IJK .................................................................................................. 13-9
Normal to the Surface Direction: MNO ................................................................... 13-9
Tool Radius Application Direction: PQD................................................................. 13-10
Paraxial Compensation Factors: UVW .................................................................. 13-11
Tangential Axis ....................................................................................................... 13-12
FEATURES PROVIDED BY HIGH SPEED MACHINING ............................................... 13-13
Tool Radius and Length Compensation ................................................................. 13-13
Tool Length Compensation .................................................................................... 13-14
No Tool Compensation .......................................................................................... 13-15
Tangential Axis Management ................................................................................. 13-15
SETUP .............................................................................................................................. 13-16
vi 10 Series CNC Programming Manual
Index
10 Series CNC Programming Manual
Type of points described in the part program ........................................................ 13-17
Versor management methods ............................................................................... 13-18
Look Ahead management ...................................................................................... 13-20
Thresholds ............................................................................................................. 13-22
Tool definition ......................................................................................................... 13-24
Tool direction (3D) ................................................................................................. 13-25
Change in curvature management ........................................................................ 13-26
Edge management ................................................................................................ 13-27
Axis definition ......................................................................................................... 13-28
Axis parameters ..................................................................................................... 13-30
Axis dynamics ........................................................................................................ 13-31
Example ................................................................................................................. 13-32
MULTIPROCESS MANAGEMENT COMMANDS
GENERAL ........................................................................................................................ 14-1
SYNCHRONIZATION AMONG PROCESSES ................................................................ 14-2
Notes On The "Wait" Function: .............................................................................. 14-2
Notes On The "Send" Function: ............................................................................. 14-2
Exchanging data .................................................................................................... 14-3
Resetting synchronised processes ........................................................................ 14-3
Channels table ....................................................................................................... 14-3
DCC - Definition of the communication channel .................................................... 14-4
PVS - PLUS channel selection .............................................................................. 14-5
PRO - Definition of the process ............................................................................. 14-6
SND - Send a synchronisation message ............................................................... 14-7
WAI - Wait for a synchronisation message ........................................................... 14-10
EXE - Automatic part program execution .............................................................. 14-12
ECM - Manual block execution in a process .......................................................... 14-13
Example of synchronisation of two process using EXE: ........................................ 14-14
SHARED AXES ................................................................................................................ 14-15
General .................................................................................................................. 14-15
Conditions for axis acquisition ............................................................................... 14-15
GTA - Axes acquisition .......................................................................................... 14-16
SYSTEM PARAMETERS AFTER GTA ................................................................. 14-17
INFORMATION RETAINED AFTER A GTA COMMAND ...................................... 14-18
Error Management ................................................................................................. 14-27
HIGH LEVEL GEOMETRIC PROGRAMMING (GTL)
ORIENTED GEOMETRY ................................................................................................. 15-2
DEFINING GEOMETRIC ELEMENTS ............................................................................ 15-5
DEFINITION OF A REFERENCE ORIGIN ...................................................................... 15-8
DEFINITION OF POINTS ................................................................................................ 15-9
DEFINITION OF STRAIGHT LINES ................................................................................ 15-15
DEFINITION OF CIRCLES .............................................................................................. 15-26
DEFINITION OF A PROFILE ........................................................................................... 15-40
Profile types ........................................................................................................... 15-40
Connecting the elements ....................................................................................... 15-45
EXAMPLES OF GTL PROGRAMMING .......................................................................... 15-49
10 Series CNC Programming Manual vii
Index
10 Series CNC Programming Manual
WORKING CYCLES FOR TURNING SYSTEMS ........................... 16-1
PROFILE PROGRAMMING ............................................................................................. 16-1
Restrictions to the definition of a profile to be recalled by the macro-
instructions of roughing/finishing. ........................................................................... 16-2
SPECIAL CYCLES PROGRAMMING ............................................................................. 16-3
MACRO-INSTRUCTIONS OF PARA-AXIAL ROUGHING WITHOUT PRE-
FINISHING ....................................................................................................................... 16-3
MACRO-INSTRUCTIONS OF PARA-AXIAL ROUGHING WITH PRE-FINISHING ................ 16-7
MACRO-INSTRUCTION OF ROUGHING PARALLEL TO THE PROFILE .................... 16-9
MACRO-INSTRUCTION OF A PROFILE FINISHING ..................................................... 16-11
THREADING CYCLE ....................................................................................................... 16-12
GROOVE CUTTING CYCLE ........................................................................................... 16-16
FILTERS
GENERAL ........................................................................................................................ 17-1
FLT – Filter programming....................................................................................... 17-2
ERF – Error Form ................................................................................................... 17-5
CHARACTERS AND COMMANDS
TABLE OF CHARACTERS .............................................................................................. 100-1
G CODES ......................................................................................................................... 100-5
MATHEMATICAL FUNCTIONS ....................................................................................... 100-6
LOCAL AND SYSTEM VARIABLES ............................................................................... 100-6
THREE-LETTER CODES ................................................................................................ 100-7
ASCII CODES .................................................................................................................. 100-10
ERROR MESSAGES
Description of error messages and remedial actions ............................................. 200-1
ERROR MANAGEMENT
GENERAL ........................................................................................................................ 300-1
ERR - Enable/disables error management from part program .............................. 300-2
Probing cycle errors ............................................................................................... 300-3
Shared axes errors ................................................................................................. 300-4
Errors in multiprocess management ...................................................................... 300-5
viii 10 Series CNC Programming Manual
Index
10 Series CNC Programming Manual
END OF INDEX
10 Series CNC Programming Manual ix
Chapter 1
PROGRAMMING WITH 10 SERIES SYSTEMS
10 Series part programs are written with a specific language defined by the ISO standard. This chapter describes the language elements and discusses programming techniques and rules.
THE PROGRAM FILES
The 10 Series part programs are stored in files which may be identified with 10 SERIES names or with DOS names.
10 SERIES names are a maximum of 48 characters in length; they identify the programs stored
in the logic directories configured on the machine.
Logic directories are configured during the installation stage (PPDIR config - human interface
menu in AMP characterization).
DOS names are a maximum of 8 characters in length, plus an extension and path where
applicable; they identify files resident in DOS type directories.
Using the Windows Editors, remember to give the “enter” command on the last line entered in
the program. Quitting the program without this command might cause errors during program execution.
Mixed management of part programs is not allowed; in fact if a program is activated after being called by a DOS type name, all it subroutines must be identified with DOS names. Similarly, programs with 10 SERIES names can use only subroutines identified in the same way.
NOTE:
Part programs can also be resident on remote devices, defined in advance through the triliteral GDV (see chap. 12).
10 Series CNC Programming Manual 1-1
Chapter 1
Programming with 10 Series Systems
block delete
label
sequence number
synchronisation asynchronisation
words codes
/
LABEL
NUMBER
# or &
ALL ALLOWED CHARACTERS
Program Components
Address
An address is a letter that identifies the type of instruction. For example, these are addresses:
G, X, Y, F
Word
A word is an address followed by a numerical value. For example, these are words:
G1 X50.5 Z-3.15 F200 T1.1
When you assign a numeric value to a word, no zeroes must preceed or follow the value. Insert decimal values after the decimal point.
Block
A program block comprises a set of words that identify an operation or a series of operations to be performed. The maximum length of a block is 126 characters. A technological program is a sequence of blocks that describe a machining operation.
Each block must end with: <CR> <LF>.
Blocks
Blocks may include one or several fields. When several fields are used in the same block, they must appear in the order shown in the following table:
Comment blocks
It can be inserted in any position within the current block. Any character after ";" is considered as a comment.
1-2 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
Block delete
The block delete field is optional. It allows the operator to choose whether to execute program blocks that begin with the "/" character that are called slashed blocks.
Example: /N100 G00 X100
The block shown in the example can be enabled or disabled using the PROGRAM SET UP softkey, or typing the three-letter code DSB on the keyboard.
Label
The label field is optional. It allows the programmer to assign a symbolic name to a block. A label can have up to six alphanumeric characters which must be between quotes. In case of a slashed block, the label must be inserted after the slash.
Example: "START" /"END"
When a label field is used in a 'GTO' command, the label defines the block that the control should jump to.
Sequence number
The "sequence number" field is optional. It allows the programmer to number each program block. A sequence number begins with the letter N and is followed by up to six digits (N0­N999999).
The sequence number must appear in front of the first operand and after the label. Example:
N125 X0 "START" N125 X0 "END" N125 X0
Synchronisation/asynchronisation
Characters & and # are used to override the default synchronisation/asynchronisation status. For further information on synchronisation, see "Synchronisation and Program Execution".
Example: #(GTO,START, @PL1=1)
10 Series CNC Programming Manual 1-3
Chapter 1
Programming with 10 Series Systems
TYPE OF ASSIGNMENT
EXAMPLE
Simple assignment
E10=123.567
Multiple assignment
E1=10, 15.5, 123.467
In multiple assignments values are loaded as follows:
10 to E1
15.5 to E2
123.467 to E3
Math expression assignment
E20=(E10+125*SQR(E23))
System number
SN=1.5
Block Types
Four types of blocks can be used in a part program:
Comment blocks Motion blocks Assignment blocks Three-letter command blocks
Comment blocks
A comment block allows the programmer to insert free sentences in the program. These sentences may describe the function to be executed or provide other pieces of information that make the program more understandable and documented. A comment block does not produce messages for the operator. The control ignores a comment block during execution of the program. The first character of a comment block must be a semicolon (;). The rest of the comment block is a sequence of alphanumeric characters. For example:
;THIS IS AN EXAMPLE OF COMMENT BLOCK A comment can be inserted not only in a single block, but also in other types of blocks after the
character ";".All characters after a ; considered as a comment. For example: G1 X100 Y50 ; Motion block
E1=10 ; Local variable E (ROT,45) ; Rotation command
Motion blocks
Motion blocks conform to ISO and ASCII standards for programming blocks. There is no particular order for programming the components of a motion block.
Example: G1 X500 Y20 F200
Assignment blocks
Assignment blocks are used to write variables' values directly from the program. Several types of assignments are possible as shown in the following table:
Three-letter command blocks
1-4 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
Three-letter command blocks define an operation with a three-letter instruction in conformity with the RS-447 standard. For example:
(ROT,45) (DIS,"message text")
For the sake of compatibility between 10 Series and Series 8600 certain commands may be programmed with either of the following three-letter codes.
UGS UCG CGS CLG DGS DCG RQT RQU DPA DSA PAE ASC PAD DSC DPP DPT IPB DTL ROT URT SOL DLO UTO UOT TOU TOF
10 Series CNC Programming Manual 1-5
Chapter 1
Programming with 10 Series Systems
-99999.99999
-0.00001
mm/inch
+0.00001
+99999.99999
mm/inch
-99999.99999
-0.00001
mm/inch
+0.00001
+99999.99999
mm/inch
-99999.99999
-0.00001
mm/inch
+0.00001
+99999.99999
mm/inch
Programmable Functions
Axis coordinates
Axis coordinates can be named with letters ABCUVWXYZPQD (according to the configuration set in AMP) and can be programmed in the following ranges:
NOTE: It is impossible to program coordinates in the +0.00001 range because 0.00001 is the minimum value accepted by the control.
R coordinate
In a circular interpolation (G02 G03) R represents the radius of the circle. In a standard canned cycle (G81-G89), the R coordinate defines the initial position value and retract value. This function is programmable in the following ranges:
NOTE:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value accepted by the control. In a threading block (G33), the R coordinate represents the offset from the zero angular position of the spindle for multi-start threads.
I J coordinates
In circular interpolation (G02-G03), I and J specify the coordinates of the center of an arc. I specifies the abscissa (typically X) and J the ordinate of the center (typically Y). I and J always specify the center coordinates regardless of the active interpolation plane. This function is programmable in the following ranges:
NOTE:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value accepted by the control.
When the values of the corresponding axis are expressed in diametrical units (according to the configuration set in AMP), the values of the center coordinates (I and J) are also expressed in diametrical units.
I and J coordinates are also used in the deep hole drilling cycle (G83). In a threading block (G33), the I address defines the pitch variation for variable pitch threads:
I+ Increasing pitch I- Decreasing pitch
K function
1-6 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
-99999.99999
-0.00001
mm/inch
+0.00001
+99999.99999
mm/inch
+0.00001
+99999.99999
mm/inch
= F
time
distance total
= F
distance total
speed
(minutes)1/t =
+0.00001
+99999.99999
mm/sec
2
or inches/sec
2
In the deep hole drilling cycle (G83), K defines the incremental value to be applied to the minimum depth value (J) in order to reduce the initial pitch depth (I). This function is programmable in the following ranges:
NOTE:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value accepted by the control.
In a threading block (G33) or a tapping cycle (G84), K defines the thread pitch. In helical interpolation (G02-G03), K defines the helix pitch.
F and t function
The F function defines the axes feedrate. This function is programmable in the following range:
In G94, F function defines the feedrate in millimetres per minute (G71) or inches per minute (G70).
A "t" value can be programmed in a block to specify the time in seconds needed to complete the move defined in the block. In this case the block feedrate will be:
60
*
A "t" value is valid only in the block in which it is programmed. In G93, the F function defines the inverse of the necessary time in minutes to complete the movement:
The F function is mandatory in the blocks when G93 is active and only affects that block. In G95, F specifies the axes feedrate in millimetres per revolution (G71) or inches per revolution of the spindle (G70).
a Function
The a function defines the acceleration to use on the part program block and may be programmed in the range:
The a function is considered in mm/sec
2
in presence of G71 and in inches/sec
2
in presence of G70. This function is active only in the block it is programmed in and is in any case limited to the acceleration on the profile as calculated by the system in function of the accelerations configured.
M function
10 Series CNC Programming Manual 1-7
Chapter 1
Programming with 10 Series Systems
+0.001
999999.999
rpm/fpm
IMPORTANT
M, S and T functions vary according to their characterisation in AMP. From SW release 3.1 it is possible for the system to execute these functions inside a continuous move (G27-G28). When planning an application the manufacturer must:
configure the desired function as "ALLOWED IN CONTINUOUS" in AMP. write a machine logic to handle such a function.
In turn, the programmer must remember that these functions produce different effects depending on how they are programmed:
in continuous mode a function configured as "ALLOWED IN
CONTINUOUS" will be executed in the sequence in which it has been programmed. In order not to lock the program the function will be executed in "NO WAIT" mode.
in point-to-point mode a function configured as "ALLOWED IN
CONTINUOUS" will be executed in standard mode.
The M address can activate various machine operations. The programmable range goes from 0 to 999. See Chapter 6 for further information about these functions.
S function
The S function specifies the spindle rotation speed. It is programmable in the following range:
In G97, the S function defines spindle rotation speed expressed in revolutions per minute. In G96, the S function defines the cutting surface speed expressed in metres per minute (G71)
or feet per minute (G70). The above cutting speed remains constant on the surface. Refer to Chapter 5 for further information about S function programming.
T function
The T function defines the tool and tool offset needed for machining. It is programmable in the
0.0 to 999999999999.300 range. The 12 digits on the left of the decimal point represent the tool identifier code and the three digits on the right represent the tool offset number.
Chapter 3 provides a detailed description of T functions.
h functions
h functions permit to alter an offset during both continuous and point to point moves. An h function must be programmed by itself in a block. Its value may range from 0 through 300 and may be either an integer or an E variable.
G functions
G codes program machining preparatory functions for machining. The following section deal with this codes.
1-8 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
G Codes
This section shows how to write preparatory G codes in part program blocks. A preparatory G code is identified by the G address followed by one or two digits (G00-G99). At present, only some of the 100 possible G codes are available.
Paramacro subroutines can be called with a three-digit G code. This class of G codes is described in Chapter 9. Three-digit G codes are classified as follows:
G100 - G299 Reserved G300 - G699 Non modal paramacro range G700 - G998 Modal paramacro range G999 Reset modal paramacro
The G code must be programmed after the sequence number (if defined) and before any other operand in the block. For example:
N100 G01 X0 - operand It is possible to program several G codes in the same block, provided they are compatible with each
other. The table that follows defines compatibility between G codes. Zero indicates that the G codes are compatible and can be programmed in the same block; 1 means that the G codes are not compatible and cannot be programmed in the same block without generating an error.
10 Series CNC Programming Manual 1-9
Chapter 1
Programming with 10 Series Systems
G
00
01
02 03
33
81 89
80
72 73 74
93 94 95
96 97
41 42
40
27 28
29
04
09
90 91
79
70 71
16 17 18 19
92 99 98
20
21
60 61
G00 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G01 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G02 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G03 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G04 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 G09 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 G16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G20 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 G21 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 G27 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 G28 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 G29 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 G33 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 G40 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 1 G41 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 G42 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 1 G60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G61 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G70 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 G71 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 G72 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G73 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G79 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 1 1 1 G80 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 G81 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 G82 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G83 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G84 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G85 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G86 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G89 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 G90 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 G91 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 G92 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G93 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G94 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G95 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G96 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G97 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 G98 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 G99 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1
Compatible G Codes
NOTE:
0 means compatible G codes 1 means incompatible G codes
1-10 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
CODE
GROUP
MODAL
DESCRIPTION
POWER UP
MILL
GRINDING
G00
a
yes
Rapid axes positioning
yes
yes
G01
a
yes
Linear interpolation
no
no
G02
a
yes
Circular interpolation CW
no
no
G03
a
yes
Circular interpolation CCW
no
no
G33
a
yes
Constant or variable pitch thread
no
no
G16
b
yes
Circular interpolation and cutter diameter compensation on a defined plane
no
no
G17
b
yes
Circular interpolation and cutter diameter compensation on 1st-2nd axes plane
yes
no
G18
b
yes
Circular interpolation and cutter diameter compensation on 3rd-1st axes plane
no
yes
G19
b
yes
Circular interpolation and cutter diameter compensation on 2nd-3rd axes plane
no
no
G27
c
yes
Continuous sequence operation with
yes
yes
automatic speed reduction on corners
G28
c
yes
Continuous sequence operation
no
no
without speed reduction on corners
G29
c
yes
Point-to-point operation
no
no
G92
d
no
Axis presetting without mirror
no
no
G98
d
no
Axis presetting with mirror
no
no
G99
d
yes
Delete G92
yes
yes
G40
e
yes
Cutter diameter compensation disable
yes
yes
G41
e
yes
Cutter diameter compensation-tool left
no
no
G42
e
yes
Cutter diameter compensation-tool right
no
no
G20 G21
yes yes
Closes GTL profile Opens GTL profile
G60
yes
Closes the HSM profile
no
no
G61
yes
Opens the HSM profile
no
no
G62
no
Splits the HSM profile in two with continuity
no
no
G63
no
Splits the HSM profile in tw with link
no
no
G66
no
Splits the HSM profile in two with edge
no
no
G67
no
Splits the HSM profile in two with reduced speed on edge
no
no
The following table gives a summary of the G codes available in the control. This default configuration can be modified through the AMP utility.
G code summary
10 Series CNC Programming Manual 1-11
Chapter 1
Programming with 10 Series Systems
CODE
GROUP
MODAL
DESCRIPTION
POWER UP
MILL
GRINDING
G70
f
yes
Programming in inches
no
no
G71
f
yes
Programming in millimetres
yes
yes
G80
g
yes
Disable canned cycles
yes
yes
G81
g
yes
Drilling cycle
no
no
G82
g
yes
Spot-facing cycle
no
no
G83
g
yes
Deep hole drilling cycle
no
no
G84
g
yes
Tapping cycle
no
no
G85
g
yes
Reaming cycle
no
no
G86
g
yes
Boring cycle
no
no
G89
g
yes
Boring cycle with dwell
no
no
G90
h
yes
Absolute programming
yes
yes
G91
h
yes
Incremental programming
no
no
G79
i
no
Programming referred to axis
no
no
home switch
G04
j
no
Dwell at end of block
no
no
G09
j
no
Deceleration at end of block
no
no
G72
k
no
Point probing with probe tip
no
no
radius compensation
G73
k
no
Hole probing with probe tip
no
no
radius compensation
G74
k
no
Probing for theoretical deviation from a point without probe tip radius compensation
no
no
G93
l
yes
Inverse time (V/D) feedrate
no
no
programming mode
G94
l
yes
Feedrate programming in ipm or mmpm
yes
no
G95
l
yes
Feedrate programming in ipr or mmpr
no
yes
G96
m
yes
Constant surface speed (feet per
no
yes
minute or metres per minute)
G97
m
yes
Spindle speed programming in rpm
yes
no
1-12 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
SYNCHRONISATION AND PROGRAM EXECUTION
The terms "synchronised" and "asynchronised" apply only to part program blocks that do not imply a movement, that is, assignment or calculation blocks. A motion block is any block containing axes motion together with other actions:
Axis moves M codes S codes T codes
A synchronisation block is taken into consideration and executed only after the motion block that precedes it in the program is completed, that is after the axis move has been executed.
On there other hand, a non-synchronised block is executed as soon as it is read by the part program interpreter, i.e. when perhaps the previous move is still in progress.
The advantage of asynchronous block execution is that variable assignments and complex calculations can be made between moves. This allows to reduce waiting time between two motion blocks caused by calculations.
Default Synchronisation
At power up, the following commands and codes are automatically synchronised:
UDA, SCF, RQO, IPB, DLY, WOS, WAI, SND, GTA, REL, UPR, TCP, UVP, UVC
G16, G17, G18, G19, G72, G73, G74 All the other commands are not synchronised. This default assignment can be changed. This means that the commands that are synchronised by
default at power-up can become asynchronous and that the commands that are not synchronised by default at power-up can become synchronous. The next section explains how to override default synchronisation.
NOTE:
Default synchronisation cannot be modified for GTA, UPR, TCP, UVP, and UVC instructions.
10 Series CNC Programming Manual 1-13
Chapter 1
Programming with 10 Series Systems
WARNING
To avoid possible damage to the workpiece, note that programming synchronised blocks between contouring blocks clears the motion buffer at each synchronised block. This will result in dwells while the buffer is reloaded and all the calculations are performed.
Overriding Default Synchronisation
Under certain circumstances, the part program may request to modify the default synchronisation. If the command is synchronised by default and the programmer wants it to be executed by the
interpreter as soon as it is read (asynchronous operation), an "&" must be programmed in the first position of the block, immediately after the "n" number.
If the command is asynchronous and you wish to activate synchronous operation, the first character in the block must be #.
Both # and & are active only in the block where they are programmed.
Part Program Interpreter
When the system reads a part program block it executes various activities, depending on the type of block:
A motion block will be loaded in the motion buffer queue. If the move is defined by a variable, the
stored move values stored are those of the variable. The buffer size is configurable from 2 to 128 blocks through AMP.
An asynchronous assign or calculation block will be executed.
Three factors cause the part program interpreter to stop reading blocks:
The motion buffer is full. When the active motion block is completed, the interpreter will read
another motion block and load it in the buffer queue.
A non-motion block that contains a synchronised command or a code that forces
synchronisation is read. The interpreter does not start again until the last loaded motion block is completed. At this point the block calling for synchronisation is executed and the interpreter starts reading the following blocks.
Error conditions
1-14 10 Series CNC Programming Manual
Chapter 1
Programming with 10 Series Systems
1. Diameter axes
2. Scale factors (SCF)
3. Measuring units (G70 G71)
4. Paraxial compensation ( u v w )
5. Inch/metric programming (G90 G91)
6. Mirror machining (MIR)
7. Plane rotation (ROT)
8. Origins (UAO UTO UIO G92)
Sequence of execution
Programming restrictions for long real (double) formats
The following restrictions apply to long real programming:
Max. 15 numbers in total
Max. 12 integer digits
Max. 9 decimal digits The system will display an error if more than 12 integer digits are programmed. If more than 9 decimal numbers are programmed, the system does not display any error but cuts off
the programmed number at the last allowed digit.
10 Series CNC Programming Manual 1-15
Chapter 1
Programming with 10 Series Systems
END OF CHAPTER
1-16 10 Series CNC Programming Manual
Chapter 2
G CODE
FUNCTION
G00
Rapid axes positioning
G01
Linear interpolation
G02
Circular interpolation clockwise
G03
Circular interpolation counter clockwise
G33
Constant or variable pitch threading
PROGRAMMING THE AXES
AXIS MOTION CODES
Defining Axis Motion
In this manual axes motion directions are defined in compliance with EIA standard RS-267. By convention, we always assume that the tool moves towards the part, no matter whether the tool moves towards the part or the part moves towards the tool in the actual process.
Basic movements can be defined with the motion G codes listed in the following table:
10 Series CNC Programming Manual 2-1
Chapter 2
Programming the Axes
G00 - Rapid Axes Positioning
G00 [G-codes] [axes] [offset ] [F..] [a] [auxiliary]
G00 defines a linear movement at rapid feedrate that is simultaneous and coordinated for all the axes programmed in the block.
Syntax
where: G-codes Other G codes that are compatible with G00 (See "Compatible G codes" table in
Chapter 1).
axes Axis name followed by a numerical value. The numerical value can be programmed
directly with a decimal value or indirectly with an E parameter. Up to nine axes can be written in a block.
offset Offset factors on the profile. For the X, Y, Z axes these factors are entered with u, v,
and w respectively. See "Paraxial compensation" in Chapter 4 for further information.
F Feedrate for coordinated moves. It is given with the F address followed by the feedrate
value. This parameter does not affect the move of the axes programmed in the G00 block, but is retained for subsequent feedrate moves. The rapid feedrate forced by G00 is a velocity along the vector of the axes programmed in the block. The maximum
rapid feedrate is defined during characterisation with the AMP utility. a Acceleration to be used on the profile. auxiliary Programmable M, S, and T auxiliary functions. Up to four M functions, one S (spindle
speed) and one T (tool selection) can be programmed in the block.
2-2 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
G01 - Linear Interpolation
G01 [G-codes] [axes] [offset ] [F..] [a] [auxiliary]
Program:
N60 (UGS,X,-10,100,Y,-10,50) N70 G0 X10 Y10 N80 G01 X90 Y40 F200
G01 defines a linear move at machining feedrate that is simultaneous and coordinated on all the axes programmed in the block.
Syntax
where: G-codes Other G codes that are compatible with G01 (See "Compatible G codes" table in
Chapter 1).
axes Axis name followed by a numerical value. The numerical value can be programmed
directly with a decimal value or indirectly with an E parameter. Up to nine axes can be written in a block.
offset Offset factors on the profile. These factors are entered for the X, Y, Z axes with the
characters u, v, w respectively. See "Paraxial compensation" in Chapter 4 for further information.
F Feedrate used for the move. It is given with the F address followed by the feedrate
value. If omitted, the system will use the previously programmed feedrate. If no
feedrate has been programmed the control will generate an error. a Acceleration to be used on the profile. auxiliary Programmable M, S, T auxiliary functions. Up to four M functions, one S (spindle
speed) and one T (tool selection) can be programmed in the block.
Example:
This example shows how to program a G01 code.
10 Series CNC Programming Manual 2-3
Chapter 2
Programming the Axes
G02 G03 - Circular Interpolation
G02 [G-codes] [axes] I.. J.. [F..] [a] [auxiliary]
or
G02 [G-codes] [axes] R.. [F..] [a] [auxiliary] G03 [G-codes] [axes] I.. J.. [F..] [a] [auxiliary]
or
G03 [G-codes] [axes] R.. [F..] [a] [auxiliary]
These codes define the following circular movements: G02 Circular interpolation clockwise (CW) G03 Circular interpolation counter clockwise (CCW) The circular move is performed at machining feedrate and is coordinated and simultaneous with all
the axes programmed in the block.
Syntax
where: G-codes Other G codes that are compatible with G02 and G03 (See "Compatible G codes"
table in Chapter 1).
axes Axis name followed by a numerical value programmed directly with a decimal value or
indirectly with an E parameter.
If axes are not programmed in the block, the move is a complete circle in the active
interpolation plane.
I Abscissa of the circle centre. This is a value in millimetres that can be programmed
directly or indirectly with an E parameter. The abscissa is expressed as a diameter unit when the corresponding axis is a diameter axis. No matter what interpolation plane you are using, the symbol for the abscissa is always I.
J Ordinate of the circle centre. This is a value in millimetres that can be programmed
directly or indirectly with an E parameter. The ordinate is expressed as a diameter unit when the corresponding axis is a diameter axis. No matter what interpolation plane you are using, the symbol for the ordinate is always J.
NOTE: .
2-4 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
R Circle radius alternative to the I and J coordinates. If the arc of a circle is less than or
equal to 180 degrees, the radius must be programmed with positive sign; if the arc of a
circle is greater than 180 degrees the radius must be programmed with negative sign.
NOTA: R is not allowed with arc of 360 degrees.
F Feedrate used for the move. It is given with the F address followed by the feedrate
value. If omitted, the system will use the programmed value. If no feedrate has been
programmed an error will occur. a Acceleration to be used on the profile. auxiliary Programmable auxiliary functions M, S, T. Up to four M functions, one S (spindle
speed) and one T (tool selection) can be programmed in the block.
Characteristics: The maximum programmable arc is 360 degrees, i.e. a full circle. Before programming a circular
interpolation block, the interpolation plane must be defined with G16, G17, G18, G19. G17 is automatically active after power up. The coordinates of the start point (determined from the previous block), the end point and the centre of the move must be calculated so that the difference between start and end radius is less than the default value (0.01 mm or 0.00039 inches). If this difference is equal or greater than the default value, the control displays an error message and the circular move is not performed.
Incremental programming (G91) can be used in conjunction with circular interpolation. With G91 the end point and the centre point of the circular move are referenced to the start point programmed in the previous block. The direction (CW or CCW) of a circular interpolation is defined by looking in the positive direction of the axis that is perpendicular to the active interpolation plane.The following examples show the directions for circular interpolation on the active planes.
Directions of a circular interpolation
10 Series CNC Programming Manual 2-5
Chapter 2
Programming the Axes
N14 X10 Y20 N15 G2 X46 Y20 I28 J20 F200 N16 G3 X64 Y38 I46 J38
N14 X10 Y20 N15 G2 X46 Y20 R18 F200 N16 G3 X64 Y38 R18
N14 X10 Y20 N15 G2 G91 X36 I18 J0 F200 N16 G3 X18 Y18 I0 J18
N14 X10 Y20 N15 G2 G91 X36 R18 F200 N16 G3 X18 Y18 R18
2-6 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
CET (PRC) - Circular Endpoint Tolerance
CET=value
In circular interpolations, CET defines the tolerance for the variance between the starting and final radiuses of the circle arc.
Syntax
where: value Tolerance expressed in millimetres. The default value is 0.01 mm.
Characteristics:
If the difference between starting and final radius is smaller than the tolerance but not zero, the system normalises the circle data according to the values specified in CET and ARM.
If the difference is equal to or greater than the value assigned to CET, an error occurs and the programmed final points will not be executed. In this case, you must either modify the program or increase the CET tolerance.
The value assigned to CET can be modified as follows:
In the AMP configuration By means of a specific data entry By writing a new CET in the part program.
The CET tolerance is always expressed in the characterised measuring unit (G70/G71 apply). If the variance between programmed start and final radius is higher than the CET value, the circle
arc can be executed as follows:
By making the CET value greater than the actual variance By programming the arc with the circle radius rather than with the centre using this format:
G2/G3, final point and R radius
A RESET re-establishes the default tolerance.
Example:
CET=0.02 defines a 0.02 mm tolerance
10 Series CNC Programming Manual 2-7
Chapter 2
Programming the Axes
FCT - Full Circle Threshold
FCT=value
In a circular interpolation, the FCT instruction defines a threshold for the distance between the first and the last point in an arc. Within this distance the arc is considered a full circle.
Syntax
where: value Threshold expressed in millimetres. The default value is 0.001 mm.
Characteristics:
The FCT command allows to deal with inaccurate program data that would otherwise prevent the system from forcing a complete circle. In other words, if the distance from the first to the last point is less than FCT, the system uses the points as if they were overlapping and forces a full circle.
FCT thresholds can be modified as follows:
In the AMP configuration By means of a specific data entry
By writing a new CET in the part program. The FCT threshold is always expressed in the characterised measuring unit (G70/G71 apply). A RESET re-establishes the default threshold.
Example:
G71 FCT=0.005 In this example, FCT defines a threshold 0.005 millimetres.
2-8 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
ARM - Defining Arc Normalisation Mode
ARM=arc mode
The ARM code defines the method with which the system normalises an arc (programmed with the centre coordinates I and J, and a final point) in order to render it geometrically congruent.
An arc is normalised when the variance between initial and final radius is less than the characterised accuracy tolerance or than the tolerance programmed with the CET command.
Before executing an arc, the system calculates the difference between initial and final radiuses.
If the difference is zero, the control will execute the programmed arc without normalising it. If the difference is greater than the CET value, the control will stop without executing the move,
and display a profile error message.
If the difference is less than the CET value, the control will execute the move normalising the arc
with the method specified by ARM.
If the distance is less than the FCT threshold, the system will force the complete circle. For ISO
blocks with radius compensation, the system checks the difference twice: first on the base profile without compensation (normalisation stage) and then on the compensated profile (motion generation stage).
Syntax
where: arc mode Is the numerical value that defines the arc normalisation mode.
Valid values are: 0 displaced centre within the CET tolerance (default mode)
1 displaced starting point displaced the CET tolerance 2 displaced centre independent from the CET tolerance 3 centre beyond the CET tolerance range
The default value is zero.
Characteristics:
The arc normalisation mode can be modified as follows:
In the AMP configuration By means of a specific data entry By writing a new CET in the part program.
The examples that follow illustrate ARC normalisation modes.
10 Series CNC Programming Manual 2-9
Chapter 2
Programming the Axes
ARM=0
This is an arc through the initial and final programmed points whose centre is displaced within the tolerance defined by CET. The arc is executed with averaged radius.
ARM=1
This is an arc through the programmed final point and the starting point displaced within the CET tolerance. The arc is executed with final radius.
2-10 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
ARM=2
This is an arc whose centre is displaced irrespective of the tolerance defined with CET. In this case the arc is executed with averaged radius.
ARM=3
If the displacement of the centre arc is within the CET tolerance defined with CET, the arc centre will be displaced and the arc will pass through the programmed starting and final points. If the displacement of the centre is not within the CET tolerance, the arc will have the programmed centre and pass through the displaced starting and final points (both points are displaced within the CET/2 tolerance). In this case the arc is executed with averaged radius.
10 Series CNC Programming Manual 2-11
Chapter 2
Programming the Axes
IMPORTANT
With ARM = 1 or ARM = 3 the resultant profile can show inaccuracies ("steps"): With ARM = 1 there will be a step at circle start equal to the difference between
starting and final radiuses. In case of ARM = 3 there will be a step both at circle arc start and end. To prevent these steps from causing a servo error, we suggest that you program
a CET value smaller than the characterised servo error threshold.
2-12 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
CRT - Circular interpolation speed reduction threshold CRK - Circular interpolation speed reduction constant
The variables CRT (Circle Reduction Threshold) and CRK (Circle Reduction K-Constant) are used for reducing the speed on circular elements by applying different reduction algorithms depending on the sign of the CRT parameter. Speed reduction will be:
- as a function of the radius of the element only, if CRT > 0
- as a function of the radius and centrifugal acceleration, if CRT = 0
- as a function of the radius and tolerated interlocking error, if CRT < 0
Syntax
CRT = value
where: value If value > 0 => value, it is the threshold radius below which the reduction must be
applied. A value of 0 (zero), which is the default value, cancels this operation.
If value < 0 => abs(value), it is the maximum departure in mm desired between
the programmed and the actual path. A value of 0 (zero), which is the default value, cancels this operation.
CRK = value
where:
If both CRT and CRK are nil, then no reduction speed is applied to the circular elements.
10 Series CNC Programming Manual 2-13
Chapter 2
Programming the Axes
By assigning any value positive to the variable CRT, the speed is reduced on all circular elements with a smaller radius than the value set. The value assigned to the variable CRK enables this reduction to be modulated. The speed is reduced as shown in the graph below, in which it is assumed that the programmed speed Vp is equal to 1 and the variable CRT is equal to 1.
V
Vp = 1
0.606
2.718
Crk
0.5
1
2
4
0.135
0.018
Crt = 1
R
When CRT becomes 0, the CRK value (if other than zero) is used, in circular movements, in order to recalculate processing speed. In circular movements, in fact, processing speed is generally limited by the radius of the circumference (centrifugal acceleration) according to the following relationship:
V lav = Min ( a radius, V Prog ) where a is the minimum acceleration between the two axes involved in the
circular movement. CRK changes this relationship as follows V lav = Min ( CRK * a radius, V Prog ) and therefore makes it possible to increase (CRK > 1.0) or decrease (CRK <
1.0) the limitation associated with the centrifugal acceleration. With a value of
1.0 the standard calculation is retained.
0,271
Characteristics:
CRT is the variable identifying the type of strategy to be adopted to reduce speed on circles. If:
2-14 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
= *
2 * R * abs(CRT) * f(VFF,FLT_2)
Where f(VFF,FLT_2) is a function that depends on the Velocity Feed Forward (VFF) set and the type 2 filter, if any, activated (centripetal acceleration compensation filter). For further details, see the Chapter on filters in this manual.
NOTE:
Since speed on circles is limited as a function of the percentage of VFF, it is necessary, when working with VFF, to have enabled the process variable VFF and configured the same percentage value both on the drives and on the axes.
The values assigned to the variables CRT and CRK may be modified as follows
by means of the AMP command during configuration from the part program with the specified syntax.
The values assigned to CRT are always expressed in the current unit of measurement of the process (the G70/G71 functions are applied).
The RESET command restores the characterization values.
10 Series CNC Programming Manual 2-15
Chapter 2
Programming the Axes
Helical Interpolation
G02 [G-codes] [axes] I.. J.. K.. [F..] [auxiliary]
or
G02 [G-codes] [axes] R.. K.. [F..] [auxiliary] G03 [G-codes] [axes ] I.. J.. K.. [F..] [auxiliary]
or
G03 [G-codes] [axes ] R.. K.. [F..] [auxiliary]
G02 and G03 program a helical path in only one block. The system performs the helical path by moving the plane axes in a circular interpolation while the axis that is perpendicular to the interpolation plane moves linearly.
To program a helical path, simply add a depth coordinate and the helix pitch (K) to the parameters specified in the circular interpolation block.
Syntax
where: G-codes Other G codes that are compatible with G02 and G03 (See "Compatible G
codes" table in Chapter 1).
axes An axis letter followed by a numerical value programmed (either decimal value
or E parameter).
If no axes are programmed in the block, the move will generate a full circle on
the active interpolation plane.
I Abscissa of the circle centre. This is a value in millimetres (decimal number or E
parameter). The abscissa is expressed as a diameter unit when the corresponding axis is a diameter axis. No matter what the interpolation plane, the symbol for the abscissa is always I.
J Ordinate of the circle centre. This is a value in millimetres (decimal number or E
parameter). The ordinate is expressed as a diameter unit when the corresponding axis is a diameter axis. No matter what the interpolation plane, the symbol for the ordinate is always J.
2-16 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
R Circle radius. It is specified with the R address followed by a length value, and is
alternative to the I and J coordinates.
K Helix pitch. This parameter is specified with the K address followed by the pitch
value. It can be omitted if the helix depth is less than one pitch.
F Feedrate. It is specified by the F address followed by a value. If it is omitted, the
system will use the previously programmed feedrate. If no feedrate has been programmed, the system will signal an error.
auxiliary Programmable M, S, and T functions. Up to four M functions, one S (spindle
speed) and one T (tool selection) can be programmed in the block.
Characteristics: If Z is a multiple of K, it is not necessary to program the final point If the depth is not an integer number of pitches, i.e. if Z is not equal to n * K), the length of the circle
arc must be calculated with the decimal remainder of the pitch number. For example, if Z = 2.7 * K, then the arc that must be programmed is 360 * (2.7 - 2) = 252 degrees.
Example:
G2 X . . Y. . Z . . I . . J . . K . . F. . In this example, addresses X, Y, I, and J refer to circle programming; addresses Z and K refer to
helix programming and are respectively the depth and the helix pitch. The figure below shows the typical dimensions of a helical interpolation.
Dimensions Helix
10 Series CNC Programming Manual 2-17
Chapter 2
Programming the Axes
G33 - Constant or Variable Pitch Threading
G33 [axes] K.. [I..] [R..]
IMPORTANT
During the threading cycle the control ignores the CYCLE STOP button and the FEEDRATE OVERRIDE selector/softkey, whereas the SPINDLE SPEED OVERRIDE selector must be disabled by the machine logic.
VFF may be disabled with the dedicated softkey or with a VFF command.
G33 defines a cylindrical, taper, or face threading movement with constant or variable pitch. The threading move is synchronised to spindle rotation. The parameters programmed in the block identify the type of thread.
Syntax
where: axes An axis letter followed by a numerical value.
K Thread pitch (mandatory). For variable pitch threads, K is the initial pitch. I Pitch variation for variable pitch threading. For increasing pitch threading, I must
be positive; for decreasing pitch threading I must be negative.
R Deviation from the zero spindle angular position in degrees. R is used in
multistart threading to avoid displacing the starting point.
Characteristics: All these numerical values can be programmed directly with decimal numbers or indirectly with E
parameters. In decreasing pitch threads, the initial pitch, the pitch variation, and the thread length must be
calculated so that the pitch is greater than zero before reaching the final coordinate. Use the following formula:
where: I Is the maximum pitch variation
K Is the initial pitch (Zf - Zi) Is the thread length.
2-18 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Part program block: G33 Z-100 K2
Part program block: G33 U40 Z-80 K3
Constant Pitch Threading
The figures that follow illustrate examples of constant pitch threading. Note that the U axis is a diameter axis.
Cylindrical threading
Conical threading
Cylindrical-conical threading
10 Series CNC Programming Manual 2-19
Part program blocks: G33 Z-95 K2 .5
Z-100 U52 K2.5
Chapter 2
Programming the Axes
Part program block: G33 Z-50 K4 I1 Part program block: G33 U50 Z-40 K4 I1
Part program block: G33 Z-50 K10 I-1
Variable Pitch Threading
The figures that follow illustrate variable pitch threading. Note that the U axis is a diameter axis.
Cylindrical threading with increasing pitch
Conical threading with increasing pitch
Cylindrical thread with decreasing pitch
2-20 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Multi-start threading
An R word in a G33 block makes the control start moving the axes from an angular position that varies according to the programmed R value.
This permits to program the same start point for all threads, rather than move the start point of each thread by a distance equal to the pitch divided by the number of starts.
Example:
Three-start threading N37 G33 Z3 K6 1st thread
. . . N41 G33 Z3 K6 R120 2nd thread . . . N45 G33 Z3 K6 R240 3rd thread
10 Series CNC Programming Manual 2-21
Chapter 2
Programming the Axes
Rotary Axes
In the system characterisation, axes can be configured as rotary axes, i.e. a rotary table. To program rotary axis moves simultaneous to and coordinated with the other axes programmed in
the same block:
Always use decimal degrees (from +0.00001 to +99999.99999 degrees) starting from a pre-
selected origin.
Select either the rapid rate (G00) or the feedrate (G01). In a rotary move rates are always
expressed in degrees per minute (dpm, F5.5 format). For example, with F75.5 the axis moves at
75.5 dpm.
To perform milling operations on a circle with a rotary table, calculate the rotary rate with the following formula.
where:
F Is the rotary rate in dpm A Is the linear rate on the arc in millimetres or inches per minute D Is the diameter on which the milling operation is performed (in mm or inches).
To move rotary and linear axes simultaneously in the same block, you may calculate the feedrate with one of the following formulas.
With G94:
where:
F Is the feedrate A Is the feedrate on the part (in mm/min or inches/min) X Y Z B C Is the actual travel performed by each axis (in mm or inches for linear axes, in
degrees for rotary axes)
L Is the resultant path length (in mm or inches).
2-22 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
With G93:
where:
F Is the feedrate A Is the desired feedrate (in mm/min or inches/min) on the part X Is the X axis incremental distance Y Is the Y axis incremental distance B Is the B axis incremental distance
The control cannot calculate the desired tool feedrate directly because the radius is not programmed. In these cases, the feedrate can be specified as inverse time with G93.
A block moving only the rotary axes generates an arc. If rotary and linear moves are combined, the resulting path may be an Archimedean spiral, a cylindrical helix or more complex curves, depending on the programmed number of linear axes.
10 Series CNC Programming Manual 2-23
Chapter 2
Programming the Axes
Axes with Rollover
Axes with rollover axis are rotary or linear axes whose position is controlled between zero and a positive value configured in the rollover pitch parameter.
In the following description the axsi with rollover is rotary and has a 360 degree rollover pitch. We assume that the axis position is controlled in the 0 to 359.9999 degree range. That is, when the axis reaches 360 degrees, the displayed position rolls over to zero degrees.
An axis with rollover can be programmed in a block or in a MDI in two different modes:
absolute mode (G90) programs the move in degrees. incremental mode (G91) programs the move as increments in degrees from the current
axis position.
G90 - Absolute mode
In this mode:
Displayed position is from 0 to +359.99999 degrees
Programmed range is from 0 to ± 359.99999 degrees
Direction of axis rotation depends on the sign of the programmed move. By convention, a
positive move is clockwise and a negative move is counter clockwise.
2-24 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
For example, let's assume that rotary axis B is positioned at 90 degrees and the following block is written in the part program or in an MDI:
G90 B45
Clockwise Rotation
The B axis rotates by 315 degrees clockwise from the 90 degree position to reach the absolute position of 45 degrees (the sign of the move is positive).
Now let's assume that the B rotary axis is at 90 degrees and, the following block is written in the part program or in an MDI:
G90 B-0
Counter clockwise Rotation
The B axis rotates by 90 degrees counterclockwise to absolute position 0 degrees because the sign of the move is negative.
10 Series CNC Programming Manual 2-25
Chapter 2
Programming the Axes
IMPORTANT
The displayed position is beyond the programmed range when the programmed range is greater than +359.999 degrees.
G91 - Incremental mode
When an axis with rollover is programmed in incremental (G91) mode, the following conditions apply:
Displayed position is from 0 to +359.99999 degrees.
Program range is from +/-0.00001 to +/-99999.99999 degrees.
Direction of axis rotation depends upon the sign of the programmed move. By convention, a
positive move is clockwise and a negative move is counter clockwise.
For example, if the absolute zero position of the B rotary axis is 0 degrees and the following block is written in the part program or in an MDI:
G91 B765
Incremental clockwise rotation
The B axis makes two complete clockwise revolutions plus 45 degrees (360 + 360 + 45 = 765).
2-26 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Pseudo Axes
Diameter Axes
IMPORTANT
The order of Z and U in this command is critical, i.e. G16 UZ and G16 ZU define two different interpolation planes.
Cutter diameter compensation (G41 or G42) and a machining allowance (MSA) can be applied to profiles programmed with U.
A pseudo axis is an auxiliary function that may be addressed as an axis and is handled by the machine logic. The pseudo axis name can be any allowed axis name (X,Y,Z,A,B,C,U,V,W,P,Q,D). In a part program block it is possible to program up to 3 pseudo axes but in the AMP it is possible to configure up to 6 pseudo axes.
A reaming/facing head can be mounted on the spindle and controlled simultaneously with other axes. By programming such an axis (typically a U axis) as a diameter, the following can be obtained:
Boring operations on cylindrical or conical holes Circular radiuses (concave or convex) Chamfers Grooves Facing operations Threads
Programming a U (diameter) axis is similar to programming other linear axes; however, its coordinates must be expressed in diameters. The measuring units can be inches or millimetres according to the current mode ( G70/G71).
When the U axis is programmed in the same block as an X, Y or Z move, it is simultaneous with and coordinated to the other axes. U axis moves can be performed at rapid rate (G00) or feedrate (G01) with F in ipm or mmpm.
Before executing a profile with the U axis, the interpolation plane must be defined with the following command:
G16 Z U
10 Series CNC Programming Manual 2-27
Chapter 2
Programming the Axes
Example: This is an example reaming/facing head used in a finishing operation.
N116 (DIS, "FINISHING WITH R/F HEAD") N117 F60 S630 T9 .9 M6 N118 G16 Z U ;Defines interpolation plane N119 (UAO, 2) ;Calls absolute origin for the head N120 (UTO, 1, Z-200) ;Temporary origin for Z (skimming the part) N121 X Y160 M3 ;Position to hole 1 N122 G41 Z2 U51 N123 G1 Z-1 U44 .98 ;Executes the chamfer N124 Z-44 ;Executes hole diameter 45 N125 G G40 U40 N126 Z2 F40 S380 N127 G41 Y U106 ;Positions to hole 2 N128 G1 Z-1 U99 .975 ;Executes the chamfer N129 Z-15 ;Executes hole diameter 100 N130 r5 ;Executes radius R = 5 N131 U60 ;Executes counter boring N132 r-3 ;Executes radius R = 3 N133 Z-40 U40 ;Executes taper N134 G40 Z-44 ;Continues Z axis travel N135 G U35 N136 Z100 M5 N137 G16 X Y N138 (UAO,1)
2-28 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
The direction of the arcs programmed with G02/G03 or with the r address and the direction for cutter diameter compensation (G41/G42) can be determined by looking at the profile on the Z-U plane. Since negative diameters are usually not programmed, you must consider only the first two quadrants of the plane.
10 Series CNC Programming Manual 2-29
Chapter 2
Programming the Axes
UDA - Dual Axes
(UDA,master1/slave1[,master2/slave2,master3/slave3,master4/slave4]) (UDA)
It is possible to treat one or more axes as slaves or subordinate to another defined as the master. In this way only the movements of the Master need be programmed as the movement of the slaves is determined by those of the Master to which they are associated and by whether or not reverse mirror movement has been applied.
Syntax
where: master1. . . master4 Are the master axis names (one ASCII character per axis). You can
program up to 6 master axes.
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer (if programmed by ID) Slaves programmed by ID can refer to axes not belonging to the
activeprocess, therefore they can be logical axes or axes belonging to other processes, but shared with the logics.You can program up to 8 slave axes per master, 6 of which do not belong to the process.
no parameters (UDA) without parameters disables the dual axes mode (UDA)
Characteristics: Dual axes management does not require any special setting in the system with AMP.
After an (UDA...) command, the positive operating limit is the minimum between the positive limit of the master axis and the current position of the master plus the distance that may be covered by the slave axis. In short:
PositiveLim = min(Master PositiveLim, MasterPosition + Slave PositiveLim - SlavePosition)
In the case of a "mirror", the distance that may be covered by the slave refers to its negative limit, so it will be:
PositiveLim = min(Master PositiveLim, MasterPosition - Slave NegativeLim + SlavePosition)
2-30 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
IMPORTANT
To mirror the slave axis movement, you must program the - operator before the axis name. This rule does not apply to master axes.
The considerations made for the positive limit also apply to the negative limit:
NegativeLim = max(Master NegativeLim, MasterPosition + Slave NegativeLim - SlavePosition)
In the case of a mirror, it will be:
NegativeLim = max(Master NegativeLim, MasterPosition - Slave PositiveLim + SlavePosition)
When the (UDA...) command is executed, reference must be made both to the master axis and the slave axes.
(UDA...) command programming resets all previous UDA or SDA updating the last Master/Slave association programmed.
The RESET command does not cancel the association between the master and slave axes. Dual axes may be used on rotated planes or in polar or cylindrical coordinates (UVP, UVC). Dual axes, whether master or slave, must be defined on real axes and not virtual axes.
NOTE:
The names of masters and slaves must be separated by a / (slash).
Example: (UDA,X/-U) U is slaved and mirrored to X
(UDA, A/B - CD) B, C, D are slaved to A and C is mirrored to A (UDA,X/AB/-14) A, B are slaved to X and axis 14 is mirrored to X.
10 Series CNC Programming Manual 2-31
Chapter 2
Programming the Axes
SDA - Special Dual Axes
(SDA,master1/slave1[,master2/slave2,master3/slave3,master4/slave4]) (SDA)
It is possible to treat one or more axes as slaves or subordinate to another defined as the master. In this way only the movements of the Master need be programmed as the movement of the slaves is determined by those of the Master to which they are associated and by whether or not reverse mirror movement has been applied. The movement of the master and slave axes can occur even if the axes are not referenced.
Syntax
where: master1. . . master4 Are the master axis names (one ASCII character per axis). You can
program up to 4 master axes.
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer if programmed by ID Slaves programmed by ID can refer to axes not belonging to the active
process, therefore they can be logical axes or axes belonging to other processes, but shared with the logics.You can program up to 8 slave axes
per master, 6 of which do not belong to the process. no parameters (SDA) without parameters disables the special dual axes mode (SDA) Characteristics: After an (SDA...) command, the positive operating limit is the minimum between the positive limit of the
master axis and the current position of the master plus the distance that may be covered by the slave axis. In short:
PositiveLim = min(Master PositiveLim, MasterPosition + Slave PositiveLim - SlavePosition)
In the case of a "mirror", the distance that may be covered by the slave refers to its negative limit, so it will be:
PositiveLim = min(Master PositiveLim, MasterPosition - Slave NegativeLim + SlavePosition) The considerations made for the positive limit also apply to the negative limit:
NegativeLim = max(Master NegativeLim, MasterPosition + Slave NegativeLim - SlavePosition)
2-32 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
IMPORTANT
To mirror the slave axis movement, you must program the - operator before the axis name. This rule does not apply to master axes.
In the case of a mirror, it will be:
NegativeLim = max(Master NegativeLim, MasterPosition - Slave PositiveLim + SlavePosition)
Upon activating the (SDA,...) command the master and the slaves need not be referenced. (UDA,...) programming resets all previous UDA or SDA, updating the last Master/Slave association
programmed. The RESET command does not remove the master/slave association. This allows one to perform the zero point micro-search cycle with dual movement active. In this
case performing the zero point micro-search cycle, the system simultaneously moves the associated slaves. At the end of the search the master axis is referenced where as the slave axes are not. In order to reference the slave axes they should be exchanged, one by one, with the master axis by new SDA programming and the zero point micro-search cycle repeated for each one of them, redefined as the master. The initialisation of the slaves is not however necessary if one intends to program only the master with SDA active.
The use of the SDA function is recommended in cases where a zero point micro-search cycle is to be performed following a shutdown of the system with the work still on the work-bench.
NOTE:
The names of masters and slaves must be separated by a / (slash).
Example: (SDA,X/-U) U is slaved and mirrored to X (SDA, A/B - CD) B, C, D are slaved to A and C is mirrored to A
(SDA,X/AB/-14) A,B are slaved to X, and axis 14 is mirrored to X
10 Series CNC Programming Manual 2-33
Chapter 2
Programming the Axes
XDA - Master/Slave axes
0
The slave follows the master point by point
1
The slave follows the master in terms of speed
2
The slave follows the master in terms of position
3
The slave follows the master in terms of position, and the synchronisation distance is taken up
One or more axes can be used as “slave” axes, i.e. subordinate to another axis, defined as “master”. In this manner, you only need to program the movements of the master, since the
movements of the slaves are determined by the master they are associated with and by a following factor, which is defined specifically for each individual slave. Commands of different types can be imparted with this feature, each of them having a specific syntax.
Master/Slave Association
This instruction defines the association between a master axis and its slaves (up to 8 axes). It does NOT activate the following function, whose activation is by means of a specific command. This
means that after this instruction a movement of the master does not bring about a movement of the slave(s). After this instruction and until the slave is released from the master, slave
movements cannot be programmed.
Syntax
(XDA, 1, master/slave1[slave2[..]], mode, ratio, space)
where: master Is the name of the master axis and is denoted by a single ASCII character.
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer if programmed by ID Slaves programmed by ID can refer to axes not belonging to the process,
therefore they can be logical axes or axes belonging to other processes,
but shared with the logics.You can program up to 8 slave axes per
master, 6 of which do not belong to the process. mode Defines the master axis following mode used by the slave(s). It can be:
ratio This is the master following ratio specified for the slave(s). It must be
viewed as a multiplication factor for the feedrate of the master or the distance covered by it. If the value of this ratio is 1.0, the motion of the
2-34 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
master is reproduced exactly by the slave; if it is smaller than 1.0, feedrate/distance are reduced, if it is greater than 1.0 they are increased. This value can be preceded by a sign.
distance This is the distance to be covered by the slave to synchronise with the
motion of the master.
Characteristics:
The master axis can identify either an axis present in the process where the XDA command is activated or an axis which is not present. In the latter case, it will be created a “virtual” axis with the name specified. This axis will have the dynamic characteristics taken from the slave axes (the lowest values of feed rate, accelerations and jerk). It could be either part of a virtualization (UPR, UDA,…) or of a TCP. Homing cannot be executed on master axis.
At least one slave axis must be present in the process activating the XDA command; it can be a SHARED axis, i.e. an axis shared with the machine logic. It means the axis may continue to be moved by the logic machine even after the association with the master, however it cannot be moved while following the master. It cannot be part of any virtualisation or TCP.
RESET deletes the Master/Slave association
Let’s examine the various following modes available:
10 Series CNC Programming Manual 2-35
Chapter 2
Programming the Axes
V master
V
t
V slave
Activation = Synchronisation
t 0
Mode 0
In this mode, the slave axis follows the master proportionately to the value of the ratio (if the ratio = 1, the slave reproduces the movement of the master axis exactly), synchronisation is instantaneous and the variation in the feedrate of the slave is “in steps. Slave position and feedrate values are calculated, instant by instant, according to the following formulas:
Vslave = Vmaster * FollowRate
PosSlave = PosSlavet0 + (PosMaster – PosMaster
) * FollowRate
t0
If the speed specified for the slave axis as a result of the following command exceeds the maximum admissible value for this axis, the system will reduce the feedrate requested accordingly and will give out an emergency (servo error) message, in that the slave is unable to follow the required position.
2-36 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
V master
V
t
V slave
Activation t 0
Synchronisation
t 1
V master
t
V slave
Activation
t 0
Distance
Synchronisation
t 1
Mode 1
In this mode, the slave follows the feedrate of the master proportionately to the value of the ratio (if the ratio = 1, the slave copies the movement of the master axis exactly); the synchronisation depends on the dynamic characteristics of the slave axis and/or the distance parameter which defines the synchronisation distance.
If the distance value = 0, the slave will synchronise with the master based on its maximum acceleration and using linear ramps only.
If the value is not 0, the slave will synchronise with the master based on an acceleration calculated as a function of the synchronisation distance and using linear ramps only. The acceleration will be calculated again with each sampling process based on the following formula
Aslave = ((Vmaster * FollowRate)2 + Vslave 2 ) / 2 * Distance
where the value of the distance is gradually reduced based on the distance covered during the synchronisation stage. No check is made on the ensuing acceleration value, and therefore servo errors may arise if the acceleration exceeds the maximum value that can be withstood by the axis.
10 Series CNC Programming Manual 2-37
Chapter 2
Programming the Axes
V master
V
t
V slave
Activation t 0
Synchronisation
t 1
Once the synchronisation with the master has taken place, the slave will move according to this formula:
Vslave = Vmaster * FollowRate
The feedrate (Vslave) determined in this manner is “theoretical”, since it is necessary to determine whether this request is compatible with the dynamic characteristics of the axis (maximum feedrate and maximum acceleration). The moment the feedrate of the master varies, the slave will follow this variation based on its acceleration value. If the feedrate requested of the slave exceeds its maximum admissible feedrate, the system will reduce the feedrate requested accordingly. Hence, the feedrate and acceleration values with which the slave has to be moved, Vslave i and Aslave i, will be determined instant by instant. The position of the slave will therefore be calculated on the basis of these values:
PosSlave
= PosSlave
tn+1
+ Vslave i + Aslave i
tn
Mode 2
In this mode, the slave follows the position of the master proportionately to the value of the ratio (if the ratio = 1 the slave reproduces exactly the movement of the master); synchronisation depends on the dynamic characteristics of the slave axis and/or the distance parameter which defines the synchronisation distance.
If the distance value is 0, the slave will synchronise with the master based on its maximum acceleration and using linear ramps only.
2-38 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
V master t
V slave
Activation t 0
Distance
Synchronisation
t 1
If the value of distance is not 0, the slave axis will synchronise with the master axis based on an acceleration calculated as a function of the synchronisation distance and using linear ramps only. The acceleration value will be calculated again with each sampling step according to this formula
Aslave = ((Vmaster * FollowRate)2 + Vslave 2 ) / 2 * Distance
where the value of the distance is gradually reduced based on the distance covered during the synchronisation stage. No check is made on the ensuing acceleration value and therefore servo error messages may be generated the moment the acceleration exceeds the maximum value that the axis can withstand.
Once the synchronisation with the master axis has occurred, the slave will move according to the following formulas:
PosSlave = PosSlavet1 + (PosMaster – PosMaster
) * FollowRate
t1
Vslave = Vmaster * FollowRate
The position, PosSlave, and the feedrate, Vslave, determined in this manner should be rated as
“theoretical” values, since it is necessary to determine whether the values requested are compatible with the dynamic characteristics of the axis (Maximum feedrate and maximum acceleration). The moment the feedrate of the master varies, the slave will follow this variation according to its own acceleration value. If the feedrate requested for the slave exceeds the maximum value admissible for this axis, the system will reduce the feedrate accordingly. To this end, the two values with which to move the slave, Vslave i and Aslave i will be calculated instant by instant. The actual position of the slave axis will therefore be calculated on the basis of these values:
PosSlave
= PosSlave
tn+1
+ Vslave i + Aslave i
tn
The difference between the actual and the theoretical position of the axis is taken up by the slave during its motion (even when the master has stopped moving) by moving, to the extent feasible, at a rate higher than the theoretical value (Vslave).
10 Series CNC Programming Manual 2-39
Chapter 2
Programming the Axes
V master t
V slave
Activation = Synchronisation
t 0
Distance lost during acceleration stage
Distance recovered after synchronisation with Master
Mode 3
In this mode, the slave follows the position and feedrate of the master proportionately to the value of the ratio (if the ratio = 1, the slave reproduces exactly the movement of the master); synchronisation depends on the dynamic characteristics of the slave.
During the entire movement of the slave (i.e. both during and after the synchronisation stage), the motion of the axis is according to the following formulas (always using linear ramps):
PosSlave = PosSlaveto + (PosMaster – PosMaster
) * FollowRate
t0
Vslave = Vmaster * FollowRate
The position (PosSlave) and the feedrate (Vslave) determined in this manner should be rated as
“theoretical” values, in that it is necessary to determine whether these requests are compatible with
the dynamic characteristics of the axis (max admissible feedrate and max admissible acceleration). The moment the feedrate of the master varies, the slave follows the variation according to its own acceleration value. If the feedrate requested of the slave is higher than its maximum admissible feedrate, the system reduces the feedrate requested accordingly. To this end, the two values with which the axis is to be moved (Vslave i and Aslave i) will be calculated instant by instant. The actual position of the slave will therefore be calculated on the basis of these values:
PosSlave
= PosSlave
tn+1
+ Vslave i + Aslave i
tn
The difference between the actual and the theoretical position of the axis is taken up by the slave during its motion (even when the master has stopped moving) by moving, to the extent feasible, at a rate higher than the theoretical value (Vslave).
2-40 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Releasing the Slave(s) from the Master
This instruction removes the association between the master and the slave(s). Following this instruction it will be possible to program any movement of the slave axis.
Syntax
(XDA)
10 Series CNC Programming Manual 2-41
Chapter 2
Programming the Axes
Defining/Changing the following ratio
This instruction defines/changes the parameter that determines the ratio according to which the master is followed by the slave(s) concerned.
Syntax
(XDA, 2, slave1[slave2[..]], ratio) (xda, 2, slave1[slave2[..]], ratio)
where:
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer if programmed by ID Slaves programmed by ID can refer to axes not belonging to the process,
therefore they can be logical axes or axes belonging to other processes,
but shared with the logics.Up to 8 slave axes per master can be
programmed, 6 of which do not belong to the process. ratio This is the master following ratio specified for the slave(s). It must be
viewed as a multiplication factor for the feedrate of the master or the distance covered by it. If the value of this ratio is 1.0, the motion of the master is reproduced exactly by the slave; if it is smaller than 1.0, feedrate/distance are reduced, if it is greater than 1.0 they are increased. This value can be preceded by a sign.
Characteristics:
The command can be used both when a slave is already following the master axis (it then brings about the release of the slave from the master and activates a new synchronisation stage using the new following parameter) and when the following function is not active (the command activates the following value to be used in the next movement stage).
If the uppercase syntax is used, the movement is stopped and the continuous command underway, if any, is terminated. If the lowercase syntax is used, instead, a continuous mode command is given out; at any rate, the axes are stopped at zero speed and after that are restarted immediately. If you do not want the movement to stop, this can be accomplished by having the machine logic execute a similar command.
2-42 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Activating the following function
The following of the Master axis by the slave(s) is immediately activated. The following modality is defined by the “mode” parameter contained in the master/slave association command.
Syntax
(XDA, 3, slave1[slave2[..]]) (xda, 3, slave1[slave2[..]])
where:
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer if programmed by ID Slaves programmed by ID can refer to axes not belonging to the process,
therefore they can be logical axes or axes belonging to other processes, but shared with the logics.You can program up to 8 slave axes per master, 6 of which do not belong to the process.
Characteristics:
If the uppercase syntax is used, the movement is stopped and the continuous command underway, if any, is terminated. If the lowercase syntax is used, instead, a continuous mode command is given out; at any rate, the axes are stopped at zero speed and are restarted immediately. If you do not want the movement to stop, this can be accomplished by having the machine logic execute a similar command.
10 Series CNC Programming Manual 2-43
Chapter 2
Programming the Axes
Deactivating the following function
The following of the Master axis by the slave(s) is immediately deactivated. The release modality is defined by the “mode” parameter contained in the master/slave association command.
Syntax
(XDA, 4, slave1[slave2[..]]) (xda, 4, slave1[slave2[..]])
where:
slave1. . . slave8 Are the slave axes names and each of them can be:
- one ASCII character, if the axes is programmed by name
- an integer if programmed by ID Slaves programmed by ID can refer to axes not belonging to the process,
therefore they can be logical axes or axes belonging to other processes,
but shared with the logics.You can program up to 8 slave axes per
master, 6 of which do not belong to the process.
Characteristics:
The slave axis remains associated with the master, it just does not follow it any longer. Depending
on the “mode” parameter defined in the master/slave association command, either of the following
will occur:
0 The slave changes abruptly from the current feedrate to zero. others The slave comes to a halt according to its deceleration ramp.
If uppercase syntax is used, the movement is stopped and the continuous command underway, if any, is terminated. If lowercase syntax is used, instead, a continuous mode command is given out; at any rate, the axes are stopped at zero speed and are then restarted immediately. If you do not want the movement to stop, this can be accomplished by having the machine logic execute a similar command.
Example:
N10 (XDA,1,X/ZA,3,0.8,0.0) Activates master X and slaves Z and A N20 (XDA,3,ZA) Activates following function by A and Z N30 G1X100F2000 N40 X300 N50 (xda,4,Z) Deactivates following function by Z in continuous mode N60 X400 N70 X500 N80 (xda,4,A) Deactivates following function by A in continuous mode
2-44 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
N90 X660 N100 X700 N110 (xda,3,ZA) Reactivates following function by A and Z in continuous mode N120 GX0 N130 (XDA) Removes association of slaves Z and A with master X N140 GX
Example 2:
Let’s set XYZAB axes as namely 1 2 3 4 5 IDs and two logic axes point-to-to-point a b having ID as 14 and 20
N10 (XDA,1,X/14A/20,3,0.8,0.0) Activates master X and process slave A and logic a b N20 (XDA,3,A/14/20) Activates following function for A, a and b N30 G1X100F2000 N40 X300 N50 (xda,4,/20) Deactivates b following function in continuous mode N60 X400 N70 X500 N80 (xda,4,A) Deactivates A following function in continuous mode N90 X660 N100 X700 N110 (xda,3,/14A) Reactivates following function by a and A in continuous
mode N120 GX0 N130 (XDA) Releases association between slaves Z and A with master X N140 GX
10 Series CNC Programming Manual 2-45
Chapter 2
Programming the Axes
AXF – Definition of axes with dynamic following function
WARNING
Rotary axes move according to the dynamic parameters configured for them. If the speed programmed for the profile exceeds maximum admissible speed, the axes cannot work properly (Servo Error). In this case, reduce the set speed.
With this command it is possible to define the axes to be managed separately from the others from the dynamic standpoint. The axes defined in the following triliteral describe the programmed geometry, but move independently of the other process axes.
Syntax
(AXF, axle names)
(AXF)
where: axle names Is a nominal list of the axes to which you want the following algorithm to be applied.
The triliteral without parameters disables the .
Characteristics The axes to which the dynamic following algorithm is applied are interpolated separately from the
others, since with this triliteral two different interpolators are created: one for normal axes and one for the axes that follow.
The effect obtained is to prevent speed on the profile dropping to zero at the points where such axes start or end their movement, thereby making the entire process smoother, as shown in the example.
The axes that follow still have to be programmed. This command is activated only if there is at least one axis to which the algorithm is not applied. Each time the triliteral is programmed, any earlier following axis configuration is disabled.
2-46 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
(AXF,B)
After this command, the B axis is enabled to follow dynamically all the other axes of the process
G16XY G1 X100 YZAB F5000 G3 X150 Y50 I100 J50 B90 G1 Y150
A rounded corner is programmed, which becomes part of the movement of the rotary axis:
without the AXF command, the linear axes, at the start
and end of the radius, come to a halt, as axis B is added in the interpolation
with the AXF command, the movement of B starts and
ends on the radius but does not limit the dynamics of the linear axes: the speed on the profile does not drop to 0
(AXF)
After this command, rotary axis B is interpolated again together with the other process axes
t t V
V
on profile
on B axis
on profile
on B axis
radius
Example:
Given a process with 3 linear axes (XYZ) and 1 rotary axis (B), let us assume that the process is programmed as described below:
The chart shows the evolution of speed on the profile and the B axis, respectively, for the two cases described above.
10 Series CNC Programming Manual 2-47
Chapter 2
Programming the Axes
ACCESSING AXIS/DRIVE PARAMETERS
Commands in this class allow to read/write both on CNC parameters related to axis configuration and on parameters related to the axis drive.
COMMAND FUNCTION
CPA Executes the read/write of a CNC parameter related to an axis CPD Executes the read/write of a drive parameter related to the axis
2-48 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
Errore. Il segnalibro non è definito.
CPA – Read/Write of a CNC parameter related to an axis
This instruction executes the read/write of an axis parameter. The majority of them matches the related configuration field in AMP, the others are additional parameters.
Syntax
(CPA, mode, axis, parameter, value)
where: mode How to access the parameter:
R = reading, in this mode the value has to be a numeric variable
otherwise a format error is displayed
W = writing, in this mode value field can be either a number or a
numerical value
axis Identifies the axis number or the axis name, If axis is a name (alphabetical character) it
has to be part of the running process otherwise system displays a format error.
parameter This is the numerical code identifying axis parameter. The majority of them matches in
AMP with the related field (see the following parameters list table).
value Can be either the numerical value tgo erite or the real variable in which memorizing the
data read.
Charachteristics: The change of parameter by the part program is active only from the line following the
programming. The change is temporary as it doesn’t require an AMP database update. When CNC restarts, the
AMP set values are restored. RESET does not restore the original value of a changed parameter. Parameters can be changed by the SLAVE MONITOR and by using analog machine logic
functions. CPA data function format matches the format in AMP.
10 Series CNC Programming Manual 2-49
Chapter 2
Programming the Axes
Parameter
code
AMP field
read/write
(R/W)
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
AXIS_TYPE DIAMETRAL ROLLOVER DIGITAL_AXIS LINEAR_OPTICAL_ENCODER CHANNEL_A_POLARITY_INV CHANNEL_B_POLARITY_INV CHANNEL_Z_POLARITY_INV DIRECTION_COUNT MARKER_DETECTION RAPID_TRAVERSE_FEED RAPID_ACCELERATION MANUAL_FEED MANUAL_ACCELERATION RAPID_JERK WORKING_JERK ELECTRICAL_PITCH MECHANICAL_PITCH ROLLOVER_PITCH RAPID_TRAVERSE_VOLTAGE MAXIMUM_FEED HOME_POSITION_FEED NULL_OFFSET_VALUE HOME_POSITION_VALUE HOMING_DIRECTION PERCENT_OF_VFF UPPER_SW_OVERTRAVEL LOWER_SW_OVERTRAVEL SERVO_LOOP_GAIN STAND_STILL_LOOP_GAIN POS_ERROR_STAND_STILL POS_ERROR_WITH_VFF POS_ERROR_WITHOUT_VFF IN_POSITION_BAND IN_POSITION_WAIT IN_POSITION_WINDOW AXIS_BACKLASH DEAD_ZONE DRIVER_ADDRESS HOMING_TYPE ADDITIONAL_SERVICE MOTOR_TRANSDUCER PROBING_CONFIGURATION SPINDLE_ZERO_OFFSET SPINDLE_WITH_RAMPS MAX_SPIN_REV_TIME SPIN_REV_TIME_GEAR SPIN_CSS_MASTER SPIN_ORIENT_SPEED
R R R
R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
R R/W R/W
R R/W R/W R/W R/W R/W R/W R/W
Some parameters can’t be changed (for example the axis type); for each of them the access mode
is itemized: R (read only) and R/W (read/write).Below the parameters table (for more details see AMP manual).
2-50 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
SPIN_ORIENT_ACCEL SPIN_SPEED_STOP_THRESH SPINDLE_SPEED_GEAR1 SPINDLE_SPEED_GEAR2 SPINDLE_SPEED_GEAR3 SPINDLE_SPEED_GEAR4 SPINDLE_VOLTAGE_GEAR1 SPINDLE_VOLTAGE_GEAR2 SPINDLE_VOLTAGE_GEAR3 SPINDLE_VOLTAGE_GEAR4 SPINDLE_GAIN_GEAR1 SPINDLE_GAIN_GEAR2 SPINDLE_GAIN_GEAR3 SPINDLE_GAIN_GEAR4 OFFSET_BETWEEN_MARKERS SKEW_ERROR_MIN SKEW_ERROR_MAX SKEW_GAIN
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
Parameter
code
Other parameters
read/write
(R/W)
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
DRIVE STATUSW OS3 DRIVE WARNINGS OSWIRE AXIS IOSTAT ACTUAL MICRO-MARKER_DIST MAXIMUM MICRO-MARKER DIST PROCESS NUMBER AXIS SHARING TRANSDUCER CONFIG ACTIVE GEAR NUMBER ZEROSHIFT1 ZEROSHIFT2 AXIS BACKLASH TIME TRANSDUCER ID CONVERTER ID BROKEN WIRE TIME RAPID_TMINRAMP WORKING_TMINRAMP VEL_RIALLIN_SPLITAXIS LAST_DRIVE_ALARM LAST_DRIVE_WARNING MIN_AX_POSITION
R
R R/W
R R/W
R
R R/W
R R/W R/W R/W
R
R R/W R/W R/W R/W
R
R R/W
Below the additional parameters table
For more details on how to use all the parameters,please refer to the AX_WPAR machine logic
function presented in “PLUS Library” and WinPLUS Library” manuals.
10 Series CNC Programming Manual 2-51
Chapter 2
Programming the Axes
EXAMPLE 1:
Let’s say you want to change the rapid acceleration parameter in AMP (RAPID_ACCELERATION) writing 2500 mm/sec2 for the Y axis (as 2) in the running process. The following commands are equivalent:
(CPA, W, E0, E1, E2) con E0 = 2, E1 = 12 e E2 = 2500 (CPA, W, 2, 12 , E2) (CPA, W, Y, 12 , 2500)
2-52 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
CPD – Drive Parameter Read/Write
value Can be the numerical value to be written or the real variable in which memorizing the data format
For drives having OS-Wire or D.S.I, interfaces, the field is not important, Let’s set value 0.
For drives with Mechatrolink™ interface, let’s set as follow:
bit 0
(parameter dimension)
= 0 parameter on 2 bytes (word) = 1 parameter on 4 bytes (long)
bit 1
(access)
= 0 access in RAM = 1 access in EEPROM
CPD instruction executes the read/write of a drive parameter related to a digital axis.
Syntax
(CPD, mode, axis, parameter, value, format)
where: mode How to access the drive parameter:
R = reading, in this mode the value has to be a numeric variable
otherwise a format error appears
W = writing, in this mode value field can be either a number or a
numerical value
axis Identifies the axis number or the axis name, If the axis is a name (alphabetical
character) it has to be part of the running process otherwise system reports a format error.
parameter This is the numeric code identifying the axis parameter. The majority of them matches
in AMP with the related field (see the following parameter list table).
10 Series CNC Programming Manual 2-53
Chapter 2
Programming the Axes
EXAMPLE 1:
Let’s say you want to read the speed loop proportional gain parameter (cod. param. = 5004) set for Z axis (id = 3) on a OS-WIRE drive. Commands below are equivalent:
(CPD, R, E0, E1, E2, E3) con E0 = 3, E1 = 5004 e E3 = 0 (CPD, R, 3, 5004, E2, 0) otherwise, using the command: (CPD, R, 3, 5004, 2.5, 0) -> system identifies format error as the destination variable is not
specified.
2-54 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
G CODE
FUNCTION
G04
Dwell at end of step
G09
Deceleration at end of step
G16
Define interpolation plane
G17
Circular interpolation and cutter diameter compensation on XY plane
G18
Circular interpolation and cutter diameter compensation on ZX plane
G19
Circular interpolation and cutter diameter compensation on YZ plane
G27
Continuous movement with automatic velocity reduction on bevel
G28
Continuous movement without automatic velocity reduction on bevel
G29
Point-to-point movements
G70
Programming in inches
G71
Programming in millimetres
G79
Programming referred to axes home switch
G90
Absolute programming
G91
Incremental programming
G92
Axis presetting
G93
Inverse time (V/D) feedrate programming mode
G94
Feedrate programming in ipm or mmpm
G95
Feedrate programming in ipr or mmpr
ORIGINS AND COORDINATE CONTROL CODES
The functions in this class perform the following operations:
NOTE:
The planes specified in G17, G18, G19 are valid if they have been configured in the following sequence: X, Y and Z.
10 Series CNC Programming Manual 2-55
Chapter 2
Programming the Axes
G17 G18 G19 - Selecting the Interpolation Plane
G17 G18
G19
These G codes are used for defining the interpolation plane as described below: G17 Active interpolation plane formed by axes 1 and 2 (XY). G18 Active interpolation plane formed by axes 3 and 1 (ZX). G19 Active interpolation plane formed by axes 2 and 3 (YZ). Axes 1 (X), 2 (Y), and 3 (Z) are the first three axes declared in the AMP environment. Syntax
The syntax for each function is simply the G code by itself in one block without parameters or other pieces of information.
2-56 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
G16 - Defining the Interpolation Plane
G16 axis1 axis2
Like G17, G18, and G19, G16 defines the abscissa and the ordinate of the interpolation plane but is not linked to the first and second configured axes.
Syntax
where: axis1 Is the name of the abscissa of the interpolation plane (typically X). It must be one of
the configured axes in the system.
axis2 Is the name of the ordinate of the interpolation plane (typically Y). It must be one of the
configured axes in the system. Characteristics: G16, G17, G18, G19 cannot be used if the following G codes are active:
Cutter diameter compensation (G41-G42) Standard canned cycles (G81-G89)
Example: G16 X A specifies the interpolation plane formed by axes X and A .
10 Series CNC Programming Manual 2-57
Chapter 2
Programming the Axes
G27 G28 G29 - Defining the Dynamic Mode
G27 [G-codes] [operands]
G28 [G-codes] [operands]
G29 [G-codes] [operands]
The G functions in this class define how the axis moves on the profile and positions at profile end. These codes are always accepted by the control.
G27 Specifies a continuous move with automatic velocity reduction on bevels. At the
end of each element velocity is automatically calculated by the control and optimised according to the profile shape. This calculation is based on DLA, MDA and VEF values.
G28 Specifies a continuous move without automatic velocity reduction on bevels. At
the end of each element the velocity on the profile is equal to the programmed feedrate.
G29 Specifies a point-to-point move that is independent from the programmed path
function (G01-G02-G03). At the end of each element the velocity on the profile is 0.
Syntax
where: G-codes Other G codes that are compatible with G27, G28 and G29 (See "Compatible G
codes" table in Chapter 1).
operands Any operand or code that can be used in a G function block.
2-58 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
1
2
3
1
2
3
1
2
3
G29
G28
G27 FEED
BLOCKS
BLOCKS
BLOCKS
Characteristics: The following diagram shows how G27, G28 and G29 operate when the programmed feedrate is
constant throughout the profile.
10 Series CNC Programming Manual 2-59
Chapter 2
Programming the Axes
123
123
123
BLOCKS
BLOCKS
BLOCKS
G29
G28
G27
1)
Acceleration
2)
Uniform move at programmed feedrate
3)
Decelerated motion
The following diagram shows how G27, G28 and G29 operate when the programmed feedrate varies through the profile.
In each block the move is divided into three steps:
G27 and G28 differ only in the step with decelerated motion. Positioning at the machining rate (G1, G2, G3) is available in continuous mode (G27, G28 and G29) whereas rapid positioning (G0) is always point to point, i.e. with deceleration down to null velocity and accurate positioning regardless of the system status.
With G27-G28 (continuous mode) the control explores and executes the profile as if it were a single block. For this reason, auxiliary functions M, S and T are not allowed within the profile executed in G27-G28.
Continuous mode can be temporarily closed by a G00 move that is still part of the profile. The allowed M, S and T functions may therefore be programmed in a block following G00.
NOTE:
The G code that has been configured in AMP (typically G27) is automatically selected at power-up or after a reset.
2-60 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
IMPORTANT
If G29 were programmed in block N17, continuous mode would stop and subsequent moves in G1-G2-G3 would be performed in point-to-point mode.
Example: This is a contouring example in continuous and point-to-point mode.
Program 1 (continuous mode): (UGS,X,-400,100,Y,-400,100)
N9 (DIS,"MILL DIA. 16") N10 T4.4 M6 S800 1 N11 G X-235 Y-230 M13 N12 Z-10 2 N13 G27 G1 X75 F500 ;Continuous mode starts (G27) 3 N14 Y . 4 N15 G3 X-70.477 Y25.651 I J 5 N16 G1 X-187 Y-295 N17 G Z5 M5 ;Temporary shift to point to point mode N18 (DIS,"MILL DIA. 28") ;for spindle stop, tool change and S functions N19 T5.5 M6 S1200 N20 X.. Y.. M13 N21 Z-.. N22 G1 X.. Y.. ;Continuous mode restarts
10 Series CNC Programming Manual 2-61
Chapter 2
Programming the Axes
IMPORTANT
By programming point-to-point with G29 in block N11, M and S functions have been included in the profile (blocks N13 and N14). The dwell at the end of the element (block N17), however, can also be programmed in continuous mode.
Program 2 (point-to-point mode): (UGS,X,-400,100,Y,-400,100)
N9 (DIS, "MILL DIA. 16") N10 T4.4 M6 S800 1 N11 G29 G X-235 Y-230 M13 ;Point-to-point operation starts N12 Z-10 2 N13 G1 X75 F500 M5 ;Spindle stop 3 N14 Y S1200 M13 ;Spindle CW with coolant 4 N15 G3 X-70.477 Y25.651 I J N16 DWT=2 5 N17 G1 G4 X-187 Y-295 ;Dwell at the end of the element N18 G Z5 M5 N19 (DIS,"MILL DIA. 28") N20 T5.5 M6 S1200 N21 G X.. Y.. M13 N22 Z-.. N23 G1 X.. Y..
2-62 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
IMPORTANT
The look ahead feature (G1 G27) does not handle feedrate override. In fact, at this stage a 100% feedrate is assumed. Higher feedrates may generate SERVO ERRORS.
AUTOMATIC DECELERATION ON BEVELS IN G27 MODE
When G27 mode is active, the control automatically calculates the vector velocity on the bevels (i.e. between two subsequent moves) using a two-step algorithm.
During the first step the vector velocity is calculated with a formula based on profile variations. The variation of the profile is associated to the angle formed by two subsequent moves.
The control compares the actual angle with the MDA value; if the angle is greater, the vector velocity is put to zero as in G29 mode; otherwise, the control calculates for this bevel a velocity that is based on the angle, MDA and VEF values.
The second step of the algorithm, called "look ahead", is optional. It can be enabled or disabled according to the value of the DLA variable.
The "look ahead" step is an optimisation of the first step. In fact, in order to provide a correct stop at the profile end, the calculated vector velocity is re-processed taking into account the total distance to be covered in G27 mode and the acceleration configured for each axis.
10 Series CNC Programming Manual 2-63
Chapter 2
Programming the Axes
DLA - Deceleration Look Ahead
DLA=value
The DLA code enables/disables look ahead calculation in G27 dynamic mode. The control reads the motion blocks that make up the profile and those that follow the block in execution in order to recalculate the exit feedrate for the various blocks. It also calculates the deceleration on the bevels according to the profile. If the profile includes sudden trajectory variations and there are not enough block lengths to ensure appropriate deceleration, it is critical for the system to anticipate these events so that velocities can be adjusted. The number of motion blocks the system can look ahead after the current block can be specified in the characterisation. It ranges from 2 to 64 blocks.
Syntax
where: value can be: 0 disables look ahead
1 enables look ahead
NOTE:
If DLA=1 system block time increases because the control must execute a greater number of calculations for each instruction. This results in greater accuracy.
It is advisable to set DLA=0 when it is clear that the programmed feedrate and the total distance to be covered in continuous mode are such as to provide a good stop at the end of the profile.
With DLA=0 the control will consider only the deviations from the theoretical profile on bevels. Characteristics: The default value of this variable is configurable in AMP.
2-64 10 Series CNC Programming Manual
Chapter 2
Programming the Axes
DYM - Dynamic Mode
DYM=value
The DYM defines the type of algorithm to use for calculating the velocity between one element and the next with G27 active.This code is used in relation to the VEF and MDA variables.
Syntax
where: value It is a numeric value which can be:
0 to use the standard 10 Series formula
1 to use the standard 8600 Series formula 2 to use the 1° alternative 10 Series formula 3 to use the 2° alternative 10 Series formula
+100 enables JERK control and minimum ramp time for circular motions
The standard Series 10 algorithm is based on precise mathematical formulas which assume a linear response from the machine and that the dynamic parameters configured are always applicable under any condition.
The algorithm already present in the 8600 series uses approximate formulas, therefore applying greater restrictions on movement.
The alternative algorithms keep into consideration the dynamic components (acceleration) that the axes can bear when passing from one block to the other. In this way it recalculates the final speed at of the first block in order to pass to the next one without excessive stress on the machine.
It is recommended that you verify the behaviour of both algorithms on the machine and then decide which default algorithm best suits that particular machinery and that particular type of work.
Characteristics
The default value of this variable can be set in AMP. A dynamic analysis, calculating the suitable speed rate and infeed/exit from circular trajectories
(G02/G03), is activated when adding 100 to the DYM variable, This procedure avoids high speeds along the circumference as well as oscillations when entering or escaping a circular motion.
Circle lines speed rate computation is based both on the jerk and on the minimum ramp time related to the axes within the movement. Limitation is based on the circumference radius.
When passing from lines to circumferences (and vice versa) and from a circumference to another, additional speed diminutions are activated in relation to the jerk of the axes involved.
10 Series CNC Programming Manual 2-65
Loading...