Manipulating industrial robots — Intermediate Code for Robots (ICR)

Specifies an intermediate code to be used as a neutral interface between user-oriented robot programming systems and industrial robot control systems and to define the structure of and the access mechanisms to data lists, which contain data accompanying the intermediate code.

Robots manipulateurs industriels — Codification intermédiaire pour robots (ICR)

General Information

Status
Withdrawn
Publication Date
17-May-1995
Withdrawal Date
17-May-1995
Current Stage
9599 - Withdrawal of International Standard
Completion Date
15-Aug-2004
Ref Project

Buy Standard

Technical report
ISO/TR 10562:1995 - Manipulating industrial robots -- Intermediate Code for Robots (ICR)
English language
120 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

TECHNICAL
ISO
REPORT
TR 10562
First edition
1995-05-15
Manipulating industrial robots -
Intermediate Code for Robots (KR)
Robots manipulateurs industriels - Codifica Gon in termkdiaire pour robo ts
KR)
Reference number
ISO/TR 105623 995(E)

---------------------- Page: 1 ----------------------
ISO/TR 10562: 1995(E)
Conte& Page
1
1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Definitions
2
4 Compliance with this Technical Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 Data types
21
7 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Data list definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Annexes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A Robot System state variables
92
B Implementation guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@ National comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
D Code number table of ICR
0 ISO 1995
All rights reserved. Unless otherwise specified, no part of this publication may be
reproduced or utilized in any form or by any means, electronie or mechanical, including
photocopying and microfilm, without permission in writing from the publisher
International Organization for Standardization
Gase postale 56 0 CI-I-121 I Geneve 20 l Switzerland
Printed in S wi tzerland
ii

