Automation systems and integration — Numerical control of machines — Program format and definitions of address words — Part 1: Data format for positioning, line motion and contouring control systems

ISO 6983-1:2009 specifies requirements and makes recommendations for a data format for positioning, line motion and contouring control systems used in the numerical control of machines. ISO 6983-1:2009 helps the co-ordination of system design in order to minimize the variety of program manuscripts required, to promote uniformity of programming techniques, and to foster interchangeability of input programs between numerically controlled machines of the same classification by type, process, function, size and accuracy. It is intended that simple numerically controlled machines be programmed using a simple format, which is systematically extensible for more complex machines. ISO 6983-1:2009 is not intended for use in the specialized cases of numerically controlled flame cutting machines and drafting machines used specifically and exclusively in the shipbuilding industry. In this application, a related format (“the ESSI Format”) is specified in ISO 6582.

Systèmes d'automatisation industrielle et intégration — Commande numérique des machines — Format de programme et définitions des mots adresses — Partie 1: Format des données pour les systèmes de positionnement, de commande paraxiale de mouvement et de contourage

General Information

Status
Published
Publication Date
06-Dec-2009
Current Stage
9093 - International Standard confirmed
Completion Date
04-Jun-2020
Ref Project

Relations

Buy Standard

Standard
ISO 6983-1:2009 - Automation systems and integration -- Numerical control of machines -- Program format and definitions of address words
English language
26 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO
STANDARD 6983-1
Second edition
2009-12-15


Automation systems and integration —
Numerical control of machines —
Program format and definitions of
address words —
Part 1:
Data format for positioning, line motion
and contouring control systems
Systèmes d'automatisation industrielle et intégration — Commande
numérique des machines — Format de programme et définitions des
mots adresses —
Partie 1: Format des données pour les systèmes de positionnement, de
commande paraxiale de mouvement et de contourage





Reference number
ISO 6983-1:2009(E)
©
ISO 2009

---------------------- Page: 1 ----------------------
ISO 6983-1:2009(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.


COPYRIGHT PROTECTED DOCUMENT


©  ISO 2009
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland

ii © ISO 2009 – All rights reserved

---------------------- Page: 2 ----------------------
ISO 6983-1:2009(E)
Contents Page
Foreword .iv
Introduction.v
1 Scope.1
2 Normative references.1
3 Terms and definitions .1
4 Program format.1
5 Format make-up.2
5.1 Data block.2
5.2 Data words .2
5.3 Omitted words .3
6 Words.3
6.1 All words.3
6.2 Address indexing .4
6.3 Dimension words.4
6.4 Non-dimensional words.5
7 Programming methods for interpolation .6
7.1 Principles.6
7.2 Linear interpolation .7
7.3 Circular interpolation .8
7.4 Parabolic interpolation.9
8 Tool length offset and tool offset .11
9 Tool radius (diameter) offset.11
10 Cutter compensation.11
11 Thread cutting.12
12 Constant surface speed.12
13 Dwell .12
14 Reset states .12
14.1 General .12
14.2 Point to point and line motion controls .13
14.3 Contouring controls other than those on lathes.13
14.4 Contouring controls on lathes .13
Annex A (normative) List of characters used from ISO/IEC 646.14
Annex B (normative) General format classification .16
Annex C (normative) Detailed format classification.18
Annex D (normative) Notes for program interchangeability .20
Annex E (normative) Preparatory (G) and miscellaneous (M) function codes.21
Bibliography.26

© ISO 2009 – All rights reserved iii

---------------------- Page: 3 ----------------------
ISO 6983-1:2009(E)
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies
(ISO member bodies). The work of preparing International Standards is normally carried out through ISO
technical committees. Each member body interested in a subject for which a technical committee has been
established has the right to be represented on that committee. International organizations, governmental and
non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the
International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of technical committees is to prepare International Standards. Draft International Standards
adopted by the technical committees are circulated to the member bodies for voting. Publication as an
International Standard requires approval by at least 75 % of the member bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO shall not be held responsible for identifying any or all such patent rights.
ISO 6983-1 was prepared by Technical Committee ISO/TC 184, Automation systems and integration,
Subcommittee SC 1, Physical device control.
This second edition cancels and replaces the first edition (ISO 6983-1:1982), which has been technically
revised.
The following changes have been made to the first edition:
⎯ the content has been restructured in a more logical order;
⎯ the commonly used preparatory (G) and miscellaneous (M) function codes have been grouped in one
standard (see Annex E);
⎯ address indexing has been introduced (see 6.2);
⎯ the equal (=) sign has been added to allow for axis indexing (see 6.2.1);
⎯ new data formats have been specified to existing programming methods: helical interpolation (see 7.3);
dwell time (see Clause 13); thread cutting (see Clause 11).
ISO 6983 consists of the following parts, under the general title Automation systems and integration —
Numerical control of machines — Program format and definitions of address words:
⎯ Part 1: Data format for positioning, line motion and contouring control systems
The following parts are under preparation:
⎯ Part 2: Coding of miscellaneous functions M (class 1 to 8) [Technical Report]
iv © ISO 2009 – All rights reserved

---------------------- Page: 4 ----------------------
ISO 6983-1:2009(E)
Introduction
ISO 6983 describes a word address program format for machine control programs on different data storages,
e.g. perforated tape, magnetic media, universal serial bus (USB) stick, hard disk, floppy disk, random-access
memory (RAM), etc., or provided from a remote data source. ISO 6983 covers variable block format only and
is not intended to specify machine design.
ISO 6983 is intended to specify the program format for the control program to be used for numerical controls
(NC) on machines/machine tools. However, ISO 6983 can also be used for all kinds of geometric
specifications and interactions with machines.
The program format specified by ISO 6983 is commonly referred to as “G code programming” or “ISO
programming”.
Compliance with ISO 6983 does not guarantee interchangeability of machine control programs between
different machines/machine tools. Annex D details some of the additional considerations necessary to ensure
this interchangeability.

© ISO 2009 – All rights reserved v

---------------------- Page: 5 ----------------------
INTERNATIONAL STANDARD ISO 6983-1:2009(E)

Automation systems and integration — Numerical control of
machines — Program format and definitions of address
words —
Part 1:
Data format for positioning, line motion and contouring control
systems
1 Scope
This part of ISO 6983 specifies requirements and makes recommendations for a data format for positioning,
line motion and contouring control systems used in the numerical control of machines. This part of ISO 6983
helps the co-ordination of system design in order to minimize the variety of program manuscripts required, to
promote uniformity of programming techniques, and to foster interchangeability of input programs between
numerically controlled machines of the same classification by type, process, function, size and accuracy. It is
intended that simple numerically controlled machines be programmed using a simple format, which is
systematically extensible for more complex machines.
This part of ISO 6983 is not intended for use in the specialized cases of numerically controlled flame cutting
machines and drafting machines used specifically and exclusively in the shipbuilding industry. In this
application, a related format (“the ESSI Format”) is specified in ISO 6582.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO 2806, Industrial automation systems — Numerical control of machines — Vocabulary
3 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO 2806 apply.
4 Program format
The machine program shall be structured in blocks of data, which contain sets of commands to the control
system. A block shall consist of a number of words each of which is a specific instruction to the control system.
A character designated “end of block” shall terminate every block of data and in addition shall precede the first
block of data.
A “program start” character shall precede all control data including “end of block”. It is recommended that it
should be used as an “absolute rewind stop” character.
© ISO 2009 – All rights reserved 1

---------------------- Page: 6 ----------------------
ISO 6983-1:2009(E)
All alphabetic, numeric and special characters shall conform to Annex A. Those characters required for
reproducing a hard copy of the machine program, listed in Annex A as “non printing characters”, shall be
ignored by the control equipment, with the exception of the LF/NL (end of block) character.
If there is any group of characters that is not to be processed in accordance with this part of ISO 6983, this
group shall be within parenthesis characters (control out – control in). Any such group shall not contain either
“:” or “%” characters. This group may be processed for display purposes, e.g. as instructions to an operator.
Where it is necessary to identify a machine program, this identification should be placed immediately after the
program start character and before the first “end of block” character. If the identification contains alpha
characters, the entire identification should be enclosed with parentheses. Where it is desired to identify a
machine program number word, the program number word should be placed immediately after the first “end of
block” for this identification. If the program number is greater than the system can store or display, the least
significant digits shall be displayed.
It is recommended that the alignment code should be used at all positions in the program at which it is
permissible to start the machine sequence. When used, this code shall be as defined in 6.3. The alignment
function character “:” may be used as an intermediate rewind stop character.
The “/” (slash) character shall be used to provide an “optional block skip” function validated at the option of the
operator. When used, this character shall immediately precede the “sequence number” word.
A general classification of the format shall be used to detail the capabilities of a system and machine
configuration. This is called the general format classification and is defined in Annex B.
A classification of the data in a block shall be used to specify the programming detail for a system and
machine configuration. This is called the detailed format classification and is described in Annex C.
For position values or length values, either metric or inch units of length shall be used.
When a system has the ability to use machine programs which have been prepared in either system of
measurement, preparatory codes shall be used to signify whether the coded data is in metric or inch values.
The mode of control shall be selected by one of the following G codes (preparatory function codes):
⎯ G70 inch data input;
⎯ G71 metric data input.
5 Format make-up
5.1 Data block
A block of data shall consist of the following:
a) the sequence number word;
b) the data word;
Tab characters, which are optional for the tabulation of a printed copy of the data, may be inserted between
words but shall be ignored by the control system.
5.2 Data words
The data words shall be presented in the following sequence and shall be not repeated within one block.
However, existing control systems may permit the repetition of non dimensional words, but it is recommended
for maximum machine program interchangeability that this facility should not be used.
2 © ISO 2009 – All rights reserved