---------------------- Page: 2 ----------------------
0 ISO ISO/TR 10562: 1995(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. Esch 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,
govemmental 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.
The main task of technical committees is to prepare International Standards. In
exceptional circumstances a technical committee may propose the publication of a
Technical Report of one of the following types:
- type 1, when the required support cannot be obtained for the publication of an
International Standard, despite repeated efforts;
- type 2, when the subject is still under technical development or where for
any other reason there is the future but not immediate possibility of an
agreement on an International Standard;
- type 3, when a technical committee has collected data of a different kind
from that which is normally published as an International Standard (“state of the
art”, for example).
Technical Reports of types 1 and 2 are subject to review within three years of
publication, to decide whether they tan be transformed into International Standards.
Technical Reports of type 3 do not necessarily have to be reviewed until the data they
provide are considered to be no longer valid or useful.
ISOLI’R 10562, which is a Technical Report of type 2, was prepared by Technical
Committee ISO/TC 184, Industrial automation Systems and integration, Subcommittee
SC 2, Robots for manufacturing environment.
This document is being issued in the type 2 Technical Report series of publications
(according to subclause G.4.2.2 of patt 1 of the ISO/IEC Directives, 1992) as a
“prospective Standard for provisional application” in the field of manipulating industrial
robots because there is an urgent need for guidance on how Standards in this field
should be used to meet an identified need.
This document is not to be regarded as an “International Standard”. It is proposed for
provisional application so that information and experience of its use in practice may be
gathered. Comments on the content of this document should be sent to the ISO Central
Secretariat.
A review of this type 2 Technical Report will be carried out not later than two years
after its publication with the Options of: extension for another two years; conversion
into an International Standard; or withdrawal.
Annexes A to D of this Technical Report are for information only.

---------------------- Page: 3 ----------------------
This page intentionaily left blank

---------------------- Page: 4 ----------------------
TECHNICAL REPORT 0 ISO
ISO/TR 10562:1995(E)
Manipulating industrial robots - Intermediate Code for Robots (ICR)
1 Scope
This Technical Report specifies an intermediate code to be used as a neutral interface between user-
oriented robot programming Systems and industrial robot control Systems and to define the structure of
and the access mechanisms to data lists, which contain data accompanying the intermediate Code.
2 Normative references
The following Standards contain provisions which, through reference in this text, constitute provisions of
this Technical Report. At the time of publication, the editions indicated were valid. All Standards are
subject to revision, and Parties to agreements based on this Technical Report are encouraged to
investigate the possibility of applying the most recent editions of the Standards listed below. Members of
IEC and ISO maintain registers of currently valid International Standards.
ISO 8373 : 1994, Manipulating industrial robots - Vocabulary.
ISO 8859-1 : 1987, Information processing - 8-bit Single-byte coded graphic Character sets - Part 1:
Latin alphabet No. 1.
ISOIIEC 9506-3 : 1991, Industrial automation Systems - Manufacturing message specification - Part 3:
Companion Standard for robotics.
1

---------------------- Page: 5 ----------------------
ISWTR 10562: 1995(E) 0 ISO
3 Definitions
For the purposes of this Technical Report, the definitions given in ISO 8373, and the following, apply.
All code and data elements will be represented in accordance with ISO 8859-1 (8-bit Character Set). ICR
is machine or interpreter-oriented instead of user-oriented.
The following words are used in the specialized definition in this Technical Report.
3.1 ICR program: Collection of robot directives and data written in ICR.
3.2 data list: Collection of positions, poses and other data structures written in ICR Codes.
3.3 robot control unit: Controlling device which accepts instruction Codes and sends servo Signals to
each joint of an industrial manipulator.
4 Compliance with this Technical Report
A program code camplies with this Technical Report if it uses only the features of the code that are
defined by this Technical Report and it does not rely on any particular Interpretation of implementation-
dependent features.
The Single Statements of the Technical Report tan be divided into two groups.
The first group (A) contains the Statements whose implementation is independent of the industrial robot
control and the robot type to be controlled.
The second group (B) contains the Statements that are dependent on a specific industrial robot tvne and
robot control.
The group A is divided into 8 compliance levels.
The basic level (level0) of groun A contains:
Memory and data management
Program flow control
Boolean and arithmetic operations
The Statements
CNFGCHAN, OPENCHAN, CLOSECHAN, RESETCHAN, STATCHAN,
DIN and DOUT of the exchange of datastatements
Esch addressing mode except symbolic addressing

---------------------- Page: 6 ----------------------
0 ISO
ISO/TR 10562:1995(E)
As extension of the basic level there are 7 compliance levels, which tan extend the basic level
independent from each other.
-----------------
-----B-m--- -------------v--- -----e---w---
1 Symbolic addressing mode
I
/
----------------- -------a-B---- ---------------- ---w---m---
2 Exchange of data Statements except
CNFGCHAN, OPENCHAN, CLOSECHAN, RESETCHAN, STATCHAN,
DIN and DOUT
-------------------- -------------- --------------
----------
Data list management
I 3
I
--------------------- ----------------
-----w-m----- -----a--
1 4 Sensor functions
I
,~~l--,eb,gg,,s -----a-a-------- functions ------------- ---------- ---------,
---------------------- -----v-v-------
---m-m------- -----e--
6 User specific extensions
I
I
--------------------- ---------------
------------ ----------
7 Future extensions
I
I
------------------- ------a-m----
-------------- ------------
The group B is divided into a kerne1 and an extension.
The kerne1 of grouD B contains:
--------------------
--BW----------- ---B-m------ -m---m-----
ACCEL, VEL, and MOVTIM Statements
JMOVE and LMOVE Statements
CALIB, CURPOS, GOHOME, MOVSTP, MOVCONT, and MOVCANCEL
Statements
Description of end effector facilities
The extension of groun B contains:
---------------------- --------------- ------------
----------
Esch technical specification not contained in the kerne1
Esch move and effector control not contained in the kerne1
Description of robot facilities
An ICR processor is defined by this Technical Report to be “a System or mechanism that
accepts an ICR
code as input and executes ICR code according to the semantics defined by the Standard”. A processor
camplies with the Standard if it satisfies at least the basic level of group A and the kerne1 of group B,
except of those functions of the kerne1 of group B that are explicitly reported by the processor to be not
accepted.
ICR may be represented in two different forms.
In the first form all Operators only consist of ASCII-Character digits. The second form allows mnemonics
to express the Operators. The effect of the following two Statements is exactly the Same:
a> 220,545O;
and
b) 220, ‘MOVEND’;
3