---------------------- Page: 7 ----------------------
ISO 6983-1:2009(E)
The sequence is as follows:
a) the preparatory words “G”;
b) the “dimension” words, which shall be arranged in the following sequence: X, Y, Z, U, V, W, P, Q, R, A, B,
C;
c) the “interpolation or thread cutting lead words” I, J and K, which apply only to a specific group of axes and
shall immediately follow that group; the words shall conform in detail to Clauses 7 or 11;
d) the “feed function” word (or words), which applies to one or more of several axes and shall follow the last
dimension word to which it applies and immediately follow the applicable interpolation parameter words;
the word shall conform in detail to 6.3;
e) the “spindle speed function” word (or words);
f) the “tool function” word (or words);
g) the “miscellaneous function” word (or words).
5.3 Omitted words
Words may be omitted in a specific block of data. This should be understood as meaning that there is no
change in the condition of the machine with respect to the function denoted by the omitted word. Therefore,
the “end of block” character may be used after any complete word. Instructions that are inherently executed in
a single block shall be repeated whenever necessary.
6 Words
6.1 All words
The address character shall be the first in the word and it shall be followed by an algebraic sign, if required,
and then by digital data. The address character shall be in accordance with Annex A.
The implicit position of the decimal sign shall be defined by the detailed format classification (see Annex C).
All control systems shall accept implicit decimal sign programming. Optionally, the decimal sign character may
be recognized.
Implicit decimal sign and explicit decimal sign format shall not be mixed in any machine program.
In the explicit decimal sign format mode, words from which the decimal sign is missing shall be interpreted as
whole numbers. The procedure for recognition of explicit decimal sign format shall be defined in the detailed
format classification (see Annex C).
In order to reduce the amount of data with the implicit decimal sign format, either leading zeros only, or trailing
zeros only, shall be omitted. It is recommended that leading zeros should be omitted.
Zero omission shall be specified in the detailed format classification (see Annex C).
With explicit decimal sign format, both leading zeros before the decimal sign and trailing zeros after the
decimal sign may be omitted.
EXAMPLE 1 X1030 represents a dimension of 1 030 mm in the X-axis.
EXAMPLE 2 X.03 represents a dimension of 0,03 mm in the X-axis.
In either decimal format, a dimension containing only zeros shall be expressed by at least one zero.
© ISO 2009 – All rights reserved 3