---------------------- Page: 7 ----------------------
ISO/TR 10562:1995(E)
0 ISO
In Statement a) the Operator is a number, while in b) the Operator is in the form of a mnemonic.
Due to this dual representation of ICR-code there are two different kinds of ICR-interpreters. The first
and simpler kind needs numerically represented Operators, while the second kind also allows using
mnemonics. This second kind, called MNEMONICAL-ICR-interpreter, may also be interpreted as a kind
of preprocessor to convert mnemonics into numerical values which are reprocessed by- a simple ICR-
interpreter of the first form.
5 Basic concepts
5.1. Introduction
ISO/TR 10562 is part of a series of international Standards dealing with the requirements of manipulating
industrial robots. Other documents cover such topics as safety, general characteristics, Performance
criteria and related testing methods, terminology, and mechanical interfaces. It is noted that these
Standards are interrelated and also related to other International Standards.
This Technical Report describes a second committee draft for an intermediate code ICR between off-line
programming and different robot control units. There are various levels for the representation of robot
programming languages. ICR allows the interchange of tec hnological and geometrical data between robot
control units also. This does not mean, that other levels of intermediate code are inhibited. This proposal
doesn’t eliminate another intermediate code between ICR and robot control units. Nevertheless, ICR
should be used as a standardized neutral interface between robot programming and robot control units.
Annex A of this Technical Report provides guidance to the robot System state variables, defined in
ISO/IEC 9506-3 “Industrial automation Systems - Manufacturing specification - Part 3: Companion
Standard for robotics”, which are referred to in ICR.
Annex B of this Technical Report provides information on how to use and implement ICR at the
application and how to come from a robot programming language to ICR Code.
A manipulating industrial robot has to perform various tasks. The set of motions and auxiliary function
instructions which define a specific intended task of the robot System is specified by a task program.
A given applic ation is specified in terms of task description, or in terms 0 f program, which is written in a
user-oriented programming language. The Syntax and semantic of this user-oriented high-level
programming language depends on the type of System p rogramming, e.g. declarative programming,
CAD-oriented interactive programming. The program has to be translated into the low level program code
of the robot and then loaded into the robot control unit which will execute it.
According to the number of various robot controllers, and to the evolution of user-oriented high-level
programming Systems, it is necessary to build a bridge between both kinds. of 1 anguages.
Such a gateway is called ICR (Intermediate Code for Robots). Its goal is to s Apport all the features that a
robot control usually performs and all the elements to describe a task.
The ICR code is useable to exchange user programs and data between different robot control units andhr
between any robot programming System and control. The code itself consists of a sequence of records
representing different instructions. Such an instruction may be a data or type definition also, The
instructions include arithmetic and Stack operations, which allow an efficient calculation of arithmetic
expressions with respect to a postfix notation.
4

---------------------- Page: 8 ----------------------
0 ISO ISO/TR 10562:1995(E)
The block structure of a high-level programming language is supported which helps for structured
programming. Variables or other programming objects are identified by Symbols with respect to their
scope in the block structure. For some special use, absolute addresses may be used, e.g. to handle memory
mapped I/O directly.
The proposal Shows the scope of work and the functions of ICR in detail, but the formal description is
performed on Syntax resp. mnemotechnical level. The definition of code numbers is an easy mapping to
the ICR elements described in this Paper.
Some of the used items like pose or orientation are not explained in detail. Their meaning is described in
other ISO documents.
The main features of the intermediate code are as follows:
- Intermediate Codes: The Position of the code is the Standard output format from the robot programming
Systems and the Standard input format to the robot control units as illustrated in figure 1.
User oriented
high level
robot
programming
language
V
robot
programming
System
--------------
A
l
no way return
1 /
ICR (exce~t data lists)
ICR
I
V V
I
------------ ------------
---------
--
> <--->
teach robot robot
control data control
in
unit 1 list unit 2
module
------------ ------------
ex-
A
Change
industrial
robot
Figure 1 - Structure of robot programming with neutral interfaces