---------------------- Page: 8 ----------------------
ISO 6983-1:2009(E)
6.2 Address indexing
6.2.1 Axis indexing
For machine tools with a higher number of axes, the address indexing may be used. This index digit of the
address shall follow directly after the address character. The index shall be an unsigned integer greater zero
(0). The maximum index value is specified in the machine description. Leading zeros may be omitted.
For the separation of the index value and the address value, the equal (=) sign is used.
EXAMPLE G00 X1=123.456 Y1=234 Z2=10.1 F100 S1000.
Indexing of addresses may be mixed with non-indexed addresses if there are addresses which have no
relation to any indexed address.
NOTE This axis indexing is used in ISO 841.
6.2.2 General indexing
For machine tools with a higher number of axes, auxiliary axis, spindles, tool magazines, etc., address
indexing may be used. This index digit of the address shall follow directly after the address character. The
index shall be an unsigned integer greater zero (0). The maximum index value is specified in the machine
description. Leading zeros may be omitted. The indexing of G codes is not intended.
For the separation of the index value and the address value, the equal (=) sign is used.
EXAMPLE G00 X1=123.456 Y1=234 Z1=10.1 F1=100 M1=3 S1=1000.
Indexing of addresses may be mixed with non-indexed addresses if there are addresses which have no
relation to any indexed address.
This indexing can also be used for machine tools with more work groups. This work grouping can be realized
by grouping the axis systems using the address indexing, e.g.:
⎯ X1=, Y1=, Z1=, G1=, M1=, S1=, … in the first axis system (work group 1);
⎯ X2=, Y2=, Z2=, G2=, M2=, S2=, … in the second axis system (work group 2).
6.3 Dimension words
It shall be possible to use both absolute dimension words and incremental (relative) dimension words. The
mode of the control shall be selected by one of the following G codes:
a) G90 Absolute dimension;
b) G91 Incremental dimensions.
All linear dimensions shall be expressed in millimetres or inches and decimal fractions thereof.
Angular dimensions shall be expressed either in degrees and decimal parts thereof, or in revolutions or
decimal parts of a revolution. The use of degrees and decimal parts of a degree is recommended for the
expression of all angular dimensions.
The algebraic sign (+ or −) is part of the dimension word, and shall follow the address character and shall
precede the numerical character. If the sign is omitted, a plus (+) sign shall be assumed. The control system
shall use the negative sign for a negative absolute dimension word and for a negative direction movement
with an incremental word.
4 © ISO 2009 – All rights reserved

---------------------- Page: 9 ----------------------
ISO 6983-1:2009(E)
The resolution of the linear and angular dimensions used in the program shall be defined by the detailed
format classification (see Annex C).
6.4 Non-dimensional words
6.4.1 Sequence number
The number of digits shall be specified by the detailed format classification (see Annex C). If a sequence
number word in a machine program contains more digits than are specified by a particular control equipment,
the least significant digits shall be displayed.
It is recommended that at all positions in the program at which it is permissible to start a machine sequence,
the alignment code should replace the sequence number address character N.
6.4.2 Preparatory function
The preparatory function shall be expressed by the address character G followed by a coded number in
accordance with Annex E.
6.4.3 Feed function
The number of digits shall be designated by the detailed format classification (see Annex C).
Selection of the type of feed function shall be by the following preparatory (G) codes:
a) G93 Inverse time;
b) G94 Feed per minute;
c) G95 Feed per revolution.
It is recommended that when the feed is independent of spindle speed, the digits should represent directly the
vectorial motion in millimetres per minute or inches per minute.
When the feed is dependent on spindle speed, it is recommended that the digits should represent directly the
vectorial motion in millimetres per revolution or inches per revolution.
When the feed is applied to a rotary motion only, it is recommended that the digits should represent directly
the vectorial motion in degrees per minute.
When simultaneous interpolation in both linear and rotary axes are possible, independent of spindle speed,
the rate of vectorial motion may be expressed as a feed command. This feed command shall be the reciprocal
of time in minutes to execute the block and is equivalent to the vector velocity (expressed in millimetres or
inches per minute) divided by the vector distance of the tool path (expressed in millimetres or inches). When
this facility requires a change in the detailed format classification, the revised F word format should be
specified. Alternatively, the feed can be specified by the speed of the vectorial motion along the tool path.
It is recommended that preparatory code G00 should be used for rapid positioning (see Annex E).
As an alternative, if the F word is used for traverse, the code shall be specified in the detailed format
classification and it shall be defined as modal or non-modal.
For any combination of interdependent axes which can be moved simultaneously or sequentially with the
principal axes, the F character shall be used as address for the feed word. An independent axis which can be
moved simultaneously with the principal axes shall use the E character as address for the feed word.
As an alternative to the recommended practice, the feed function may consist of a two-digit code with
increasing arbitrary values of feed rate represented by increasing code number.
© ISO 2009 – All rights reserved 5