---------------------- Page: 9 ----------------------
ISO/TR 10562:1995(E)
0 HS0
- The Standard format for data exchange: Data list written in ICR tan be used for data exchange and for
input data of teaching-by-showing.
- Machine-machine interface: ICR is designed as data exchange format between Computer Systems. As it
is not a user-oriented language, the Codes tan be represented basically by integer only. However, it
uses Symbols for variables and others to improve the readability of the program. Printable Character set
is used in ICR.
Both data and program written in ICR are transferred among the Systems in figure 1. The Program is
executed in the following two ways:
- a program written in ICR is once converted into that in a user-specified code by means of a translator,
and the converted program is transferred to the robot control unit.
- the program written in ICR is transferred to the robot control unit in file or through a communication
line, and is directly executed on the robot control unit.
The System configuration and the implementation of a robot control unit is fully dependent on the System
developer of the robot. In this Technical Report, however, the robot control unit is assumed to have the
structure indicated in figure 2.
- path generator: it computes the trajectory of the industrial manipulator.
- servo System: it realizes the path through servo System.
- peripheral Controller: it controls digital/analog input/output units.
- Sensors: no specified devices are defined. Instead, general DIO is assumed.
- communication line: a serial line such as RS232C is assumed.
- file storage System: files tan be used as Option.
robot control unit
---
path generator
I
DB-
servo System --- joints
---
peripheral Controller
---
Sensors
DB-
communication line
I
---
file storage System
Figure 2 = Configuration of a robot control unit
As for an industrial manipulator, an articulated robot with 6 degrees of freedom is assumed. Any robot
with redundant degrees of freedom is not covered by this Technical Report. When a robot with less than 6
degrees of freedom is used, it is defined in the Same manner as weh.
5.2 Description of ICR grammar
At the lexical level, an ICR program consists sf a secluence sf characters of the ISO 8859-1 @-bit
Character set) norm. All control characters (such as a linefeed or a carriage return) are ignored in
processing.

---------------------- Page: 10 ----------------------
@ISO
ISO/TRlO562:1995(E)
5.2.1 Metalanguage of ICR
The metalanguage for the lexical definition of ICR is derived from the BNF notation:
- terminal Symbols (here characters) are enclosed in quotation marks (‘);
- parentheses ‘(’ and ‘)’ are used to show grouping;
- concatenation is indicated by the juxtaposition of (terminal or non-terminal) Symbols;
- optional Symbols are indicated by the Square brackets ‘[’ and ‘1’;
- repetition is indicated by the braces ’ { ’ and ‘}‘;
{itemll means: iteml occurs not, one time, two times, . . . ,
or n-times
- alternation is indicated by the stroke ’ ( ’
iteml 1 item2 means: iteml or item2 but not both
Example:
number constant ::= '#'
(integer 1 real)
A numbe&onstant tan be #30 to define the integer 30 or #0.3&2 to define
the real number 30.0.

---------------------- Page: 11 ----------------------
ISO/TR 10562:1995(E)
0 ISO
5.2.2 ICR lexical elements
The Syntax in this clause describes the formation of lexical elements out of characters and the Separation
of these elements from each other. Therefore, the Syntax is not of the Same kind as that used in the rest of
this Standard. That means, the ICR lexical elements differ from the syntactical definition because no space
Character is allowed between the terminal Symbols of a repetition, e.g. the definition of an integer. The
lexical elements will be referenced by the syntactical definitions in the
following chapters.
digit ::=
1;: 1 :;: 1 1;: / 1;: 1 1;: ]
upper-case-letter ::=
1 1
'A' 'B' 1 C 1 'D' 'E' 'F'
G
'M'
'H' '1' 'J' 'K' 'L' 'N'
1 0 1 'P'
1 Q 1 'R' 'S' 'T' 'U'
'V' 'W' 'X' 'Y' 1 'Z'
.
lower case letter ::=
- -
1 d 1 1 1 1 1
Ia' 1 b 1 ‘C’ Ie’ f
sf
1 1
1 k 1
1 Im' 'n'
1 h 1 1-i' 3'
‘0’ 1 P 1 1 q 1
Ir' ‘S’ 't' ‘U’
1 Y 1
‘V’ ‘W’ ‘X’ 'z' .
letter ::= upper-case-letter 1 lower-case-letter .
space ::=
underscore ::= '-' .
special Character0 ::=
-
' 1 ' 1 11
.
1 ( 1 1 > 1
special Character1 ::=
-
1 1 I-I
' . '
-
. ‘<’ ‘>’ ‘?’ 1 ‘@’ .
;
I I I I I
special Character2 ::=
-
1 1'1
1 [ 1 I 1 1' 1 I\I ( IA' .
special Character3 ::=
'{' 1 '1' 1 '}' 1 '-1 .
graphic Character ::=
letter 1 digit 1 space 1 underscore 1
special Character0 special-Character1 1
special-Character2 special Character3 .
-
-
digit { digit } .
unsigned-integer ::=

---------------------- Page: 12 ----------------------
0 ISO
ISO/TR10562:1995(E)
The semantic of the data types integer, Character, real, boolean, and string is described in subclause 6.2.
integer ::= [ ( '+' 1 '-' ) ] unsigned-integer .
Character ::=
"' graphic Character llv 1
-
1
' unsigned-integer .
$
In the description of Character, dollar mark ‘$’ is used to describe the Character code number. The type of
the Character code number is the ISO 8-bits code 8859- 1.
real ::= integer '.' [unsigned integer] [IE' integer] .
-
boolean ::= ‘T’ 1 ‘TRUE’ 1 ‘F’ 1 ‘FALSE’ .
A string is a series of graphic characters surrounded by double quotation marks ’ ” ‘. To include a double
quotation mark itself in a string, a concatenation of double quotation marks is used such as “abc”“def”
standing for abc”def.
string ::= ' 11 ' (graphic Character} ' ' ' .
-
A Symbol is formed similar to a string with no restriction on its length in which all characters are either
letters, digits or underscore and the first Character is a letter. There is no differente between small and
capital letters (i.e. ABC and abc refer the Same Object). A Symbol is not surrounded by double quotation
marks.
Symbol ::= letter { ( letter 1 digit 1 underscore ) } .
5.3 Address modes
5.3.1 Absolute addresses
When users need to specify absolute addresses of robot control units and other peripherals, they tan use
integer numbers which means absolute addresses of the devices. The addresses should be accepted by the
robot control unit. Note that the interpretation of the absolute address is completely System dependent.
Therefore users are strongly requested not to use the absolute addresses in Order to make the Codes
portable.
As mentioned already, the computational environment of a robot control unit is out of the scope of this
Standard. However, we often need to have the image of the memory space, e.g. I/O mapped peripherals,
because ICR is a simple, and rather primitive language. Note that the “absolute addresses” are not in
every case real addresses, but virtual addresses of the virtual memory space of the CPU. Its data type is
positive INTEGER with no restrictions except the range of INTEGER type. It tan be denoted as
absolute address ::= '@' unsigned-integer .
-
memory space.
where unsigned integer represents the address sf virtual
-
Due to wer-y high robot control System dependency the usage of absolute addresses should be avoided.

---------------------- Page: 13 ----------------------
ISO/TR 10562: 1995(E) OISO
5.3.2 Block relative addresses
A block relative address refers to a variable which is declared for a program block and its inner blocks
only. If the block relative address is given by an integer, its value is calculated by the definition formula
224*block nesting number + variable index
- - -
was defined with respect to a representation of a block relative address by an
(Remark: The number 224
integer of 32 bits). The block nesting number refers to an identical number of block nesting given in the
block begin Statement (BLISBEG) of a block activated before. If several blocks with the Same number of
block nesting are activated simultaneously, the block that was activated at last is assumed. The block
nesting number Starts with zero for the main program.
The variable index refers to an identical block relative index of a variable declared by a dec aration of
variable Statement (DECLVAR) inside the block referred to by the block nesting number.
- -
If a block relative address is given by its Symbol, the outer block or procedure name is noted 1s a prefix
with a Point, e.g. procedure out.variable name. If no block or procedure name is written, the inner block
- -
is assumed.
blockrel address ::=
'BRÄDR' '(' (integer 1 [ Symbol '.' ] Symbol) ')' .
5.3.3 Access to operands
In ICR instructions, the access to operands is performed by using constants, absolute or block relative
addresses, or Symbols.
Operand ::=
Symbol ( absolute-address 1 constant 1 blockrel-address .
Part of the operands are pushed on the Stack and the rest of them are described in the Statements. The
results of the execution of instructions are pushed on the Stack, if any. When a Symbol appears, it is
evaluated as a label, a procedure name, or a variable, according to the definition of the instruction.
Constants of integer type are denoted by “#1012”, where ‘#’ is ASCII Character. “#1012” is the decimal
number of one thousand and twelve.
To indicate the data pushed on and popped from the Stack, the following notation is used in the definition
of each instruction:
Stack:
1 n: var-type, . . . . , 1_2:varJype, 1 l:var type
=> O-1:vaFtype
O-m: var type, . . . . , 0 2:var type,
- - - - - -
type means the
where 1 x indicates an x-th input value and 0 x indicates an x-th output’ value, and var
- -
type of data.
10

---------------------- Page: 14 ----------------------
@ ISO
ISO/TRf0562:%995(E)
The Stack is “Last In First Out (LIFO)” memory and the orders of input/output values are illustrated in
figure 3. Therefore, 1-l and 0 1 is located on the top of the Stack (TOS).
-
--------_
TOS --
-
4 lxL l
m-m------ ---------
TOS -->I 0 1 1
- -
l
I2 I
/
--------- ----B-B--
.
-
l
O2 I
---m-m---
-----
. ----- >
Figure 3 - Execution of Stack Operation
“Var type” tan be one or more data type names (see “Variables and constants”). When two or more data
typecare accepted, express them with a pair of parentheses and a vertical stroke as shown in the following
way:
1 l:(var typel ] var type2) .
- - -
This notation is out of the lexical definition of ICR, and is only used for the explanation and description
of the functionality.
5.4 Structure of ICR units
The basic structure of an ICR program consists of units. A unit may include a user program, that tan also
be a module containing procedures and functions, or a data list including data. Modules are needed to
develop program Parts separately and link them together. Data lists tan be used to exchange data from
one robot control unit to another, e.g. the positions for a user program.
:= program 1 data list .
icr unit :
- -
program ::= pbeg { Statement } pend .
data list ::= dlhead { dldat } dlend .
-
5.5 Statement structure
Every Operation expressed by ICR is written as a statement consisting of a line number and an instruction.
An instruction consists of an Operator and Zero, one or more Operand(s). The operands are separated by a
comma and the Operation is closed by a semicolon
11

---------------------- Page: 15 ----------------------
ISO/TR10562:1995(E)
0 ISO
All Operators are represented by code numbers which are expressed by ASCII-Character digits, e.g.
‘22 10 0'. For the readability of code description, the Operators tan also ‘be denoted by mnemonics, for
example ‘PBEG’. Line numbers have to be unique.
Statement ::= line number ', ' instruction ';' .
-
line number ::= unsigned-integer .
-
instruction ::=
remark 1 declvar 1 typedef 1 progflow 1 ope
ration 1
specification 1 movecontrol 1 dataexchange
datalistop 1 description 1 sensorfunction 1
debugfunction
Instructions are defined in chapter 7, but for convenience, one example is shown:
remark ::= cd remark ', ' linenumber ',' text .
cd remark ::=-' REMARK ’
1 remark-code .
-
remark code =
1000 (integer)
linenumber of the high level robot
linenuiber =
programming language (integer)
-
-
text remark (string)
where cd remark means code of the REMARK instruction, either the mnemonic ‘BEMARK’ or 1000, the
-
instruction code number for REMARK. Both representations (mnemonics and numerical Codes) improve
the definition of two classes of conformance for the ICR loader: conformance class 1 adopts Codes only,
and conformance class 2 adopts Codes and mnemonics. “Linenumber” and “text” are the operands of the
REMARK instruction.
5.6 Program flow structure
As ICR is designed as intermediate code between two Computer Systems, it does not include complicated
program flow structures. Instead, a simple and quick mechanism is introduced such as unconditional
branch and conditional branch.
All Statements are numbered by serial instruction number which is represented in unsigned integer. The
destin
...

Questions, Comments and Discussion

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