---------------------- Page: 10 ----------------------
ISO 6983-1:2009(E)
6.4.4 Spindle function
The number of digits shall be designated by the detailed format classification (see Annex C). Where
necessary, selection of the type of spindle speed function shall be made by the following preparatory (G)
codes:
a) G96 Constant surface speed;
b) G97 Revolutions per minute.
It is recommended that when the digits represent RPM, they shall represent directly the spindle rotation in
revolutions per minute.
When the digits represent surface speed (see Clause 12), the digits shall represent metres per minute or feet
per minute.
As an alternative to the recommended practice, the spindle function may consist of a two-digit code, with
increasing arbitrary values of spindle speed represented by increasing code number.
6.4.5 Tool function
The T word shall be used for tool selection and optionally the same word may select the tool compensation
offset. When tool compensation offset is selected by a different word, the D word is recommended. The T
word, and the D word if used, shall be designated by the detailed format classification (see Annex C).
6.4.6 Miscellaneous function
The miscellaneous function shall be expressed by a coded number in accordance with Annex E.
6.4.7 Parameters
For a flexible programming method, calculations of axis values or setting of parameters for a subroutine are
necessary. The kind of use of these features shall be specified in the manual, i.e.
⎯ which address character is used as parameter: P, Q or R;
⎯ which operations are allowed, e.g. arithmetic, trigonometric, logical;
⎯ which memory addresses are used for the parameters.
In these cases, the parameter index is the memory location of the parameter, and address indexing is
mandatory.
EXAMPLE 1 R11 = 22.2 (The content of parameter R11 is set to 22.2)
EXAMPLE 2 R29 = R9 + R15 (Parameter content addition, result is stored in parameter R29)
EXAMPLE 3 X2 = 105 + R9 (X2-position results of addition of 105 and the content of R9)
7 Programming methods for interpolation
7.1 Principles
Interpolation is performed over a pre-determined portion of a given curve. The portion interpolated is called a
“span” and may be covered by one or more blocks of information. Data necessary to define a “span” shall
obey one or more of the principles below.
a) An appropriate G code shall be used to define the functional nature of the curve, i.e. linear, circular or
parabolic.
6 © ISO 2009 – All rights reserved

---------------------- Page: 11 ----------------------
ISO 6983-1:2009(E)
b) The starting point of each span shall be identical to the end point of the previous span and, therefore, it is
not necessary to repeat this point in the new block. Each subsequent point of the span for which
coordinates are specified shall require a separate block of information and shall use a valid dimension
address, such as X, Y or Z.
c) Interpolation parameters shall be addressed I, J or K and shall be used for defining the geometric
properties of the curve as defined for each interpolation method.
d) In cases where an algebraic sign is required with the interpolation parameter word, it shall follow the
address character and precede the numeric characters. If the sign is omitted, a plus sign shall be
assumed.
7.2 Linear interpolation
A straight line span shall be defined in one block which contains
a) the G function word (if not currently active). G01 linear interpolation;
b) the coordinates of the end point, which shall be expressed as dimension words (see 6.3).
The example in Figure 1 shows the geometric properties of the span and gives an example of the coordinate
values to be programmed.

Using end point (G01XYZF)
Absolute dimensions Incremental dimensions
X = x X = x − x
1 1 0
Y = y Y = y − y
1 1 0
Z = z Z = z − z
1 1 0
Figure 1 — Example of linear interpolation in the XY plane for motion from point P to P
0 1
© ISO 2009 – All rights reserved 7

---------------------- Page: 12 -----------------
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.