4607K - Rev08 - Programming Manual V3.3.3
4607K - Rev08 - Programming Manual V3.3.3
Programming Manual
PRIMA ELECTRO reserves the right to modify and improve the product described in this manual at any
time and without prior notice. 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 ever be responsible or liable for
indirect or consequential damages that may result from the use of such documentation.
45004607K 2
Prima Electro S.p.A. OPENcontrol – Programming manual
Contents
1. Preface ......................................................................................................................................... 9
1.1 Introduction ................................................................................................................................................................................. 9
1.1.1 References .................................................................................................................................................. 9
1.1.2 Commands .................................................................................................................................................. 9
1.1.3 Syntax conventions ..................................................................................................................................... 9
1.1.4 Terminology .............................................................................................................................................. 10
1.2 Warnings and Notes ................................................................................................................................................................ 10
45004607K 3
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 4
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 5
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 6
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 7
Prima Electro S.p.A. OPENcontrol – Programming manual
11.4 Local and system variables modifiable from a program ................................................................................................ 289
45004607K 8
Prima Electro S.p.A. OPENcontrol – Programming manual
1. Preface
1.1 Introduction
This manual describes the procedures used for writing part programs with the OPENcontrol system. It
provides programmers with all the information they need for creating machine control programs.
1.1.1 References
For additional information refer to:
OPENcontrol Software characterization manual
OPENcontrol End User Manual
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.
1.1.2 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, the examples report parts of program and diagrams that show how the commands work.
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 zeroes can be omitted.
For example, you can program G00 as G, G01 as G1.
45004607K 9
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
1.1.4 Terminology
Some terms appearing throughout the manual are explained here below.
Control Refers to the OPEN numerical control unit comprising front panel unit and basic unit.
Front Panel Is the interface module between machine and operator; it has a monitor where
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.
WARNING! Dangerous Voltage: This symbol is associated with dangerous high voltages which
could cause serious physical injuries and/or damages to the machineries. Text nearby the
symbol explains how to avoid this danger.
WARNING! Danger: Advises about situation which may cause physical injuries and/or serious
damages to the machineries, not for electrical problems. Text nearby the symbol explains
how to avoid this danger.
45004607K 10
Prima Electro S.p.A. OPENcontrol – Programming manual
CHAPTER UPDATE
Chapter 2
2.2 Updated description of the field label
2.5 Added G78 in the table of G codes
2.6.6 Added description to access the file cncdebug_log.txt
Added statement for variable TRACE
Chapter 3
3.1.15 Added figure description of new values of ARM 4 and 5
3.2 Added code G78
3.2.8 Added description of tri-literal LKH
3.2.14 Completed description of variable ERF
3.2.24 Added description of G78
3.2.26 Revised description of G5 and G6
3.4.1 Extended description of tri-literal SOL
Chapter 4
4.2 Revised syntax of command T multi tool
Chapter 8
8.2 Corrected typing error in the description of command MOD
8.5.8 Added variable CTV
Chapter 10
10.3.3 Updated description of syntax command EPP
10.4.1 Updated description of syntax command GTO
Chapter 11
11.5 Added tri-literal LKH in the tables
Chapter 12
12.1.1 Added error 22/226
12.1.2 Extended comment for errors: 23/16, 23/17, 23/69
Added errors 23/195 and 23/196
Added error 23/373
Modified comment of error 23/570
12.1.3 Added errors of table library
45004607K 11
Prima Electro S.p.A. OPENcontrol – Programming manual
OPENcontrol part programs are written with a specific language defined by the ISO standard or by using
XML commands associated to paramacros. This chapter describes the elements of the two languages,
introducing also the relevant programming topics.
Physical names have a maximum length of 127 characters, including extension and path, as
applicable, and they identify files stored in the system’s physical directories.
The names specified through a logic DRIVE identify the programs saved in the logic directories
configured on the machine. The configuration of logic directories or DRIVES takes place at the
machine characterisation stage in AMP. Given a file path containing a DRIVE, the system
determines automatically the physical address associated with it, which must comply with the
length requirement mentioned above.
From the programs identified simply with a file name, the system works out the relevant
physical path by searching for it among the default paths specified in AMP during machine
characterisation.
When using Windows Editors, remember to press the “enter” command after the last line of the
program. Quitting the program without this command gives a specific error message during
program execution.
Program activation/deactivation may be executed by specifying the name of the program, either through
a physical address or a DRIVE, or directly, by specifying its name, while the names of subroutines and
those of all the ISO instructions for which a file has to be specified must be supplied directly or through
a logic address by means of a DRIVE.
45004607K 12
Prima Electro S.p.A. OPENcontrol – Programming manual
G, X, Y, F
Word
A word is an address followed by a numerical value. For example, these are words:
When you assign a numeric value to a word, no zeroes must precede or follow the value. Insert decimal
values after the decimal point.
Blocks
A program block comprises a set of words that identify an operation or a series of operations to be
performed. When several fields are used in the same block, they must appear in the order shown in the
following table:
block sequence sequence Words synchronization
label
delete number synchronisation codes
/ LABEL NUMBER # or & CHARACTERS ALL ALLOWED
Comment blocks
It can be inserted in any position within the current block.
The following strings identify the comment start:
;
//
(*
Any character after ";" icomment start are considered parts of the comment.
45004607K 13
Prima Electro S.p.A. OPENcontrol – Programming manual
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 user interface or by 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 sixteen alphanumeric characters which must be between positions. In case of a slashed block,
the label must be inserted after the slash.
A special label type known as marker can be defined. The markers are used in the memory search and
identify a point from which the search will be started/finished. For additional details see the
OPENcontrol User manual.
To define a marker, precede the label name with a $ character.
Example:
"START"
/"END"
$"MARKER"
When a label field is used in a 'GTO' command, the label defines the block that the control should jump
to.
In case of an EPP command labels are useful to limit part program section which will have to be
executed.
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 an integer number. Sequence number
belongs to the following range: 01999999999.
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".
This field must appear in front of the first operand and after block delete, label and sequence number.
Example:
#(GTO,START, @PL1=1)
45004607K 14
Prima Electro S.p.A. OPENcontrol – Programming manual
The first character of a comment block must be one of these three characters (;) or ‘//’ or ‘(*’. The rest
of the comment block is a sequence of alphanumeric characters. For example:
A comment can be inserted not only in a dedicated block, but also in other types of blocks after the
character aforementioned. All characters after a ; are considered as a comment.
Example:
G1 X100 Y50 ; Motion block
E1=10 //; Local variable E
(ROT,45) (*;Rotation command
An alias block definition has the following structure: {define} {alias name} {alias value}.
In the parameters alias name and alias value all the characters are accepted, including spaces and
single and double quotes. Only curly brackets are not accepted.
An alias can be defined only by a comment, but not by other instructions. The string “alias value”, has
to contain instructions and/or values understood by the control.
Valid examples:
{define} {LINEAR} {G1} ; Associate the LINEAR string to the instruction G1
{define} {RESET} {E100=0} // Associate the RESET string to the cancellation of the variable E100
{define} {MSG} {“MIO MSG”} ; Associate the string “MIO MSG” to the alias MSG.
45004607K 15
Prima Electro S.p.A. OPENcontrol – Programming manual
Invalid example:
{define} {LINEAR} {G1} E100=0 // An alias definition can not be followed by other instructions.
Example:
G1 X500 Y20 F200
Example:
(ROT,45)
(DIS,"message text")
45004607K 16
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
The following blocks are equivalent
G1X100 G1X=100
G2X10Y10R200 G2X=10Y10R=200
NOTE:
It is impossible to program coordinates in the +0.00001 range because 0.00001 is the minimum value
accepted by the control.
2.4.2 R coordinate
In a circular interpolation (G02-G03- G12-G13) R represents the radius of the circle.
In a threading block (G33), the R coordinate represents the offset from the zero angular position of the
spindle for multi-start threads.
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.
45004607K 17
Prima Electro S.p.A. OPENcontrol – Programming manual
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
In the deep drilling cycle (G83) K defines the incremental value to apply in order to reduce to the
minimum depth value (J) the starting pitch depth (I). In a threading block (G83) or in a tapping cycle
(G84), K defines the thread pitch. In the helical interpolation (G02-G03), K defines the helix pitch.
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 centre coordinates (I and J) are also
expressed in diametrical units.
2.4.4 t function
The t function defines the time needed to complete the move defined in the block.
The function is programmable in the following range:
+0.00001 +99999.99999 S
45004607K 18
Prima Electro S.p.A. OPENcontrol – Programming manual
In G94, F function defines the feedrate in millimetres per minute (G71) or inches per minute (G70).
In G93, the F function defines the inverse of the necessary time in minutes to complete the movement:
speed
F= = 1/t (minutes)
total distance
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). The syntax needed when F code is used to set dynamic attributes is described in Chapter
2 of this manual.
2.4.6 M function
The M address can activate various machine operations. The programmable range goes from 0 to 999.
See Chapter 8 for further information about these functions.
2.4.7 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.
45004607K 19
Prima Electro S.p.A. OPENcontrol – Programming manual
2.4.8 T function
The T function defines the tool and tool offset needed for machining. The tool code is programmable
over 32 alphanumerical characters, and the offset can be programmed in a range from 0 to 300.
2.4.9 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 to 300 and it may be
either an integer or an E variable.
2.4.10 G functions
G codes program preparatory functions for machining. The following section deals with this codes.
45004607K 20
Prima Electro S.p.A. OPENcontrol – Programming manual
2.5 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 10. Three-digit G codes are classified as follows:
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. Table below 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.
Compatible G Codes
G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 18 98
38 19
39
G00 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
G01 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
G02 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
G03 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
G04 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0
G05 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0
G06 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0
G09 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0
G10 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0
G12 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0
G13 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0
45004607K 21
Prima Electro S.p.A. OPENcontrol – Programming manual
G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 18 98
38 19
39
G14 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0
G16 1 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 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 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 1
G26 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0
G27 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0
G28 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0
G29 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0
G31 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1
G33 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0
G35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G36 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G37 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G39 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G40 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0
G41 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0
G42 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0
G60 1 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 1
G62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G63 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G66 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
G67 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
45004607K 22
Prima Electro S.p.A. OPENcontrol – Programming manual
G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 18 98
38 19
39
G70 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0
G71 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0
G72 1 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 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 1
G78 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0
G79 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0
G80 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1
G81 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1
G82 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G83 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G84 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G85 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G86 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G89 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1
G90 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0
G91 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0
G92 1 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 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0
G94 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0
G95 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0
G96 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0
G97 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0
G98 1 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 1
45004607K 23
Prima Electro S.p.A. OPENcontrol – Programming manual
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
CODE GROUP MODAL DESCRIPTION POWER UP
G00 a YES Rapid axes positioning YES
G01 a YES Linear interpolation NO
G10 a YES Linear interpolation with rapid dynamic parameters. NO
G02 a YES Circular interpolation CW NO
G03 a YES Circular interpolation CCW NO
G12 a YES 3D circular interpolation CW NO
G13 a YES 3D circular interpolation CCW NO
G14 a YES 3D circular interpolation for 3 points NO
G33 a YES Constant or variable pitch thread NO
Circular interpolation and cutter diameter
G16 b YES NO
compensation on a defined plane
Circular interpolation and cutter diameter
G17 b YES NO
compensation on 1st-2nd axes plane
Circular interpolation and cutter diameter
G18 b YES YES
compensation on 3rd-1st axes plane
Circular interpolation and cutter diameter
G19 b YES NO
compensation on 2nd-3rd axes plane
G26 c YES Continuous sequence with null feed at the end of block NO
Continuous sequence operation with automatic speed
G27 c YES YES
reduction on corners
Continuous sequence operation without speed
G28 c YES NO
reduction on corners
G29 c YES Point-to-point operation NO
G92 d NO Axis pre-setting without mirror NO
G98 d NO Axis pre-setting with mirror NO
G99 d YES Delete G92 YES
G40 e YES Cutter diameter compensation disabling YES
G41 e YES Cutter diameter compensation-tool left NO
G42 e YES Cutter diameter compensation-tool right NO
G70 f YES Programming in inches NO
G71 f YES Programming in millimetres YES
G80 g YES Disable canned cycles YES
G81 g YES Drilling cycle NO
G82 g YES Spot-facing cycle NO
G83 g YES Deep hole drilling cycle NO
G84 g YES Tapping cycle NO
G85 g YES Reaming cycle NO
G86 g YES Boring cycle NO
G89 g YES Boring cycle with dwell NO
G90 h YES Absolute programming YES
G91 h YES Incremental programming NO
45004607K 24
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 25
Prima Electro S.p.A. OPENcontrol – Programming manual
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 the 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 reduction of waiting time between two motion blocks caused
by calculations.
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 tri-literal codes AXF, AXS, AXT, CAM, FLT, GTA, GTS, INP,
LKH, LTH, TCP, TTC, UPR, UVA, UVC, UVP, LTH, XDA and for G35 and G36 codes.
45004607K 26
Prima Electro S.p.A. OPENcontrol – Programming manual
Both # and & are active only in the block where they are programmed.
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.
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
45004607K 27
Prima Electro S.p.A. OPENcontrol – Programming manual
Bit 0: if this bit is set to 1, all the external commands received from that process with the
relative sender are saved on the file.
Bit 1: if this bit is set to 1, all the commands and subcommands received from tasks SPV, ELB
and SYNC with their related status and sub-status are saved on the file.
Bit 2: if this bit is set to 1, information related to the program block being analyzed, calculated
movement positions and synchronization between process and interpolator are saved on the file.
45004607K 28
Prima Electro S.p.A. OPENcontrol – Programming manual
The control has four levels of definition of dynamic parameters (acceleration, deceleration, jerk,
negative jerk, ramp time in acceleration and ramp time in deceleration) for the movements: default
parameters, on the profile (modal) parameters, local (related to the current block) parameters and axis
related parameters.
Default and axis related parameters are set in AMP, on profile and local parameters are set using the F
function.
Basic movements can be defined with the motion G codes listed in the following table:
G CODE FUNCTION
G00 Rapid axes positioning
G01 Linear interpolation
G10 Linear interpolation with rapid dynamic parameters
G02 Circular interpolation clockwise
G03 Circular interpolation anticlockwise
G12 Circular interpolation clockwise in the space
G13 Circular interpolation anticlockwise in the space
G14 Circular interpolation for three points in the space
G33 Constant or variable pitch threading
45004607K 29
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
ACCUR = value
where:
value indicates the calculation accuracy value using the unit of measurement active (mm or
inches. It can be programmed by a real number or by an E parameter.
Characteristics:
Accuracy value indicates the lowest numerical value after which all real numbers are =0. Usually, the
calculation accuracy has an internal use identifying edges, lengths and distances that can be considered
as null.
Syntax
MOVNULL = value
where:
value it is a values that indicates the null movement threshold value using the active unit of
measurement (mm or inch). It can be directly programmed using a real number or
indirectly using an E parameter.
Characteristics:
The null movement threshold value indicates the minimum length of a movement to be performed. All
the movements having a length lower of the null movement threshold are rejected.
Bit 0: if bit is set, G2 and G3 work in compatible ISO mode. If bit is not set, G2 and G3 work as
on the OSAI 10/Series controls.
Bit 1: if bit is set, H variables type are local, therefore each execution level has its’ own H
variables group. If bit is not set, all the paramacro levels have only one group of H variables. Bit
not set correspond to OSAI 10 series systems behave.
45004607K 30
Prima Electro S.p.A. OPENcontrol – Programming manual
Bit 2: if bit is set to 1, the reading access to the extended technolgical table is allowed only for
elements belonging to a line defined as “valid” (value 1 for the first element of the string). If bit
is set to 0, no control on the data validity is done.
Bit 3: if bit is set to 0, the calculation of the origins riqualification is considered as referred to
the origins (as per the OSAI 10Series CNC). If bit is set to 1, the calculation of the origins
riqualification is considered as referred to the axis.
Bit 4: if bit is set to 1 and the H variables are local type (bit 1 set to 1), during the level passage
to a subroutine/paramacro, the H variables not assigned are reset. On the contrary, H variables
not assigned get the value of the H variables belonging to the calling program, but the
corresponding HF control variable remains at 0.
The compatibility information is set in the active AMP via ODM and corresponds to different
parameters in the ‘Process Configuration’ in ODM.
ISOCOMP bit 0 corresponds to the parameter ‘ISO commands compatibility’.
ISOCOMP bits 1 and 4 are controlled by the parameter ‘Scope of H variables’.
ISOCOMP bit 2 corresponds to the parameter ‘Check access on $PTECH’.
ISOCOMP bit 3 corresponds to the parameter ‘Origins preset modality’
Syntax
G93[G-codes]
G94[G-codes]
G95[G-codes]
where:
G-codes Other G codes that are compatible with G93, G94 and G95 (See "Compatible G codes"
in Chapter 2).
Characteristics:
In G93, the F function defines the inverse of the time in minutes necessary to complete the movement:
speed
F= = 1/t (minutes)
total distance
The work feed is mandatory in the blocks when G93 is active and only affects that block.
In G94, F function defines the feed rate in millimetres per minute (G71) or inches per minute (G70).
In G95, F specifies the axes feed rate in millimetres per revolution (G71) or inches per revolution of the
spindle (G70).
45004607K 31
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
Fvalue
where:
F identify work feed on profile
value is a positive real number that can be programmed directly or indirectly with an E
parameter. It specifies the work feed value on profile. Measuring unit depends the
characterised measuring unit (G70/G71) and on the programmed feed type
(G93/G94/G95).
Syntax
where:
{F|f} Flag identifying when the dynamic parameters are applied. F specifies that the parameters
refer to the whole profile, while f specifies parameters referring to the current block only.
% optional parameter. If present then values for dynamic parameters are a percentage of
the corresponding default parameters defined in the process dynamic parameters of the
active AMP.
valF
valA
valD
valJ
valK
valT
valB are positive real numbers that can be programmed directly or indirectly with E parameters.
They specify the value for the corresponding parameter. The unit of measurement depends
on the active unit of measurement and on the type of active G code (G93-G94-G95).
45004607K 32
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics:
The syntax for assigning the dynamic parameters allows four types of values to be specified:
Absolute value on the profile (modal values).
F[[FvalF][,AvalA] [,DvalD] [,JvalJ] [,KvalK] [,TvalT] [,BvalB]]
The parameter will acquire the value specified in the command. The value will be valid until a
RESET command or until the next assignment.
Both modal blocks (preceded by F []) and non-modal blocks (preceded by f[]) can be
programmed in the same block.
For each dynamic parameter (e.g. acceleration) up to four levels of definition can exist:
1. Local value for the block (identified by the syntax f[Avalue])
2. Value on the profile, or modal value (specified by the syntax F[Avalue])
3. Default value (specified in AMP, in process configuration)
4. Physical value for the axis (specified in AMP, in axis configuration)
The priority between levels corresponds to the order of the levels: local value for the block overrides all
other values. RESET command resets all values to default values as defined in AMP.
Example 1
This example shows how to program a work Feed on the profile (modal ) and an acceleration valid only
on the programmed movement (non-modal) in the same block:
Example 2:
G71
G90 X100 F[A2000, T200] ; Modal feed is set to 2000 mm / min, the minimum ramp time in acceleration
;at 200 ms
45004607K 33
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 3:
G70
G91 X200 f%[F50] ; The feed applied to this block is equal to the 50% of the default feed defined
; AMP,expressed in inch / min.
Syntax
where:
G-codes Other G codes that are compatible with G00 (see "Compatible G codes" table in
Chapter 2).
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 twelve axes can be
written in a block.
offset Offset factors on the profile. For three 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 ODM utility.
Example:
G90 G0 X100 f[A2000, T200] ; the rapid movement is execuded with acceleration of 2000 mm/min and
minimum acceleration ramp time of 200ms
45004607K 34
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
G-codes Other G codes compatible with G01 (See "Compatible G codes" table in Chapter 2).
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 twelve axes can be
written in a block.
offset Offset factors on the profile. These factors are entered for three axes with the characters
u, v, w respectively. See "Paraxial compensation" in Chapter 5 for further information.
F Dynamic parameters used for the move. It is given with the F (or f in case of parameters
referring to the current block only) address followed by the feed rate value.
Example:
This example shows how to program a G01 code.
Y Program:
10
x
0
90
10
0
45004607K 35
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
G-codes G codes compatible with G10 (see table “Compatible G codes” Chapter 2)
axes Character corresponding to an axis name followed by a numerical value. The numerical
value can be programmed using a decimal value or an E parameter. Up to 12 axes
can be defined.
offset Offset factors on profile. These factors are introduced for three axes namely with u, v, w
characters. Additional information can be found on the “Paraxial compensation” section
in Chapter 5.
F
f Dynamic parameters coordinate movements: defines in the F address complying with their
syntax. This parameter doesn’t affect the motion of the axes programmed with G10
active, defining instead the dynamic parameters for following motions at working feed
rate. Rapid dynamic parameters forced by G10 represent the vector composition of the
axes rapid dynamic parameters programmed in the bock. Maximum values for each axis
are defined in AMP during the ODM characterization.
45004607K 36
Prima Electro S.p.A. OPENcontrol – Programming manual
The circular move is performed at machining feed rate 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 2).
axes Axis name followed by a numerical value programmed directly with a decimal value or
indirectly with an E parameter.
If no axes are programmed in the block, the move is a complete circle in the active
interpolation plane.
45004607K 37
Prima Electro S.p.A. OPENcontrol – Programming manual
K Parameter is used only if the ISO variable (ISOCOMP) is set as ISO standard compatible. It
corresponds to the coordinate of the circle centre towards the third axis of the process
and can be omitted if the third axis does not belong to the interpolation plane. This is a
value in millimetres or inches 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.
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.
F
f Feed rate used for the move. It is given with the F address (or f in case of parameters
referring to the current block only) followed by the feed rate value.
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. The interpolation
plane after reboot/reset can be configured in AMP using ODM. The coordinates of the start point
(determined from the previous block), the end point and the centre of the circle 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.
Circular interpolation can also be programmed in incremental mode (G91), that is with the coordinates
of the final point and of the circle centre referred to the start point of the previous circular movement.
45004607K 38
Prima Electro S.p.A. OPENcontrol – Programming manual
If in the AMP configuration, the parameter “ISO commands compatibility” is set to “ISO standard”, the
parameters I, J and K are always considered as incremental values referred to the start point of the
circular motion.
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.
G03
G02
XY
Y
G02
G02
G03
G03
Z
Y
ZX
Circular interpolation in absolute programming with the I and J coordinates of the centre of the circle.
N14 X10 Y20
N15 G2 X46 Y20 I28 J20 F200
N16 G3 X64 Y38 I46 J38
Y
G02
38
G03
20
X
46
64
28
0
Circular interpolation in absolute programming with the value R of the radius of the circle.
N14 X10 Y20
N15 G2 X46 Y20 R18 F200
N16 G3 X64 Y38 R18
45004607K 39
Prima Electro S.p.A. OPENcontrol – Programming manual
Circular movement is executed with a programmed working velocity and is co-ordinated and concurrent
on all axes programmed in the block.
Syntax:
G12 [G-codes] [axes] I.. J.. K.. [x.. y.. z..] [F|f..] [auxiliary]
G13 [G-codes] [axes] I.. J.. K.. [x.. y.. z..] [F|f..] [auxiliary]
where:
G-codes Other G-codes that are compatible with G12 and G13 (see “Compatible G codes” in
Chapter 2)
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. If there are no
programmed axes within the block, the following movement is a complete circle in the
active interpolation plan.
I Abscissa of the circle centre. This is a value in millimetres or inches 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 or inches that can be
programmed directly or indirectly with an E parameter. When the correspondant axis is a
diamentral axis, the ordinate is expressed in diamentral mode too. No matter what
interpolation plane is active, the symbol for the ordinate is always J.
K Third axis coordinate of the circle centre. This is a value in millimetres or inches 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 plan you are using, the symbol for the third axis coordinate is always K.
45004607K 40
Prima Electro S.p.A. OPENcontrol – Programming manual
xyz Identify three components of a versor orthogonal to the plane to which the programmed
circle movement belongs. These parameters are required only if the movement is a
circumference or a semi-circle these parameters.
F
f Feed rate used for the move. It is given with the F address followed by the feed rate
value. If omitted, the system will use the programmed value. If no feed rate has been
programmed an error will occur.
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. The interpolation
plane after reboot/reset can be configured in AMP using ODM.
The coordinates of the start point (determined from the previous block), the end point and the centre of
the circle 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.
The circular interpolation can also be programmed in incremental mode (G91), that is with the
coordinates of the final point and with the circle centre referred to those of the start point of the
previous circular movement.
If in the AMP configuration the parameter “ISO commands compatibility” is set “ISO standard”, the
parameters I, J and K are always considered as incremental values referred to the start point of the
circular motion.
The programmed arc of the plane matches the plane obtained as following:
rotating the Cartesian plane as to superimpose the abscissa axis on the segment connecting the
centre of the arc with the interpolation starting point
fixing the final point as part of that plane
As in the case of complete or half circles if the three points of the circumference arc (namely starting
point, final point and centre) are aligned, the components of a versor orthogonal to the interpolation
plane must be defined using x, y, z addresses.
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.
45004607K 41
Prima Electro S.p.A. OPENcontrol – Programming manual
If the tangential control (corresponding to three-letter code AXT) is active, the circular
movement in the space will be considered as a rectilinear movement in the plane pre-set for
the control.
If there is any protected area active, circular movement in the space is approximated by two
rectilinear movements in the protected area plane. Movements will correspond to the
movement between the starting point and the point in the semi-break of the arc and the
movement between the point in the semi-break of the arc and the circle movement final
point. Cutter diameter compensation (G41-G42) is incompatible with circular moves in space.
Examples:
G17
G1X10Y5Z0 F[F2000, A3000,D3000] Z
G13X15Y10Z5I15J10K0
Programmed profile
G17
G1X10Y5Z0 F[F2000, A3000,D3000] Z
G12X20I15J10K0y1
Programmed profile
45004607K 42
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
G-codes Other G-codes compatible with G14 (see “Compatible G codes” in paragraph 2.5)
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. If there are no
programmed axes within the block, the following movement is a complete circle in the
active interpolation plan.
I Abscissa of the third point of the circle. This is a value in millimetres or inches 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 third point of the circle. This is a value in millimetres or inches that can
be programmed directly or indirectly with an E parameter. When the corresponding axis is
a diameter, ordinate has a diametrical value. No matter what interpolation plane you are
using, the symbol of the ordinate is always J.
K Third axis coordinate of the circle centre. This is a value in millimetres or inches 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 plan you are using, the symbol for the third axis coordinate is always K.
F
f Feed rate used for the move. It is given with the F address followed by the feed rate
value. If omitted, the system will use the programmed value. If no feed rate has been
programmed an error will occur.
45004607K 43
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics:
The Cartesian plane is defined using the G16, G17, G18, G19 codes. The starting Cartesian tern is
defined by AMP using ODM. The third point used to define the circumference, must be between the start
and the final point of the circle. Its position defines the direction of the circumference as well.
The coordinates of the start point (determined from the previous block), the end point and the third
point of the circle 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.
When the final point coordinates and the coordinates of the circumference centre refer to those of the
starting point in the previous block, circular interpolation can be programmed incrementally (G91). The
direction (CW or CCW) of a circular interpolation is defined by looking in the positive direction of the
axis that is normal to it (see example).
If the tangential control (corresponding to triliteral AXT) is active, the circular movement in
the space will be considered as a rectilinear movement in the plane pre-set for the control.
If there are any protected areas active, circular movement in the space is approximated by
two rectilinear movements in the protected area plane.
Movements will correspond to the movement between the starting point and the point in the
semi-break of the arc and the movement between the point in the semi-break of the arc and
the circle movement final point.
Cutter diameter compensation (G41-G42) is incompatible with circular moves in space.
Example:
G17 Z
G1X10Y5Z0F[F2000, A3000,D3000]
G14 X20Y15Z0 I15J12.5K5
Y
Programmed profile
45004607K 44
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
CET=value
where:
value Tolerance expressed in millimetres (inches). The default value is 0.01 mm (0.000039 in).
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.
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 current variance
By programming the arc with the circle radius rather than with the centre using the format:
G2/G3, final point and R radius
Example:
G71
CET=0.02 defines a 0.02 mm tolerance
45004607K 45
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
FCT=value
where:
value Threshold expressed in millimetres (inches).
The default value is 0.001 mm (0.000039 in).
Characteristics:
The FCT command allows dealing 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 using ODM tool
By user interface
By writing a new CET value in the part program.
The FCT threshold is always expressed in the characterised measuring unit (G70/G71 apply).
Example:
G71
FCT=0.005
In this example, FCT defines a threshold 0.005 millimetres.
45004607K 46
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
Except for ARM=4 and ARM=5, if the difference is greater than the CET value, the control will
stop without executing the move, and display a profile error message.
Except for ARM=4 and ARM=5, 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 between the starting point and the final point is less than the FCT threshold, the
system will force the complete circle.
Syntax:
ARM=arc mode
where:
arc mode Is the numerical value that defines the arc normalisation mode.
Accepted values are:
0 Uses the medium radius and displaces the centre; it checks the CET on radiuses
difference and on centre displacement.
1 Uses the final radius and displaces the starting point; it checks the CET on radiuses
difference.
2 Uses the medium radius and displaces the centre; it checks the CET on radiuses
difference.
3 Uses the medium radius and displaces the starting and end points; it checks the
CET on radiuses difference.
4 Uses the optimal radius, which minimizes centre displacement; it checks the CET
on centre displacement.
5 Uses the optimal radius, which minimizes centre displacement; it does not take
the CET into account.
Default value is 2.
Characteristics:
The arc normalisation mode can be modified as follows:
In the AMP configuration using ODM tool
By user interface
By writing a new CET in the part program.
45004607K 47
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
starting point
CET
averaged radius
C = programmed center
CS final point
C CET CS= displaced center
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.
starting point
CET
final point
C C= programmed center
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, while starting and final points are respected.
CET
final point
C C= programmed center
CS = displaced center
CS
45004607K 48
Prima Electro S.p.A. OPENcontrol – Programming manual
ARM=3
If the displacement of the centre arc is within the 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 use 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.
A B
C = programmed center
CS = displaced center
starting point
averaged radius
arc with averaged
radius plus initial
and final steps
CET
CS
When ARM = 1 or ARM = 3 the resultant profile can show inaccuracies ("steps"), as shown in the
examples.
When ARM = 1 there will be a step at circle start equal to the difference between starting and
final radiuses.
When ARM = 3 there will be a step both at circle arc start and end.
To prevent these steps from causing a servo error, program a CET value smaller than the
characterised servo error threshold.
45004607K 49
Prima Electro S.p.A. OPENcontrol – Programming manual
ARM=4 e ARM=5
Indipendently from radiuses error, the optimal centre is calculated allowing the union of starting and end
points with a circle, minimizing the distance between the calculated and the requested centre.
In case of ARM=4, the arc is executed only if the distance between displaced and requested centre is
lower than CET value.
In case of ARM=5, the arci s executed indipendently from the centre displacement.
median line
45004607K 50
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
SHAPERR = value
where:
value It is the maximum departure in mm (inches) desired between the programmed and the
actual path. A value of 0 (zero), which is the default value, cancels this operation.
KVGAIN = value
where:
value Is the axis position interlocking gain (Kv). The value to be specified must be the same as
that configured in AMP in the corresponding axis field.
If both SHAPERR and KVGAIN are nil, then no reduction speed is applied to the circular elements.
Characteristics:
If SHAPERR is not zero, the speed is reduced on all circular elements as a function of the radius of
curvature of the path in order to make sure the error does not exceed the specified limit. If KVGAIN is
zero, the system uses the value configured in AMP.
Hence, maximum admissible speed will be a function of the radius, the error specified by SHAPERR and
the interlocking gain KVGAIN, according to the following formula:
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.
45004607K 51
Prima Electro S.p.A. OPENcontrol – Programming manual
The values assigned to SHAPERR are always expressed in the current unit of measurement of the process
(programmed with G70/G71).
Syntax:
where:
G-codes Other G codes compatible with G02 and G03 (See "Compatible G codes").
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 or inches (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 or inches (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.
R Circle radius. It is specified with the R address followed by a length value, and is
alternative to the I and J coordinates.
45004607K 52
Prima Electro S.p.A. OPENcontrol – Programming manual
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 Feed rate. It is specified by the F address followed by a value. If it is omitted, the system
will use the previously programmed feed rate. If no feed rate 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 helix length 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 the movement on the third axis 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 an helical interpolation.
Helix Dimensions
45004607K 53
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
axes An axis letter followed by a numerical value. It can be programmed directly or indirectly
using an E parameter.
K Thread pitch (mandatory). For variable pitch threads, K is the initial pitch. It is
programmed using K address followed by increment value.
I Pitch variation for variable pitch threading. For increasing pitch threading, I must be
positive; for decreasing pitch threading I must be negative. It is programmed using I
address followed by increment value.
R Deviation from the zero spindle angular position in degrees. R is used in multi-start
threading to avoid displacing the starting point. It is programmed using R address followed
by increment value.
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:
I< K2
2 (Zf - Zi)
where:
I Is the maximum pitch variation
K Is the initial pitch
(Zf - Zi) Is the thread length.
During the threading cycle the control ignores the CYCLE STOP button and the FEEDRATE
OVERRIDE selector/softkey, but the SPINDLE SPEED OVERRIDE selector must be disabled by the
PLC. VFF may be disabled using user interface or with a VFF command.
45004607K 54
Prima Electro S.p.A. OPENcontrol – Programming manual
The figures that follow illustrate examples of constant pitch threading. Note that the U axis is a
diameter axis.
K2
Z-100
Z
U Part program block: G33 U40 Z-80 K3
K3
Z-80
U40
The figures that follow illustrate variable pitch threading. Note that the U axis is a diameter axis.
45004607K 55
Prima Electro S.p.A. OPENcontrol – Programming manual
U
Part program block: G33 U50 Z-40 K4 I1
4
5
Z
U
Part program block: G33 Z-50 K10 I-1
10
7
6
5
4
45004607K 56
Prima Electro S.p.A. OPENcontrol – Programming manual
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 allows the same start point for all threads to be programmed, rather than moving 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
45004607K 57
Prima Electro S.p.A. OPENcontrol – Programming manual
To perform milling operations on a circle with a rotary table, calculate the rotary rate with the following
formula:
F = 360 * A = 114,64 * A
pi D D
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 feed rate with
one of the following formulas.
With G94:
where:
F Is the feed rate
A Is the feed rate on the part (in mm/min or inches/min)
XYZBC 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).
With G93:
where:
F Is the feed rate
A Is the desired feed rate (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 feed rate directly because the radius is not programmed.
In these cases, the feed rate 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.
45004607K 58
Prima Electro S.p.A. OPENcontrol – Programming manual
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 current axis position.
If a rollover axis is programmed in absolute mode, the following conditions will be applied:
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. If an absolute movement is
not preceded by a minus sign and the ROLLOPT variable is set to 1, then the movement of the
rollover axis will be optimized.
For example, if rotary axis B is positioned at 90 degrees and the following block is written in the part
program or in MDI:
G90 B45
ROLLOPT = 0
359.999
180
0
45
90
Clockwise Rotation
The B axis rotates 315 degrees clockwise from the 90 degree position to reach the absolute position of 45
degrees (the sign of the move is positive).
45004607K 59
Prima Electro S.p.A. OPENcontrol – Programming manual
ROLLOPT=1
180.0 359.99
0.0
45
90
B axis has a 45° clockwise rotation, from the 90° degree position to reach the absolute position of 45°.
using the shortest path
If the rotary B axis is placed at 90° and the following block is entered from keyboard or part program,:
G90 B-0
90
The B axis rotates by 90 degrees counter clockwise to absolute position 0 degrees because the sign of the
move is negative. In this case, as a counter clockwise movement has been requested, the value of the
ROLLOPT variable is not taken into account.
45004607K 60
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
The value of the variable ROLLOPT is not taken into account.
The displayed position is beyond the programmed range when the programmed range is greater
than +359.999 degrees.
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 MDI:
G91 B765
45
90
The B axis makes two complete clockwise revolutions plus 45 degrees (360 + 360 + 45 = 765).
45004607K 61
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
ROLLOPT = value
where:
value indicates whether the optimization function is enabled (value=1) or not (value=0). It can
be specified directly and/or via a local or system variable. The default value is 0
(optimization disabled).
Characteristics:
The shortest path movement for rollover axes is enabled if:
the variable ROLLOPT= 1
the rollover axis is moved in absolute mode (G90 code is enabled)
the programmed movement does not have unsigned or has a positive sign
If the above conditions are satisfied, the control optimizes the movement of the axis using the shortest
path to the programmed point.
Syntax:
where:
paramn: value of the n- position parameter. It can be directly specified with a real number or via a
variable.
Characteristics:
The attributes can be associated to any type of linear or circular movement. For movements in Splines,
the attributes are ignored. The values of the attributes are synchronized with the movements and are
valid since de beginning of the following movements.
45004607K 62
Prima Electro S.p.A. OPENcontrol – Programming manual
In case the programmed movemet is not performed, for example, if the machine is already in the
programmed point or if the generated entity is shorter than the null movement threshold, the attributes
are ignored.
The attribute values can be accessed by the PLC using the process status reading function and are stored
in PLC type variables. For more info, refer to the “OPENcontrol Application Manual”.
Examples
Command Attributes value Note
G0G91 X10 a[1,2,3,4,5,6,7,8] 1, 2, 3, 4, 5, 6, 7, 8
X20 a[10,12] 10, 12, 0, 0, 0, 0 ,0, 0 Only the first attributes are updated
(DIS, ‘Test’) 10, 12, 0, 0, 0, 0, 0, 0 As the block does not contain
movements, the attributes are not
updated.
X-4 0, 0, 0, 0, 0, 0, 0, 0 No attributes have been specified,
the same as assign all to 0.
X3 a[42, 21, 24, 3, 4, 5, 6 ,17, 18] 42, 21, 24, 3, 4, 5, 6 ,17, 18
X0 a[-12, 25.6] 42, 21, 24, 3, 4, 5, 6 ,17, 18 As G91 modality is active
(incremental movements) no
movement is generated and the
attributes are not updated.
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 feed rate (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
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.
45004607K 63
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
This is an example reaming/facing head used in a finishing operation.
45004607K 64
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
45004607K 65
Prima Electro S.p.A. OPENcontrol – Programming manual
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 with which they are associated and by whether or not reverse mirror
movement has been applied.
Syntax:
(UDA,master1/slave1[slave2..slaven][,master2/[slave2..slaven],…,master6/[slave2..slaven]])
(UDA)
where:
master1. . . master6 Are the master axis names (one ASCII character per axis). Up to 6 master axes are
allowed.
slave1. . . slave17 Are the slave axis and they can be:
one ASCII character if axis is programmed by name
a ′/′ character if axis is programmed by ID
Slave axes programmed by ID can be axes that do not belong to the current
process. They can be axes belonging to the PLC or axes belonging to other
processes and shared with PLC. Up to 17 slaves are allowed, 6 of them can be
external to the process.
If slave axis is preceded by a ′-′, then the axis will move opposite to its master.
no parameters (UDA) without parameters disables the dual axes mode (UDA)
Characteristics:
Dual axes management does not require any special setting in the system using ODM.
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)
The considerations made for the positive limit also apply to the negative limit:
NegativeLim = max(Master NegativeLim, MasterPosition + Slave NegativeLim - SlavePosition)
45004607K 66
Prima Electro S.p.A. OPENcontrol – Programming manual
When the (UDA...) command is executed, made both to the master axis and the slave axes have to be
referenced (homing cycle already performed).
Programming a UDA command will disable any previously programmed UDA or SDA command.
The RESET command does not cancel the association between the master and slave axes.
NOTE:
The names of masters and slaves must be separated by a / (slash).
To mirror the slave axis movement, you must program the - operator before the axis name.
This rule does not apply to master axes.
Example:
(UDA,X/-U) U is slaved and mirrored to X
(UDA,Z//12) Axis with ID 12 is slaved to a Z.
(UDA, A/B - CD) B, C and D are slaved to A and C is mirrored to A
(UDA,X/AB/-14) A and B are slaved to X, moreover axis with id 14 is slaved and specular to X.
45004607K 67
Prima Electro S.p.A. OPENcontrol – Programming manual
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:
(SDA, master1/slave1[slave1..slaven][,master2/[slave1..slaven],…,master6/[slave1..slaven]])
(SDA)
where:
master1. . . master6 Are the master axis names (one ASCII character per axis). Up to 6 master axes are
allowed.
slave1. . . slave17 Are the slave axis and they can be:
one ASCII character if axis is programmed by name
a ′/′ character if axis is programmed by ID
Slave axes programmed by ID can be axes that do not belong to the current
process. They can be axes belonging to the PLC or axes belonging to other
processes and shared with the PLC.
Up to 17 slaves are allowed, 6 of them can be external to the process.
If slave axis is preceded by a ′-′, then the axis will move opposite to its master.
no parameters (SDA) without parameters disables the special dual axes mode (SDA)
Characteristics:
Dual axes do not require any special setting during the system characterization with ODM.
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)
Upon activating the (SDA,...) command the master and the slaves do not need to be referenced.
Programming an SDA command will disable any previously programmed UDA or SDA command
45004607K 68
Prima Electro S.p.A. OPENcontrol – Programming manual
This gives the possibility to search the zero limit switch with the dualization active.
In this case, performing the homing cycle of the master axis, the system will move all the associated
slave axes. At the end of the homing procedure the master axis is referred while the slave axes are not.
To refer the slave axes is needed to swap them one at the time with the master axis through new SDA
commands and repeat the homing cycle for each of them re-declared as master axis.
However, the homing of the slave axes is not necessary if only the master axis is programmed with SDA
active.
The use of the SDA function is recommended in cases where a zero point micro-search cycle is required
after a shutdown of the system with the work still on the work-table.
NOTE:
The names of masters and slaves must be separated by a / (slash).
To mirror the slave axis movement, you must program the - operator before the axis name. This
rule does not apply to master axes.
Example:
(SDA,X/-U) U is slaved and mirrored to X
(SDA, A/B - CD) B, C and D are slaved to A and C is mirrored to A
(SDA,X/AB/-14) A,B are slaved to X, moreover axis with id 14 is slaved and mirrored to X
45004607K 69
Prima Electro S.p.A. OPENcontrol – Programming manual
One or more axes can be used as “slave” axes, i.e. subordinate to another axis, defined as “master”. In
this way, 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 17 axes). This
instruction does NOT activate the “following” function, whose activation is done 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:
where:
master Is the name of the master axis and is denoted by a single ASCII character.
mode Defines the master axis following mode used by the slave(s). It can be:
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
ratio This is the specified master / slave(s) following ratio . It must be viewed as a
multiplication factor for the feed rate 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, feed rate/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.
45004607K 70
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics:
A slave axis can be a shared axis, i.e. an axis shared with the PLC environment. In this case, the axis may
continue to be moved by PLC even after the association with the master, however it cannot be moved
while it is following the master.
Master axis identifies an axis in the process where XDA is activated and a non-existing axis as well. In the
latter case the process creates a “virtual axis” having the name specified.
The axis has poor dynamic characteristics as, for example, its maximum feed will be equal to the lowest
feed of the slave axes. This axis could be part of TCP/virtualizations and can’t be homed.
RESET command does not remove master / slave association
The various following modes available are:
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), synchronisation is instantaneous and the
variation in the feed rate of the slave is “in steps”. Slave position and feed rate values are calculated,
instant by instant, according to the following formulas:
V V master
V slave
Activation =
Synchronisation
t0 t
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 feed rate requested accordingly and will give
out an emergency (servo error) message, since the slave is unable to follow the required position.
Mode 1
In this mode, the slave follows the feed rate 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.
V V master
Synchronisation
V slave
Activation
t0 t1 t
45004607K 71
Prima Electro S.p.A. OPENcontrol – Programming manual
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:
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.
V master
Synchronisation
V slave
Activation Distance
t0 t1 t
Once the synchronisation with the master has taken place, the slave will move according to this formula:
The feed rate (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 feed rate and
maximum acceleration). The moment the feed rate of the master varies, the slave will follow this
variation based on its acceleration value. If the feed rate requested of the slave exceeds its maximum
admissible feed rate, the system will reduce the feed rate requested accordingly. Hence, the feed rate
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:
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.
V V master
Synchronisation
V slave
Activation
t0 t1 t
45004607K 72
Prima Electro S.p.A. OPENcontrol – Programming manual
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
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.
V master
Synchronisation
V slave
Activation Distance
t0 t1 t
Once the synchronisation with the master axis has occurred, the slave will move according to the
following formulas:
The position, PosSlave, and the feed rate, 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 feed rate and maximum acceleration). The
moment the feed rate of the master varies, the slave will follow this variation according to its own
acceleration value. If the feed rate requested for the slave exceeds the maximum value admissible for
this axis, the system will reduce the feed rate 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:
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).
45004607K 73
Prima Electro S.p.A. OPENcontrol – Programming manual
Mode 3
In this mode, the slave follows the position and feed rate 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.
V master
V slave
Activation= Distance
Synchronisation Distance lost recovered after
during acceleration synchronisation
t stage with Master
0
t0 t
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):
The position (PosSlave) and the feed rate (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 feed rate and max admissible acceleration). The
moment the feed rate of the master varies, the slave follows the variation according to its own
acceleration value. If the feed rate requested of the slave is higher than its maximum admissible feed
rate, the system reduces the feed rate 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:
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).
Syntax:
(XDA)
45004607K 74
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
slave1…slave17 Are the slave axis and they can be:
one ASCII character if axis is programmed by name
a ′/′ character if axis is programmed by ID
Slave axes programmed by ID can be axes that do not belong to the current
process. They can be axes belonging to the PLC or axes belonging to other
processes and shared with the PLC.
Up to 17 slaves are allowed, 6 of them can be external to the process.
If slave axis is preceded by a ′-′, then the axis will move opposite to its master.
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 PLC execute a similar command.
45004607K 75
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
(XDA, 3, slave1[slave2[..]])
(xda, 3, slave1[slave2[..]])
where:
slave1…slave17 Are the slave axis and they can be:
one ASCII character if axis is programmed by name
a ′/′ character followed by an integer if axis is programmed by ID
Slave axis programmed by ID can be axis that do not belong to current process.
They can be axis belonging to PLC or axis belonging to other processes and shared
with PLC.
Up to 17 slaves are allowed, 6 of them can be external 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 PLC execute a similar command.
45004607K 76
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
(XDA, 4, slave1[slave2[..]])
(xda, 4, slave1[slave2[..]])
where:
slave1…slave17 Are the slave axis and they can be:
one ASCII character if axis is programmed by name
a ′/′ character followed by an integer if axis is programmed by ID
Slave axes programmed by ID can be axes that do not belong to the current
process. They can be axes belonging to the PLC or axes belonging to other
processes and shared with the PLC.
Up to 17 slaves are allowed, 6 of them can be external 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 feed rate 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 PLC 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 mode by A and Z
N30 G1X100F2000
N40 X300
N50 (xda,4,Z) Deactivates following mode by Z in continuous mode
N60 X400
N70 X500
N80 (xda,4,A) Deactivates following mode by A in continuous mode
N90 X660
N100 X700
N110 (xda,3,ZA) Reactivates following mode by A and Z in continuous mode
N120 GX0
N130 (XDA) Removes association of slaves Z and A with master X
N140 GX
45004607K 77
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
Let axes XYZAB be configured with id 1 2 3 4 5 respectively, and the axes belonging to the PLC (a and b)
with IDs 14 and 20, respectively).
N10 (XDA,1,X/14A/20,3,0.8,0.0) Activates master X and slave A from process and a & b from PLC
N20 (XDA,3,A/14/20) Activates the following mode by A, a, and b
N30 G1X100F2000
N40 X300
N50 (xda,4,/14) Deactivates following mode by a in continuous mode
N60 X400
N70 X500
N80 (xda,4,A) Deactivates following mode by A in continuous mode
N90 X660
N100 X700
N110 (xda,3,/14A) Reactivates following mode by A and a in continuous mode
N120 GX0
N130 (XDA) Removes association of slaves A, a, and b with master X
N140 GX
45004607K 78
Prima Electro S.p.A. OPENcontrol – Programming manual
This command activates the tangential control on a rotary axis. The tangential control automatically
introduces a movement on the rotary axes so its inclination will not change along the profile.
This command replaces TCP of type 2 of the OSAI S10 controls.
Syntax
(AXT, axp1axp2axr, direction, min angle [,null angle][, rotary feed [, mode]]])
(AXT)
where:
axp1axp2axr These are the names of the two axes of the plane where the profile is defined
(abscissa and ordinate respectively) and the rotary axis that will be controlled.
direction Indicates the rotary axis direction for positive motions. It has a positive value (+) if
the rotation is CW, while the value is negative (-) during CCW rotation.
min angle It is the amplitude of the threshold angle between two elements that make it
necessary to introduce a move of the rotary axis at the end of the first element.
null angle It is the threshold for the minimum angle between two elements. If an angle
between elements is smaller than null angle, then the tangential control does not
activate and the rotary axis does not move. If this value is not provided than it is
assumed to be the same as the value for null angle configured in AMP.
Rotary feed Feed when the rotary axis moves between two elements (angle between elements
bigger than min angle). If not provided than programmed feed is used
45004607K 79
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics:
This function introduces a movement of the specified rotary axis, so that its inclination will not change
along the profile. The profile is defined in the plane identified by the two linear axis specified in
command.
If mode value is 0, all previous considerations applies to all elements of the profile following the
command excluding the first one. In this case, the first element is considered as the in feed element, so
even if it is a circular element, no movement is applied to the rotary axis. System will start to generate
movements for the rotary axis starting from the second element after the AXT command. If a movement
block contains an explicit movement of the rotary axis, then the tangential control will be disabled to
let the axis move as programmed. It will be re-enabled on the first movement block with no explicit
movement for the rotary axis.
Syntax
where:
type It is a parameter specifying the operation requested on the axes.
There two allowed values:
S: The axes, belonging to the process, will be shared with PLC.
R: The axes, belonging to the process, currently shared with PLC will
be released.
(no parameters) If the command is executed with no parameter, then all axes currently shared will
be released.
Characteristics:
Part program cannot move axes shared with PLC.
Any attempt to move an axis shared with PLC from part program will trigger an error.
The RESET does not delete any axes sharing.
45004607K 80
Prima Electro S.p.A. OPENcontrol – Programming manual
From a dynamic point of view, this command allows the definition of some axes to be managed
separately from others. The axes in that triliteral delineate the programmed geometry, but their
movement is independent from other axes in the process.
Syntax
(AXF, axes_names)
(AXF)
where:
axes_names Is the list of the axes names to which the tracking algorithm will be applied
(no parameter) If the command is executed with no parameters, all the axes will be interpolated
together
Characteristics:
The axes on which the dynamic tracking algorithm is applied (tracking axes) are interpolated separately
from the others as this triliteral creates an interpolator for each axis to be followed. As a result, profile
velocity won’t reach zero where the axes begin or finish their movement, making all the processing more
fluid (see example).
Tracking axes have to be programmed anyway. Only if there is at least one axis on which the algorithm is
applied this command is active. Programming a new three-letter codes deactivates a previous tracking
axes configuration.
Tracking axes are moved according to the setup dynamic parameters. If the programmed velocity
value is higher than the maximum velocity, the velocity value will be automatically reduced to
observe the dynamic parameters of the tracking axes.
Example:
Given a process with 3 linear axes (XYZ) and 1 rotary axis (B), programmed as follows:
Following this command, B axis is enabled to dynamically follow all the
(AXF, B)
axes in the process.
A rounded edge is programmed on which a rotary movement is
inserted:
with the AXF command, the B movement doesn’t limit the linear
axis dynamic and so the velocity on the profile doesn’t reach 0.
After this command, rotary B is interpolated with other axes of the
(AXF)
process.
45004607K 81
Prima Electro S.p.A. OPENcontrol – Programming manual
The diagram below shows trend velocity on the profile and on the B axis, for both the aforementioned
cases.
V on profile
on B axis
on profile
V
on B axis
block t
45004607K 82
Prima Electro S.p.A. OPENcontrol – Programming manual
The concept of electronic cam is based on a master axis moving in a controlled mode and one or more
slave axes following a position profile, as a function of the master axis position.
The slave axes follow movements that are pre-defined in tables as positions that the axes have to move
to according to the position of the Master axis. When the CAM is enabled, the master axis position is
searched for in the table and the slave axis position is calculated by linearly interpolating (or via
polynomials) two points including the master position.
The master axis positions have to be monotonic i.e. increasing or decreasing continuously. The master is
an interpolated axis. In addition, a master axis can set and reset outputs at certain positions. In this
case, a table has to be created that contains the master position and the corresponding output in each
line.
The tables are created from a file in .csv format. The file is organized as strings, where each string
refers to a position of the cam.
The first string contains information on the type of file and of the number of strings compiled, on the
type of positioning for the master axis and on the type of positioning for the slave axis. There can be
three types of files, and depending on that, the fields related to the type of positioning will or will not
be taken into account:
A file with two columns in which the first contains the master axis positions and the second the
corresponding positions of the slave axis.
0;4;MRel;SRel First StringFileType; StringNum;TypePosMaster;TypePosSlave
100;10 Other StringsMaster;Slave
150;13
200;18
250;10
A file with two columns in which the first contains the master axis positions and the second
polynomial coefficients from which are taken the corresponding positions of the slave axis.
1;4;MRel;SRel First StringFileType; StringNum;TypePosMaster;TypePosSlave
100;1;0.2;3.3;4;5 Other Strings Master;pS0;pS1;pS2;pS3;pS4;pS5
150;;;;;;
200;;;;;;
250;;;;;;
A file with two columns in which the first contains the master axis positions and the second the
information on the digital outputs:
2;3;MRel First StringFileType; StringNum;TypePosMaster
100;OW(12,0xF000,0xFF00) Other StringsMaster;Output
200;OF(0x01,0x03)
300;MW(1000,0xF000,0xFF00)
45004607K 83
Prima Electro S.p.A. OPENcontrol – Programming manual
The fields related to the type of positioning determine if the positions contained into the subsequent
strings must be considered absolute or relative. When the fields MRel and/or Srel are 0, the positions
defined in the file are referred to the Home Position: the activation of origins to the master and/or slave
axes before the execution of the cam, must be taken into account when activating the cam calculating
the proper parameters OffMast and OffSlav described later.
When the fields MRel and/or Srel are 1, each record of the file represents the displacement of the axis
related to the activation position of the electronic cam (in the first record there must be always a null
displacement)
Then:
MRel = 0 PtabM = PaxM + OffsM
Srel = 0 PaxS = PtabS + OffsS
MRel = 1 PtabM = PaxM + OffsM – PactM
Srel = 1 PaxS = PtabS + OffsS + PactS
where:
PtabM it is the value of the position of the master axis to be searched into the table
PtabS it is the value of the slave position derived from the table lookup
PaxM it is the value of the filtered current position of the master axis
PaxS it is the value of the coupling position to assign to the slave axis (if filters are activated on the slave
axis this position will be further filtered)
PactM it is the value of the filtered position of the master axis when activating the cam
PactS it is the value of the filtered position of the slave axis when activating the cam
The absence of the above fields from the cam file sets MRel = SRel = 0;
The input positions have to be dynamically checked to avoid the slave axes being required to run at very
high speed or to accelerate too much. There are different types of command to be applied to this
feature, each command has a different syntax.
Syntax
where:
AxMast It’s the name of the master axis and is a single ASCII character.
AxSlave Indicates the slave axis of the master and it can be:
a single ASCII character, if the axis is programmed by name
a character ′/′ followed by an integer, if programmed by identifier
The slave programmed by identifier may refer to an axis not belonging to the active
process and therefore it can be a logical axis or an axis belonging to another process, but
shared with the logic.
FileName It’s the name of the file containing the association between the master positions and the
slave positions.
out Identifier of the cam created.
45004607K 84
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
AxMast It’s the name of the master axis and is a single ASCII character.
FileName It’s the name of the file containing the association between the master positions and the
output values.
out Identifier of the cam created.
Definition characteristics:
Up to 64 electronic cams can be defined. Several electronic cams can be associated with a master axis
only executing the association command several times while changing the file and/or the slave axis.
After this instruction, it’s still possible to program the slave movement and the master movement does
not have any effect on the slave or on the outputs.
Syntax
where:
OffsMast Translation value (early or delayed) on the application of the slave position.
Mode Indicates the type of tracking of the slave:
0 Interpolated tracking
1 AXF
Roll If =0 the cam is executed only once. If different from 0, it represents the module
of a rollover cam that will be repeated until a stop command is found. To realize a
rollover cam, the modulus can be different from 360 and the master axis can also
be non-rotary.
CamId Identifier of the cam previously created.
OffsSlav Translation value applied to the slave position.
out Identifier (ActionId) associated with the activation just executed. It has to be used
with the following stop command.
45004607K 85
Prima Electro S.p.A. OPENcontrol – Programming manual
When activating the cam, the position of the master searched for in table will be given by the following
relation:
𝑃𝑚 = 𝑃𝑚𝑎𝑡𝑡 + 𝑂𝑓𝑓𝑠𝑒𝑡𝑀𝑎𝑠𝑡𝑒𝑟
where: Slav
e
𝑃𝑚𝑎𝑡𝑡 present filtered position of the master axis
Mast
er
When the cam is enabled, the position of the slave derived by the table search will be added to the
OffsSlav value as follow:
Slav
e
Mast
er
Syntax:
where:
OffsMast Translation value (early or delayed) on the application of the slave position.
Roll If =0 the cam is executed only once. If different from 0, it represents the modulus
of a rollover cam that will be repeated until a stop command is done. To realize a
rollover cam, the module can be different from 360 and the master axis can also
be non-rotary.
CamId Identifier of the cam previously created.
OffsSlav Translation value applied to the slave position.
out Identifier (ActionId) associated with the activation just executed. It has to be used
in the following stop command.
When activating the cam, the position of the master searched in table will be given by the following
relation:
𝑃𝑚 = 𝑃𝑚𝑎𝑡𝑡 + 𝑂𝑓𝑓𝑠𝑒𝑡𝑀𝑎𝑠𝑡𝑒𝑟
dove:
𝑃𝑚𝑎𝑡𝑡 present filtered position of the axis
45004607K 86
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics of enabling:
Up to 128 activations can be enabled simultaneously. The same cam can be enabled several times, for
example, changing the values of OffsSlav and/or OffsMast. After this instruction, it is no longer
possible to program the movement of the slave.
It’s important to distinguish between the enabled cam status and the status of released slave axis. The
cam is enabled following to a start command. The slave axis is released only when the master in within
the synchronisation range defined in its table. The slaving and release positions are the first and the last
point of the table.
When enabling the electronic cam, the real-time software searches for the master position in the table
and calculates the point to be passed to the slave. At this moment, the slave may not be close to the
first point of the cam profile therefore it must move at the maximum of its dynamic characteristics to
reach the position required. If Mode = 1 the error between the real position and the theoretical one is
regained during the movement going – if possible – to a speed higher than the programmed one (see
master-slave). This problem also occurs when cams repeat.
It can be necessary to pass “on the fly” from a cam profile to another on the same slave axis. In order to
make this, the cam in execution must be stopped and the new one enabled. The execution of the new
profile will be enabled only when the slave axis is released, therefore - in case of a rollover cam – the
new profile will be made in the same cycle if the new start position is higher than the position where the
axis is released. In case of a one-shot cam, the new profile will be realized only if the new start position
is higher than the position where the slave axis is released.
If the RESET command is performed a during the execution of the cam, the active cams are neither
disabled nor deleted but remain in waiting for a restart of the master. To disable and delete all the
cams of the process, it is necessary to launch (after the RESET) the command (CAM) with no parameters.
45004607K 87
Prima Electro S.p.A. OPENcontrol – Programming manual
This instruction stops the execution of one or more electronic cams and these are disabled.
Syntax
where:
Mode Indicates the cams stop modality. It has different meanings according to the type of cam
to stop.
Master/Slave cam
0 The slave axis stops with its deceleration ramp even if the cam profile is not complete
1 The slave axis stops only when the cam profile is finished (it stops the cyclic cams). In
case of non-cyclic cam, this command is redundant because the cam is automatically
disabled at the end of the profile.
Master/Output cam
0 Outputs do not change
1 Outputs are reset
ActionId Identifier of the action previously created.
Characteristics:
At the end of the command execution, the “Action” is automatically deleted. Note that the Reset
command does not delete the activation, but only interrupts the electronic cams execution (as the
explicit Stop).
Syntax
(CAM, 0, [,CamId]+)
where:
CamId Identifier of the cam previously created.
45004607K 88
Prima Electro S.p.A. OPENcontrol – Programming manual
3.1.35.7 Deactivating and deleting all the electronic cams of the process
This instruction deactivates all the electronic cams and deletes all the associations Master/Slave or
Master/Output
Syntax
(CAM)
Example:
Cam file.csv
0;9
0;0
100;100
200;200
300;300
400;400
500;300
600;200
700;100
800;0
N10 (CAM,1,X,Y,"camma.csv", E0) Defines the electronic cam between X and Y axes
N20 (CAM,1,X,Z,"camma.csv", E1) Defines the electronic cam between X and Z axes
N30 (CAM,1,X,A,"camma.csv", E2) Defines the electronic cam between X and A axes
N40 G0Y0Z0A0 Moves the slave axes until the first point of the file
N50 (CAM, 3, 0, 0, 0 ,E0, 0, E10, E1, 0, E11, E2, 0, E12) Enables the 3 cams in one-shot modality
N60 G1X1000F4000 Moves master axis
N70 (CAM, 9, 0, E10,E11,E12) Stops the active cams (unnecessary command)
N80 (CAM,0,E0,E1,E2) Deletes the cams
Example:
N10 (CAM,1,X,Y,"camma.csv", E0) Defines the electronic cam between X and Y axes
N20 (CAM,1,X,Z,"camma.csv", E1) Defines the electronic cam between X and Z axes
N30 (CAM,1,X,A,"camma.csv", E2) Defines the electronic cam between X and A axes
N40 G0X0Y0Z0A0 Moves the slave axes until the first point of the file
N50 (CAM, 3, 0, 0, 0 ,E0, 0, E10) Enables cam 1 with master offset 0
N60 (CAM, 3, -810, 0, 0 ,E0, 0, E10) Enables cam 2 with master offset -810
N70 (CAM, 3, -920, 0, 0 ,E0, 0, E10) Enables cam 3 with master offset -920
N80 G1X2000F4000 Moves the master axis
N90 (CAM, 9, 0, E10,E11,E12) Stops the active cams
N100 (CAM,0,E0,E1,E2) Deletes the cams
45004607K 89
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
camPEG file.csv
2;12
10;OW(13,61440,65280)
20;OW(14,0xF000,0xFF00)
30;OW(13,3840,65280)
40;OW(14,0x0F00,0xFF00)
50;OW(13,61440,65280)
60;OW(14,0xF000,0xFF00)
70;OW(13,3840,65280)
80;OW(14,0x0F00,0xFF00)
90;OW(13,61440,65280)
100;OW(14,0xF000,0xFF00)
110;OW(13,3840,65280)
120;OW(14,0x0F00,0xFF00)
45004607K 90
Prima Electro S.p.A. OPENcontrol – Programming manual
G CODE FUNCTION
G04 Dwell at end of block
G05 Feed Hold at the end of the movement
G06 Feed Hold at the beginning of the movement
G09 Deceleration at end of step
G16 Define interpolation plane and Cartesian tern for circular interpolation in
space.
G17 Circular interpolation and cutter diameter compensation on the plane defined
by first and second axes defined in AMP. Cartesian tern for circles in space
formed by three axes in AMP.
G18 Circular interpolation and cutter diameter compensation on plane defined by
third and first axes defined in AMP. Cartesian tern for circles in space formed
by three axes in AMP.
G19 Circular interpolation and cutter diameter compensation on plane defined by
second and third axes defined in AMP. Cartesian tern for circles in space formed
by three axes in AMP.
G26 Continuous operation with transition to zero speed at the end of block
G27 Continuous movement with automatic velocity reduction on bevel
G28 Continuous movement without automatic velocity reduction on bevel
G29 Point-to-point movements
G31 Movement preparation for ActiveReset function
G70 Programming in inches
G71 Programming in millimetres
G78 Programming referred to the tool tip and motion referred to the machine zero
G79 Programming and motion referred to machine zero
G90 Absolute programming
G91 Incremental programming
G92 Axis pre-setting
G93 Inverse time (V/D) feed rate programming mode
G94 Feed rate programming in ipm or mmpm
G95 Feed rate programming in ipr or mmpr
G98 Axis pre-setting It functions like G92 but also applies when mirror is active.
G99 Cancel Axis pre-set
NOTE:
The planes specified in G17, G18, G19 are valid if at least three axes have been configured in AMP.
45004607K 91
Prima Electro S.p.A. OPENcontrol – Programming manual
G17 Active interpolation plane formed by axes 1 and 2 (usually XY) and third tern axis (axis 3,
usually Z).
G18 Active interpolation plane formed by axes 3 and 1 (usually ZX) and third tern axis (axis 2,
usually Y).
G19 Active interpolation plane formed by axes 2 and 3 (usually YZ) and third tern axis (axis 1,
usually X).
Axes 1 (X), 2 (Y), and 3 (Z) are the first three axes declared in AMP configuration.
Syntax
G17
G18
G19
The syntax for each function is simply the G code by itself in one block without parameters or other
pieces of information.
Characteristics:
G17, G18, G19 cannot be used if the following G codes are active:
Cutter compensation (G41-G42)
Standard canned cycles (G81-G89)
High- speed programming (G61)
45004607K 92
Prima Electro S.p.A. OPENcontrol – Programming manual
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.
axis3 Is the name of the third axis in the Cartesian tern (typically Z). It is used to program the
circular interpolation in space. It must be one of the configured axes in the system.
Characteristics:
G1 cannot be used if the following G codes are active:
Cutter compensation (G41-G42)
Standard canned cycles (G81-G89)
High- speed programming (G61)
Example:
G16 X A specifies the interpolation plane formed by axes X and A .
45004607K 93
Prima Electro S.p.A. OPENcontrol – Programming manual
As shown below, the code G31, together with the external command Active Reset (from PLC) carries out
the following functionalities:
stop the running axes movement and restart from the following programmed block, getting the present
position as starting point.
P0
Programmed profile:
Executed profile after
…
Active Reset command P2
G1 X0Y0 (P0)
G31 X1Y1 (P1)
G1 X2Y2 (P2)
… Programmed profile
Active Reset P1
Syntax:
where:
codes-G Other G codes compatible with G31 (see paragraph 2.5 “G Codes”).
operands All the operands and the codes that can be used in G function blocks.
Charatceristics:
This functionality can be executed also in continuous (G27)
G31 stops the continuous at the end of the movement imposing the synchronism
Geometrical element executed during G31 can be programmed in the same block or keep the
one active at that moment. It can also be a circular (in the plane or in the space) while it cannot
be a spline or a canned cycle
Following the external command ActiveReset, received during a movement in G31, the system
stops this movement and automatically restarts with the following one without cycle start
The restart movement depends on the element type programmed on the block after G31 or
maintains the one active at that moment
Note: due to the ActiveReset, the starting condition of the recovery element is unspecified
and a circular movement could signal the error of circle not congruent.
45004607K 94
Prima Electro S.p.A. OPENcontrol – Programming manual
The postlude M functions (if any) associated with the interrupted movement are ignored
If the system variable ERR is enabled, then the variable STE is initialized at 0 at the beginning of
the movement in G31 and then set to 45when the command ActiveReset finishes
You can start from n successive blocks: simply enter a GTO in the program after the G31 and
condition it to the variabile STE. As alternative, program the code G31 before the blocks to skip
and manage the ActiveReset during the consent to move also for these movement
The communication with the PLC to signal the function ActiveReset: available, to be executed,
finished, is made using the variable WinPLUS SW32 (field S_nFIXSTA)
If the system switches in HOLD during a G31 and there is an ActiveReset, the movement restarts
from the following block in the HOLD output, even if in the meanwhile another movement or a
program is HOLD status have been executed
For more details on the ActiveReset function PLC side, refer to the paragraph “process Variables” in
the OPENcontrol Application Manual.
G26 Continuous operation with transition to zero speed at the end of block.
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 and MDA values and the maximum velocity step configured
on the axes.
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 feed rate.
G29 Determines a point-to-point movement, that forces synchronisation (the look-ahead queue is
emptied, PLC movement is permitted, enters into tolerance) independent of the programmed
trajectory type (G01 - G02 - G03 – G12 – G13). The output feed at the end of each motion block of
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 2).
45004607K 95
Prima Electro S.p.A. OPENcontrol – Programming manual
Characteristics:
The following diagram shows how G26, G27, G28 and G29 operate when the programmed feed rate is
constant throughout the profile.
FEED
G27
1 2 3 Blocks
G28
1 2 3 Blocks
G26
1 2 3 Blocks
G29
1 2 3 Blocks
45004607K 96
Prima Electro S.p.A. OPENcontrol – Programming manual
The following diagrams show how G26, G27, G28, G29 codes work when the programmed feed changes
on each block of the profile.
G27
1 2 3 Blocks
G28
1 2 3 Blocks
G26
Blocks
1 2 3
G29
Blocks
1 2 3
G27 and G28 differ only for the type of deceleration (as shown in previous diagram).
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.
45004607K 97
Prima Electro S.p.A. OPENcontrol – Programming manual
With G26, G27-or G28 (continuous mode) the control explores and executes the profile as if it were a
single block.
For this reason, auxiliary functions S and T are not allowed within the profile executed in G27-G28.
M functions can be executed if in AMP the parameter “allowed in continuous” is set.
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.
Example:
This is a contouring example in continuous and point-to-point mode.
Y
25.65 4
0 3
230 1 2
295 5
187
0
235
75
70.477
45004607K 98
Prima Electro S.p.A. OPENcontrol – Programming manual
If G29 were programmed in block N17, continuous mode would stop when movement finishes
(Z=5) and subsequent moves in G1-G2-G3 would be performed in point-to-point mode.
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.
45004607K 99
Prima Electro S.p.A. OPENcontrol – Programming manual
The variation of the profile is associated with 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 a velocity for this bevel that is based on
the angle, MDA variable and the maximum velocity step configured on the axes.
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.
The look ahead feature (G1 G27) does not handle feed rate override. In fact, at this stage a
100% feed rate is assumed. Higher feed rates may generate SERVO ERRORS.
Syntax
UDR = value
UVR = value
where:
value It is a numerical value that can be:
0 to disable the use of dynamics/rapid feed (default)
1 to enable the use of dynamics/rapid feed
Characteristics:
This variable allows the execution of the same profile twice: the first time is faster for the roughing, the
sencod time is set to maching speed for finishing.
45004607K 100
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
DLA=value
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 feed rate 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 ODM.
45004607K 101
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
mode: represents access mode to precalculation queue, valid values:
R: reading access
W: writing access
value: depending on the requested access mode, it represents the variable where the
precalculation queue dimension will be written (access in reading) or the value with which
to modify precalculation queue (access in writing).
In case of access in reading, value must be a variable, while in case of access in writing it
can be equally a number or a variable.
Characteristics:
During work in continuous, access in reading or writing to the Look Ahead queue, executed by part
program, determines the emptying of the entities in queue imposing the synchronism at 0 speed.
Example:
(LKH, R, E0) ; with this command it is possible to read the number of precalculation blocks
and to save it in the variable E0
; with this command it is possible to set ast 100 the number of precalculation
(LKH, W, 100)
blocks
(LKH, W, E0) ; with this command it is possible to restore the previous number of
precalculation blocks
45004607K 102
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
CRV = value
where:
value Is a positive real number. It fixes the time (in ms) used for curve computation.
If 0 no optimisation will be performed.
Characteristics:
The numerical control computes feed on profile depending on the angle between elements and it does
not take into account the length of the elements.
Sometimes, when a part program is generated by points, curves are described by a relevant number of
small segments with small angles between them. In this case computed speed is high and the segments
are travelled in a very small time, or can even be skipped; as a consequence the final profile could be
inaccurate.
When CRV variable is set, the control takes into account the length of segments and their shared angles
during feed computation, in this way it can control the feed value on curves. To define the space used
for curve computation it is compulsory to define an “observation” time. Defining an “observation” makes
it possible to take into account ratios between speed and the lengths of the element defining the
trajectory. In this way it is possible to control both curves made up by very short segments travelled at
reduced feed and curves made up by longer segments travelled at high feed.
Variable CRV can also be used to remove hard braking where “calculation noise” appears on smooth
profiles. Usually a value for CRV between 4.0 and 6.0 assures good results.
Higher values could generate problems of missing elements, since many elements would need to be
analysed before a movement could start.
45004607K 103
Prima Electro S.p.A. OPENcontrol – Programming manual
β= 90°
45004607K 104
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
MDA=value
where:
value is an angle between 0° and 360°
Characteristics:
In order to alter the default value (MDA = 90 degrees) you may assign MDA in the configuration or enter
it through a specific data entry or a part program block.
The system forces the axis to decelerate to zero velocity when the direction is greater than
the angle defined by the MDA value. The system calculates a deceleration ramp for the
programmed axis if the direction is less than or equal to the angle defined by the MDA value.
Since the system calculates deceleration on bevels from the actual angle and the MDA value, it
is possible to alter velocity reduction by changing the MDA value and the maximum velocity
step configured on the axes. Small values of MDA generate dramatic deceleration on bevels.
The system RESET restores the configured MDA value.
Examples:
MDA=90°
MDA=180°
45004607K 105
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
MOM = value
where:
value is an integer that identifies the mode for movement execution. It can be programmed
directly with a decimal number or indirectly with E parameters.
In this mode the resulting movement depends on whether one or multiple axes
are manually moved; in both cases axes can be moved within their operating
range (if activated)
For manual movements concerning a single real axis (meaning a non-virtual axis
or tool direction axis), the resulting movement is set into the range of the
operating limits, meaning that the limits are included in movement parameters
and they can be checked before the actual movement starts. The axis, when and
if it reaches the limit, stops in a controlled way, stops using its value for
deceleration in manual. This mode is activated after the axis has been selected
using the human interface (e.g. WinNBI, Human Interface, …).
For manual movements concerning multiple real axes or for movements along a
0 virtual axis and/or tool direction axis, the resulting movement has no limit for
axes movement, a specific look-ahead algorithm checks if the axis exceeds the
operating limits. When the algorithm estimates that the limit will be exceeded
the system generates an emergency and each axis stops using its rapid
deceleration. This implies that, if a virtual axis (for instance W axis in tool
direction) was moving, the corresponding stop cannot happen along the (virtual)
axis direction, since each axis stops using its deceleration value, so the original
trajectory CANNOT be respected. This type of axes selection can be enabled only
by the PLC.
After the operating limits are reached, all the types of deceleration use
“trapezoidal” ramps, and a maximum deceleration is maintained equal to the
emergency deceleration.
In the case of movement of a single real axis, nothing changes compared to mode
0; in all other cases (i.e. manual movements with selection of several real axes
or movements along virtual axes and/or tool direction) new lookahead algorithms
are enabled, together with stop when reaching operating limits.
1
When moving along the tool direction axes, the moment when the operating limit
is reached is calculated according to the direction of the movement along the
virtual axis in use. When the lookahead starts, the deceleration is made along the
virtual axis in a controlled way using the manual acceleration of the virtual axis.
In this case, the original trajectory defined by the virtual axis does not change.
45004607K 106
Prima Electro S.p.A. OPENcontrol – Programming manual
Mode Description
When the operating limit is reached, it does not generate an emergency but a
controlled stop (with manual acceleration) only of the individual axis reaching
the operating limits. Any other axes continue their movement.
For example, moving axis W (TCP tool direction) together with the rotary axis A,
when reaching the W operating limit (for real axes XYZ) will lead to the stop of
only the W axis (XYZ) and not A.
If TCP is enabled, the operating limit of the movement (axes or tool direction) is
usually controlled according to the physical position of the axes. The control can
also be enabled toward the tool tip activating the operating limits on the tool tip
as well.
The algorithm for the lookahead of the operating limits being reached on single
physical axes, remains active so as to control the limits when the axis movement
is generated by several components (i.e. in case of TCP, to the movement of the
linear axis the offset due to the movement of the rotary axis is added).
The behaviour of this algorithm is changed to:
stop only the movements leading to a movement of the axis exceeding the
operating limits.
For example, in case of TCP, if the limit is set to the linear X axis, in addition to
the linear axis itself, the rotary axes are stopped as lead to a movement of the X
axis, but not of Y and Z a axes. In case of TCP,5, the movement along W will stop
when the operating limit of one of the TCP linear axes is reached.
If (TCP, 5) is enabled, it is possible to move the tool direction axes (axis W and
other axes of the plane defining the head or the XY plane) when moving the
other axes, whether or not associated to the TCP except for the TCP linear axes.
In case simultaneous movement of virtual axes and rotary TCPs is required, the
movement is enabled only on virtual or rotary axes, forcing on the excluded axes
a “Manual Override” equal to 0%.
For example, by selecting W (tool direction) and A (rotary TCP,) the manual
movement starts by moving only the W axis; if trying to move A also, this won’t
move until axis W is set to 0% feed. Once the A axis starts to move, axis W cannot
be moved until axis A has 0% feed.
All the types of stop for operating limits reached, use “trapezoidal” ramps with
acceleration equal to the manual acceleration.
It behaves like mode 1, in this case all axes are stopped when any one of them
2
reaches its operating limits.
45004607K 107
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
EMGERR = value
where:
value Can be 0 or 1. It can be programmed directly or through a E parameter. Value 0 enables
the management of the emergency reaching the operating limits (standard behavior),
value 1 change the emergency to error
Characteristics:
Reaching an operating limit generates an emergency and it can happen in the following cases:
During a movement with TCP when the phisical positions of the axes (not the ones of the tool
tip) reach the software limits
During a manual movement if a protected area is violated
During a movement in polar coordinates going within the “minimum radius” area
With the parameter EMGERR equal to 0 the emergency 120 “SW overtravel reached” is generated; with
EMGERR equal to 1 the error 22/150 (151) “End of the movement on the operating limit” is generated.
45004607K 108
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
MOA = value
where:
value It can have value =0 or value =1, and it can be programmed directly or indirectly via an E
parameter. It enables or disables the management of null movement on the axes.
Characteristics:
Allows the dynamic filtering of small movements programmed on the axis, via the three-letter code CPA
with parameter 117 or in ODM (minimum axis position threshold), in order to avoid decelerations
guaranteeing to reach the programmed position. If MOA is active, the feed rate is not reduced even if
(according to the MDA values and the maximum jump in feed on the edge) required in case of angular
deviation of two adjoining movements.
The performance does not apply between two movements having a continuous change of the rotary
planes (lowercase upr).
Syntax
ERF = value
where:
value is a positive real number that can be programmed directly or indirectly with E parameters.
It defines the maximum shape error with respect to the programmed profile.
Characteristics:
If the points sent to the axis are filtered (FLT,1) this introduces an error on the profile: the moving
average, computed to smooth the path, applied to the computed points produces a distortion to the
path geometry. This distortion can be controlled using the ERF variable, that modulates the feed (mainly
on corners) in order to limit the shape error, generated by the floating average algorithm, within the
requested tolerance. Furthermore, the ERF determines, the maximum admitted error during the
execution of a circular motion; this error is managed checking the execution speed of the circular
motion, so the value of ERF limits the execution speed of a circumference.
45004607K 109
Prima Electro S.p.A. OPENcontrol – Programming manual
In general, with the presence of a corner, the distortion to the path geometry generates a form error on
the part which is function of:
Angle on the corner
Velocity passing on the corner
Number of points of the filter
Given the angle between two contiguous movements and the number of points of the filter, the ERF
algorithm calculates the velocity at which the corner must be addressed starting from the (maximum)
error set with this parameter
Then, with a simple change of this parameter (indicatively by a few thousandths to a few millimeters) it
is possible to see significant changes in the dynamic behavior of the machine.
It is possible to vary ERF value during continuous execution. On the edge, it will be applied the ERF value
active on the first of the two movements generating the edge.
Example:
ERF = 0.5
G1 X100 Y0 F10000
ERF = 0.1
G2 Y-100I100J-50
On the edge with coordinates (100,0) i twill be applied ERF= 0.5 while on the circular motion i twill be
applied ERF = 0.1
45004607K 110
Prima Electro S.p.A. OPENcontrol – Programming manual
This problem may be solved using an acceleration function a(t) with a continuous pattern.
The purpose of the "Jerk Limitation" function is to limit variations in acceleration, so as to control its
maximum value, resulting in smoother movement and, consequently, a better surface finish.
V(t)
45004607K 111
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
RAMP = value
where:
value movement behaviour to be enabled. The value to be specified is obtained from the sum of
the values corresponding to each of the desired features.
Uses the ramp configured on the axes
1 Linear ramp
2 S non -linear ramp
3 Trapezoidal ramp
4 Ramp with Jerk limitation (Controllare numerazione)
Characteristics:
The RAMP value can be configured in AMP.
RESET restores default value.
Non-linear ramps work both on point to point movements (G29) and continuous movements (G27 and
G28). The activation or deactivation of non-linear ramps in a continuous movement is not perceived, it is
only perceived in point by point movement mode.
It is recommended to use value 4 for machines with high dynamic levels (high jerks), while value 3
should be used in machines where dynamic levels have to be reduced (low jerks). Configured jerk being
the same, value 3 performs better (in terms of execution times) than value 4, but engenders more
“abrupt” movements.
45004607K 112
Prima Electro S.p.A. OPENcontrol – Programming manual
S non-linear ramp:
Enables the non-linear ramps (S ramps) where the execution mode is characterised by the value of the
JRK variable. The system continuously modulates the acceleration value between 0 and a maximum
whose value is given by A/JRK, so that, with JRK=1 the nominal acceleration value is reached, with
JRK=2 half the nominal acceleration value is reached, with JRK=0.5 twice the nominal acceleration value
is reached. The ensuing jerk values on the movement will NOT be controlled and will range from 0 to an
undetermined value.
Jerk
Velo
c
Accel
In the example above, a movement at a speed of 20000 mm/min with an acceleration of 1500 mm/sec2
has been programmed. The maximum acceleration value is reached only at a time halfway between the
acceleration stage and the deceleration stage. For JRK=1 the acceleration value reached corresponds to
the value requested.
The execution time of the acceleration stage corresponds to the time it would have taken using a linear
acceleration ramp, multiplied by the value of JRK and constant 1.485.
Ramp time is also affected by the “minimum ramp time” parameter configured in AMP for each axis. If
the time calculated for the ramp does not meet the minimum ramp time limit, the ramp will be
recalculated to comply with this requirement.
N.B. The minimum ramp time is time it takes to reach the maximum acceleration value (Jerk application
time) so that, as can be seen from the chart below, the total ramp time corresponds to twice the
minimum time.
45004607K 113
Prima Electro S.p.A. OPENcontrol – Programming manual
Speed
Acce
l
Jerk
Jerk application
time
Trapezoidal ramp
Acceleration ramps are calculated on the basis of the jerk parameters configured in AMP. The jerk value
used within a movement is calculated by the system so as to ensure that the movement complies with
the jerk characteristics specified for each axis. The jerk value configured for each axis must be
construed as the value that can be used during the acceleration stage. The system keeps the jerk value
continuously during the acceleration stage.
Jerk Speed
Accel
45004607K 114
Prima Electro S.p.A. OPENcontrol – Programming manual
In the example above, a movement at a speed of 20000 mm/min with an acceleration of 1500 mm/sec2
and with jerk of 15000 mm/sec3 has been programmed. The maximum acceleration value is reached and
maintained for a certain time in the central part of the acceleration or deceleration stage; it may or
may not reach the maximum value requested as a function of speed step to be made.
Movements, as well as by the jerk parameter, are also affected by the minimum ramp time configured in
AMP for each axis. If the time calculated for the ramp does not comply with the minimum ramp time (is
lower) the ramp is recalculated in order to respect this last constraint.
N.B. The minimum ramp time is the necessary time to reach the maximum acceleration value (Jerk
application time).
Speed
Accel
Jerk
Jerk application
time
45004607K 115
Prima Electro S.p.A. OPENcontrol – Programming manual
Speed
Jerk
Accel
In the example above, a movement at a speed of 20000 mm/min with an acceleration of 1500 mm/sec2
and with jerk of 15000 mm/sec3 has been programmed. The maximum acceleration value is reached only
at a time halfway between the acceleration stage or the deceleration stage and it is below the maximum
value that is requested. Only with a higher jerk will it be possible to reach the maximum acceleration.
Movements, as well as by the jerk parameter, are also affected by the minimum ramp time configured in
AMP for each axis. If the time calculated for the ramp does not comply with the minimum ramp time (is
lower) the ramp is recalculated in order to respect this last constraint.
45004607K 116
Prima Electro S.p.A. OPENcontrol – Programming manual
N.B. The minimum ramp time is time it takes to reach the maximum acceleration value (Jerk application
time) so that, as can be seen from the chart below, the total ramp time corresponds to twice the
minimum time.
Speed
Accel
Jerk
Jerk application
time
45004607K 117
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
JRK = value
where:
value a numeric value greater than 0.5, which is used to define the acceleration management
mode in a non-linear ramp
Characteristics:
The default value is 1. The JRK value can be configured in AMP. RESET restores the default value. By
setting JRK = 1, the acceleration ramp retains the values configured for axis accelerations. Acceleration
increases with a value lower than 1, and decreases with a value higher than 1.
If an acceleration of 1500 mm/sec² is necessary in both movements. In the first case JRK=1 has been
used so that the nominal acceleration value is reached, in the second case JRK=2 has been used so that
half the nominal acceleration value is reached. In the next example JRK=0.5 has been used so that twice
the nominal acceleration value is reached.
45004607K 118
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
FEEDROT = value
where:
value 0: Feed rate programmed on all movement axes
1: Feed rate programmed on linear axes, only
Characteristics:
If this flag is set to 1, the feed rate programmed in a movement block applies to the linear axes. If a
rotary axis is programmed in addition to the linear axes, feed rate is recalculated automatically so as to
ensure that it remains the same on the linear axes. The newly calculated speed is applied only if a
movement includes both linear and rotary axes. It is not applied to the circular motions
(G2/G3/G12/G13/G14), in which a rotary axis is included in the interpolation plan.
45004607K 119
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
RAPSTOP = value
where:
value: 0: rapid stop disabled
1: rapid stop enabled with trapezoidal ramps
2: rapid stop enabled via “reduced” trapezoidal ramps
3: rapid stop enabled via linear ramps f
Characteristics:
When the rapid brake is enabled, the movement stop uses the ramps associated to the RAPSTOP
modality selected. If on the process the linear ramps are activated, the rapid brake (if enabled) always
uses the linear ramps (RAPSTOP=3).
In case of trapezoidal ramps (normal or reduced) only the deceleration parameters and the dejerk along
the profile are considered, ignoring – if present –the minimum ramp times.
The difference between trapezoidal ramps and reduced trapezoidal ramps is:
the trapezoidal ramps have a start and an end phase of the stop movement where the Jerk is
taken into account, therefore, both the beginning and the ned of the stop a phase are “soft”.
the “reduced” trapezoidal ramps apply the Jerk only in the final phase of the stop movement,
therefore start to brake with a ramp similar to the linear one and finish the stop with a ramp
where the Jerk is controlled. This turns out to have a stop faster than the “pure” trapezoidal
ramps.
45004607K 120
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
ODH = value
Characteristics:
To obtain reliable results from the use of ODH, the variable itself must be reset before it is used in the
part program: that is, ODH must be forced to zero before the blocks to be tested. This variable is
normally used when the Part Program is debugged: the system modifies the ODH variable when it detects
critical conditions.
Bit 1: Indicates an excessively high speed and occurs when elements in the profile are too short,
and are skipped due to the excessively high speed. In this case, the machined profile is
deformed. The possible solutions are to reduce the speed, or to recalculate the points in
the program.
Bit 3: Occurs when the system has forced deceleration to avoid deforming the profile when it
cannot completely calculate the acceleration/deceleration ramps for the movement
elements analysed, during machining with non-linear ramps enabled. The possible
solutions are to reduce the speed or to increase the size of the queue of pre-calculation
elements.
45004607K 121
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
........
........
ODH=0 ;the variable is set to zero for velocity verification
G1G28F1000 ;continuous mode starts
........
........
........
........ ;continuous mode blocks
........
........
........
G29M5 ;continuous mode end
(GTO,KO,ODH=1) ;branches if ODH=1
(DIS;"VEL.WITHIN SYSTEM LIMITS")
(GTO,CONT)
........
"KO"
(DIS,"VELOCITY TOO HIGH")
........
........
"CONT"
45004607K 122
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
MBA = value
where:
value 0 emission of auxiliary functions disabled
1 emission of auxiliary functions enabled
Characteristics:
The emission of auxiliary functions is performed only during forward retrace
(see User Manual)
After RESET, the variable is reset with the value configured in AMP.
Syntax:
REM = value
where
value 0 Return to input point in hold
1 Return to end point of movement
45004607K 123
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
G-codes Other G codes that are compatible with G70 and G71 (See "Compatible G codes" table in
Chapter 2).
Characteristics:
If neither G70 nor G71 is programmed, the system will assume the default measuring unit stored in the
system configuration (typically G71).
When the system switches from G71 to G70 or from G70 to G71 it also converts all position and feed rate
information into the relevant unit.
Offsets and origins tables are not automatically converted into the alternative unit
when the system switches between G71 and G70.
When the system switches from G71 to G70 or vice versa, the value for machining
stock allowance (MSA variable) is set to zero.
45004607K 124
Prima Electro S.p.A. OPENcontrol – Programming manual
3.2.24 G90 G91 G78 G79 – Absolute, incremental programming referred to machine
positions (ABSOLUTE) or referred to the tool tip (WORK)
G90 Sets absolute programming, i.e. moves referred to the current origin (position to move).
G91 Sets programming in the incremental system, i.e. moves referred to the position reached
with the previous move.
G78 It defines the programming in workpiece positions, that is referred to the tool tip (WORK),
but with movements in joint positions (executed as if the TCP is disabled), that is without
turning around the tool tip.
It is valid only on the block where it has been programmed.
G79 Sets programming in machine positions (ABSOLUTE). It is valid only in the block in which it
is programmed.
Syntax
where:
G-codes Other G codes that are compatible with G90, G91 G78 and G79 (See "Compatible G codes"
table in Chapter 2).
Characteristics:
If none of these codes is programmed, the default programming mode is absolute (G90), i.e. coordinates
referred to the programmed origin.
G90 and G91 are modal whereas G78 and G79 are not, that is to say they are active only in the block
where they are programmed: in the following block this mode is automatically disabled.
Using characters >> allow mixed incremental/absolute programming in the same block.
Characters >> positioned before the numeric value of an operand, indicate that it must be considered as
an incremental value and that it is valid for that operand only. Characters >> have a meaning only if G90
absolute programming is active. They may be used for all operands on which it is possible to use G91
function.
Movements associated to G78 and G79 codes, if executed with TCP, or with UPR, or with active
virtualizations, will be then executed in point to point mode.
45004607K 125
Prima Electro S.p.A. OPENcontrol – Programming manual
The use of mode G78 allows programming final part positions (WORK) so that they can be
reached avoiding those wide movements of the head around the tool tip which are typical of the
movements when TCP is active, making instead a direct movement between the initial and final
position. This allows to accelerate some types of positionings.
On the other hand, a five axis motion in G78 or G79 mode, as it is not executed moving around
the tool tip (that is, moving as if the TCP is disabled, although active), could result in tool
shakings due to the rotary axes movement with possible collision between the tool and the
piece: for this reason this type of programming is suitable only for positioning movements in the
air at a safe positions.
As an example, the following figure represents the movement of a head with active TCP but in
G78 mode: the direct movement between the initial point (P1j) and the final point (P2j)
programming the points P1w and P2w in workpiece positions (WORK) is highlighted. However
during the movement the tool tip escapes from the profile due to the rotary axis movement.
To execute the same movement in G79 mode, it would be necessary to program the final point
in joint positions (ABSOLUTE) that is the point P2j. This would require the knowledge of the
head geometry in order to calculate the joint positions (P2j) so that at the end of the movement
the tool tip would be in the required point (P2w). For this reason, G79 mode is normally used for
simple movements like head lifting at a safety position of Z, even with active TCP.
Movement executed
in G78 or G79
P1j P2j
P1w P2w
Obtained profile
Indicating with P1w the initial programmed point and P1j its corresponding mill centre, the final point
P2j can be reached by the machine through a linear motion from P1j to P2j and from A to A1 to A2,
following the programming:
(TCP,1)
; joint point of coordinates X2j, Y2j, Z2j, A2
G79 P2j
or
G78 P2w ; piece point of coordinates X2w, Y2w, Z2w, A2
45004607K 126
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
G90 G1 X + 80 Y >> + 35 Z-70
The value associated with Y is considered as incremental.
Example:
This example shows how to use the different reference systems: absolute, incremental and HOME
position.
Absolute Origin 1
HOME
"HOME"
Position
Machine Zero
Program:
45004607K 127
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
G92 axes
G98 axes
G99
where:
axes Are fields containing axes name-value. Up to 12 couples axes-value can be specified.
Characteristics:
G98 works the same way as G92, except that G92 does not take into account the MIRROR applied to the
programmed axes and G98 does.
Codes G92 and G98 are cancelled by the following functions:
G99
M30
System reset
Machine logic (PLC)
The G92 or G98 offset shifts the origin for a part program but does not cause any axis motion. When the
axis value is entered in a G92 or G98 block it becomes the current axis position.
Example:
........
Y
........
G0 X100 Y80
G92 X0 Y0
........
80 ........
100 X
45004607K 128
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
G-codes Other G codes that are compatible with G4, G9 (See "Compatible G codes" table in Ch. 2)
operands Any operand or codes allowed in a G function block.
Characteristics:
G04 causes a dwell at motion end in a block. The DWT command must be programmed in a block that
precedes G04. If no DWT is be programmed, the system assumes the characterised dwell.
G04 is allowed only when the control is in point-to-point (G29) and is valid only in the block in which it is
programmed. The value set in DWT may be expressed in seconds (G94 or G95 with G0 active) or
revolutions (G95).
G09 forces a feed rate equal to zero at the end of the block in which it is programmed, but does not vary
the machining status of the profile in progress. If control is in point-to-point mode (G29) or is
programmed at the end of a block, G09 does not cause any change in the control status and is valid only
in the block in which it is programmed.
G4
DWT t
V
G9
45004607K 129
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
G-codes Other compatible G-codes with G05, G06 (see chapter 2 Compatible G-Codes).
operands All the operands and codes allowed in the G function blocks
Characteristics:
Code G05 puts the process in Feedhold state at the end of the programmed movement.
Code G06 puts the process in Feedhold state at the beginning of the programmed movement.
Both G codes can be programmed either in blocks that include a movement or in blocks not containing
programmed movements. In the second case the two codes behave the same way.
G05 in a block containing movement: during the movement it is possible to deactivate (by PLC with
specific call) the enter in feedhold at the end of the movement; in this case the passage between two
movements will take place in velocity (if allowed by the dynamics of the two movements).
G06 in a block including movement: during the execution of the movement that preceedes the G06 it is
possible to deactivate (by PLC with specific call) the enter in feedhold at the start of the movement; in
this case the passage between two movements will take place in velocity (if allowed by the dynamics of
the two movements). If in the previous block G05 was programmed, the G06 of the current block is
automatically deactivated performing the feedhold exit request at the end of the previous block.
Example:
G1 X10 Y1 t6
Characteristics:
The t function is valid only for the block in which it is programmed. The time is expressed in seconds and
the control automatically calculates the feed rate at which the moves of the axes programmed in the
block will be executed.
45004607K 130
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
DWT=value
where:
value Is a time in seconds or revolutions. It can be programmed directly with a decimal number
or indirectly with E parameters.
Example:
DWT = 12.5 assigns a dwell time of 12.5 seconds
E32 = 13.4 assigns the value 13.4 to the E32 variable
DWT = E32 assigns a dwell time of 13.4 seconds
1
𝑭=
𝑇
Linear interpolation:
𝐹𝑒𝑒𝑑𝑟𝑎𝑡𝑒
𝑭=
𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒
Circular interpolation:
𝐹𝑒𝑒𝑑𝑟𝑎𝑡𝑒
𝑭=
𝐴𝑟𝑐
where:
Feed rate linear or circular speed expressed in mmpm (G71) or ipm (G70)
Distance vector distance of linear motion expressed in inches or mm
Arc arc length expressed in inches or mm.
With G93 active, the F function is valid only in the block in which it is programmed
Example:
G93 X. . Y. . F. .
G1
X. . Y. . F. .
45004607K 131
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
VFF=values
where:
value Can be:
0: disables VFF: (only the position of the axes is controlled, that is taking into
consideration the error margin between the tracking and its theoretical position)
1: enables VFF: (the speed of the axes is also controlled). The control is made only for
movements in AUTO or MDI
2: similar to mode 1, but only for manual movements
3: similar to mode 1, but for all movements
NOTE:
The VFF default value is 0 and can be configured in AMP using ODM tool.
Syntax
FOP=value
where:
value this is a value that can be:
0: applies the override feed on the feed value calculated
1: applies the override feed on the feed value programmed
Characteristics:
FOP is a read-only variable, its value can be changed in the AMP using the ODM or the dedicated PLC
command.
Example:
FeedOverride set to 50%.
Maximum working feed of the X axis: 6000 mm / min
Programmed block:
G1 X1000 F16000
If FOP = 0:
Feed applied: 3000 mm / min: first, the control limits the feed at the maximum accepted by the
axis, then it applies a 50% feed override
If FOP = 1:
Feed applied: 6000 mm / min: first, the control calculates the feed with 50% override feed (8000
mm /min), then it applies the limitation due to the axis feed limit.
45004607K 132
Prima Electro S.p.A. OPENcontrol – Programming manual
COMMAND FUNCTION
45004607K 133
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
value1 . . .value12 Programs the scale factor. Scale factor can be programmed directly with a decimal
number or indirectly with an E parameter.
axis1 . . . axis12 Axis name and value. It must be one of the axes configured on the system. The
control will apply the scale factor on the specified axis.
Characteristics:
You can specify up to twelve axes in the SCF command. The control cancels scaling for axes that are not
specified in the command. A SCF command programmed without a scale factor or axes cancels scaling
for all axes.
Example:
.
.
.
(SCF, 3) Applies a 3 scale factor to the programmed dimensions for all configured axes.
.
.
(SCF, X2.5, Y3) Applies a scale factor of 2.5 to the programmed dimensions of the X axis and 3 to
the Y axis and deactivates scaling for all other axes.
(SCF) Deactivates scaling for all axes.
The system RESET disables the scale factor for all axes
45004607K 134
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
axis1. . .axis12 Is the name of the axis to be moved in mirror.
Characteristics:
You can program up to twelve axes in the MIR command. Program an axis only once per each MIR
command. If a given axis is not programmed in MIR, any mirror function for that axis will be turned off.
If no axis is programmed in the MIR command, the mirror function will be reset for all configured axes.
The control mirrors the programmed axis move with respect to the current origin, applying the mirror
function from the first motion block including that axis after the MIR command.
If you use plane rotation (ROT) in conjunction with the mirror (MIR) command, the control processes
them in the following order: MIR then ROT.
The system RESET disables the MIR command for all axes. It is equivalent to programming (MIR)
without parameters.
Example 1:
(MIR,X) (MIR)
3 4 4 3
2 1 1 2
0 X
2 1 1 2
3 4 4 3
(MIR,X,Y) (MIR,Y)
. Mirroring not active. Moves occurring the first quadrant. Moves referred to the
current origin.
.
N24 (MIR,X) Mirroring active for the X axis only. Programmed +X moves generate a move shown
in the 2nd quadrant.
.
45004607K 135
Prima Electro S.p.A. OPENcontrol – Programming manual
.
.
N42 (MIR, X, Y) Mirroring active for the X and Y axes. Result of programmed moves
. shown in the 3rd quadrant.
.
.
N84 (MIR, Y) Mirroring active for the Y axis and inactive for the X axis. Moves in the 4th quadrant.
.
.
.
N99 (MIR) Mirroring inactive for all axes. Moves in the 1st quadrant.
Example 2:
This example shows how to use the MIR command. Also note the use of RPT and ERP.
90 40 40 90
Program:
N199 (DIS."MILLING CUTTER D =16")
N200 S1500 T8.8 M6
N201 (RPT, 2)
N202 G X90 Y20 M3
N203 Z-100
N204 G1 Z-105 F150
N205 X40 F200
N206 G2 Y60 I40 J40
N207 G1 X90
N208 G Z-100
N209 (MIR, X)
N210 (ERP)
N211 (MIR)
N212 Z
45004607K 136
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
angle Represents the value of an angle expressed in decimal degrees. You can program the angle
directly with a numerical value or indirectly with an E parameter. Positive angles are
measured CCW from the abscissa of the current interpolation plane. Negative angles are
CW. If the angle is zero plane rotation is disabled.
mode Optional parameter. If mode is set to 0 or not specified the rotation does not interfere
with temporary (UTO) and incremental (UIO) origins applied after the rotation. If it is set
to 1 the rotation does interfere with temporary (UTO) and incremental (UIO) origins
applied after the rotation, meaning that the origin rotates, too.
Characteristics:
The control rotates programmed coordinates beginning with the first block after the ROT command.
Coordinates referred to the machine zero (G79) are not rotated.
If you use axes rotation (ROT) in conjunction with mirroring (MIR), the control performs them in the
following order: MIR first then ROT.
The system RESET disables the plane rotation. It is equivalent to programming (ROT,0).
45004607K 137
Prima Electro S.p.A. OPENcontrol – Programming manual
Y
(UAO, 1)
(ROT, 30)
(UIO, X100, Y50)
…
50
is applied on this new origin.
100 X
Y
(UAO, 1)
(ROT, 30, 1)
(UIO, X100, Y50)
…
30
Origin is applied with respect to point
100,50 rotated with respect origin 1, the
100
50
45004607K 138
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
Y
30
50
100 X
Program:
(UTO, 1, X100, Y50) Activates absolute origin 1 with temporary origin (absolute offset)
X100 and Y50
(ROT, 30) Specifies 30 degree rotation CCW referred to temporary origin
.
. Moves in this portion of the program are referred to the temporary
origin and rotated 30 degrees CCW
(UAO, 1) Reactivates absolute origin 1
(ROT, 0) Deactivates rotation by specifying a 0 degree rotation around origin 1
Example 2:
Y
70
25
25
10
20
40
55
22
30 X
Program:
N99 (DIS, "DRILLING D=6")
N100 S2000 F200 T3. 03 M6
N101 (UTO , 1, X30, Y22)
N102 (ROT, 20)
N103 G81 R-90 Z-110 M3
N104 X25 Y25
N105 X40 Y10
N106 X55
N107 X70 Y25
N108 G80 Z
N109 (UAO, 1)
N110 (ROT, 0)
N111 S1000 T4.4 M6
45004607K 139
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 3:
This example shows how to use Plane Rotation (ROT) with Repeat (RPT) and Parametric Programming.
Program:
N148 (DIS, " ...")
N149 S1500 T5.5 M6
N150 E25 =0
N151 (RPT, 8)
N152 ( ROT, E25)
N153 G X40 Y M3
N154 Z0
N155 G29 G1 Z-10 F150
N156 X80 F200
N157 Z-18 F150
N158 X40
N159 G Z0
N160 E25 =E25 + 45
N161 (ERP)
N162 (ROT, 0)
45004607K 140
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
n Defines the absolute origin number. It may be an integer between 0 and 100 or an
E parameter. 0 enables the Home Position.
axis1,...,axis12 Is the name of the axis referred to absolute origin n.
Characteristics:
The UAO command allows up to twelve axes. Only one absolute origin can be active at a time for a
specific axis.
When an axis is not specified in the UAO command, it continues to use its currently active absolute
origin. A UAO command programmed without axes (UAO, n) activates origin n for all axes. At power-up,
after a control reset, or with n=0 and no axes, all axes are referred to the home position.
If the program requires different origins for different axes, program a separate UAO command for each
origin required.
The origin values are automatically converted into and displayed in the unit of the current active mode
(G70/G71). The origins are referred to the HOME position that has been characterised in AMP.
Example:
45004607K 141
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
n Defines the number of the absolute origin to be temporarily modified. It is an
integer from 0 to 100. If n=0, the programmed offset is added to the home position
value.
axis1,...axis12 Is an axis and a dimension. The control treats the dimension as an absolute offset
and adds it to the value of the absolute origin for that axis.
Characteristics:
You must declare at least one axis with a dimension in the UTO block but may declare up to twelve axes
with dimensions. An axis can only be declared once in each UTO command.
The axis dimension in the UTO command must be programmed in the currently active measuring unit
(G70/ G71).
If an axis is omitted from in the UTO block, the current absolute origin for that axis stays active.
If a scale factor (SCF) is set, the control applies it to the UTO temporary origin.
Example 1:
Dimensions can be E parameters as shown in the block below:
(UTO,1,XE100)
45004607K 142
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
Y Y
100
N20
100
N10
01
X
Y
Y
250
50
N30
X 02
N40 X
Program:
N10 (UAO,1) Activates absolute origin 1 for all axes.
.
. In this portion of the program all axes use origin 1.
.
N20 (UTO, 1, X100, Y100) Applies a temporary origin (absolute offset) to origin 1, X100 and
Y100.
.
. In this portion of the program axes use origin 1, with X100
as temporary origin.
N30 (UTO, 2, X-250, Y50) Activates a temporary origin (absolute offset) to origin 2, X-250
and Y50.
.
. This portion of the program uses absolute origin 2, with X- 250
. and Y50 as temporary origin and origin 1 for the other axes.
N40 (UAO, 2) Re-establishes absolute origin 2 for all axes.
45004607K 143
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
axis1,...axis12 Is an axis and a dimension. The control treats the dimension as an incremental
offset and adds it to the value of the current origin for that axis.
Characteristics:
You must declare at least one axis in the UIO command, but you may declare up to twelve axes. The axis
dimension in the UIO command must be programmed with the current measuring unit (G70/ G71).If an
axis is omitted from in the UIO block, the current absolute origin for that axis stays active.
Once you activate an incremental origin for an axis it stays active until you:
activate a new incremental origin for the axis with the UIO command
activate an absolute origin with the UAO command
perform a control reset.
close the plane roto-translation using UPR or UPR, 99 instructions.
If a scale factor (SCF) is set, the control applies it to a UIO incremental origin.
Example:
Program:
N12 (UAO,1) Activates absolute origin 1 for all axes.
N65 (UIO, X20, Y20) Applies an incremental offset of X20 and Y20 from origin 1. Absolute origin 1 for
other axes remains in effect.
N121 (UIO, Y-40) Applies a Y-40 increment to the last origin. The X20 incremental origin remains in
effect.
N180 (UIO, X-45) Applies an X-45 increment to the last origin. The Y-40 incremental origin remains
in effect.
N230 (UIO, Y35) Applies a Y35 increment to the last origin. The X-45 increment remains in effect.
N300 (UAO,1) Restores absolute origin 1 for all axes.
45004607K 144
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
n Defines the absolute origin number (1 to 100). The absolute origin must have been
stored via user interface. n can be programmed directly with a positive integer
number, or indirectly with an E parameter.
axis1,...axis12 Is an axis address and a dimension. The dimension is the increment added to the
specified absolute origin of the specified axis and can be programmed directly with
a decimal number, or indirectly with an E parameter.
Characteristics:
You must specify at least one axis and its dimension in the RQO command. Up to twelve axes with their
dimensions can be programmed. Program a specific axis only once for each RQO command.
The dimensions specified in the RQO command must be in the default measuring unit. No scale factor
(SCF) must be applied to dimensions programmed in an RQO command.
The origin is requalified both in the origins file (so that the requalification becomes permanent) and in
memory (if the origin is active when the requalification is applied).
In the table of the origins the requalification values are applied in the unit of measure in which the
selected origin is expressed.
In the case of a diametrical axis, the requalification dimension must be programmed in radial terms,
since the dimension is an increment to be added to the value already present in the origin, which is a
radial value.
Example:
(RQO, 3, X (E31)) Modifies absolute origin no 3 for axis X of the value contained in E31.
45004607K 145
Prima Electro S.p.A. OPENcontrol – Programming manual
COMMAND FUNCTION
45004607K 146
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
axis-name It is the name of the axis whose travel limits must be defined.
lower-limit It is a position for the lower limit. It can be programmed directly with a real
number or through a variable
upper-limit It is a position for the upper limit and it must be greater than the lower limit. It
can be programmed directly with a real number or through a variable
TCP lower-limit It defines the lower operating limit on the tool tip. It can be programmed directly
with a real number or through a variable
TCP upper-limit It defines the upper operating limit on the tool tip and it must be greater than the
lower limit. It can be programmed directly with a real number or through a
variable
Characteristics:
This command can be executed only if the physical operating limits are already active, if not the system
will report the error 23/355.
If the programmed software overtravels exceed the physical operating limits an error is generated
Software overtravels must be programmed in the measuring unit (G70/G71) that is active when the SOL
command is programmed. Active scale factors (SCF) are applied to the operating limits.
The system RESET cancels the command SOL restoring the limits defined in
AMP.
45004607K 147
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
Program:
(SOL, X, -300, 300)
200
.
.
0 .
X (SOL, Y, -200, 200)
200
300
300
0
45004607K 148
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
n identification number for the area (1-4)
value specifies if the tool is confined inside the protected area or outside of it.
0: the tool cannot exit from protected area
1: the tool cannot enter the protected area
Characteristics:
Up to four protected areas can be defined either by part program or by the PLC.
Each area is defined with respect to an absolute reference system. At activation time the area will be
linked to the current reference system.
The part program describing the protected area has to respect the following rules:
The X axis describes the abscissas and the Y axis describes the ordinates. It is not necessary to
define X and Y axes within the process.
The first block of the part program defines the starting point of the protected area. This block
should contain both abscissa and ordinate of the point. No G2 or G3 code is allowed in this block.
G0, G1, G2 and G3 are the G codes allowed in the part program. No other G codes can be used
No three-literal or PLC commands are allowed
If no G code has been specified, then all blocks are assumed to describe linear elements
If the distance between two following points is lower than the null movement threshold the area
is not valid
45004607K 149
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
Y
150
100
Protected area
Closing element
30
0
X
0 100 150 170 220
Program:
....
N10(DPA,1,PROGRAMS\PUNCH.TXT,1) PUNCH.TXT
.... N1 X100Y30
N2 Y100
N3 G3X150Y150R50
N4 G1X170
N5 G3X220Y100R50
N6 Y30
45004607K 150
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(PAE, n [,comp] [,origin] [,axis3 inf, axis3 limit sup] [,ax1 transl] [,ax2 transl] [,ax3 transl])
where:
n identification number for the area already defined using DPA command (1-4)
comp Specifies if the protected area should take into account current tool radius (or machining
allowance):
0: tool radius and machining allowance are ignored
1: protected area should be “adjusted” to take into account tool radius and machining
allowance
By default protected areas are not adjusted.
axis3 inf
axis3 sup Name of the axis used to extend the area in the third dimension and upper and lower
bounds of the area. If this pair of parameters is specified then the area has bounds in the
third dimension and violation checks are performed in space.
By default the violation check is performed by projecting the movement onto the
interpolation plane.
ax1 transl
ax2 transl
ax3 transl Axis name and translation value. It specifies the value of a translation of the protected
area. The axes names have to correspond to current abscissa and ordinate and to the axis
optionally specified in the parameters couple axis3.
Characteristics:
At activation time the protected area is referred to the active interpolation plane and to the origin and
translation optionally specified. For instance if the active plane is YX, then the system will associate the
abscissas of the protected area to Y axis and the ordinates to the X axis.
If the parameter compens is enabled (set to 1) then the extension of the protected area will change
depending on tool radius and/or machining allowance.
If the parameters axis3 inf and axis3 sup are not specified the system will check for violation of the
protected area by projecting every movement on the current interpolation plane.
45004607K 151
Prima Electro S.p.A. OPENcontrol – Programming manual
Examples:
(PAE,2,,,C-10,C20) it enables a check for violations on protected area number 2. Tool radius
will not be taken into account, area is referred to the current origin, there
is no translation of the area. The area is considered as a 3D area, its limits
are -10 and 20 along C axis.
AREA.TXT
Y
N1 X40 Y10
45
N2 X100
35 N3 Y35
N4 X80 Y45
N5 X60
N6 X40 Y35
10 N7 Y10
0 X
0 40 60 80 10
0
(PAE,4,,6) it enables a check for violations of protected area number 4. Tool radius
will not be taken into account, area is referred to origin number 6, there is
no translation of the area.
AREA.TXT
N1 X40 Y10
N2 X100
N3 Y35
N4 X80 Y45
Y
N5 X60
0 20 40 60 80 N6 X40 Y35
N7 Y10
40
30
20 5
X
5 0
Origin 6
(PAE,1,1,,,,X-5) it enables a check for violations of protected area number 1. Tool radius
will be taken into account, area is referred to current origin, the area is
translated by 5 (mm or inches depending on current configuration).
AREA.TXT
Compensated area
N1X40Y10
Rtool = 5
Y N2X100
45 N3Y35
35 N4X80Y45
N5X60
N6X40Y35
10 N7Y10
X
0
0 35 55 75 95
45004607K 152
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(PAD[, n])
where:
n Is the identification number of an area already defined by a DPA command and
enabled via a PAE command.
Characteristics:
This command disables the check for violation of an active protected area.
If no parameter is given all enabled areas are disabled.
The RESET command does not disable the enabled protected area. Protected areas have to be
disabled explicitly.
Example:
(PAD,3)
This command disables checks on protected area number 3.
45004607K 153
Prima Electro S.p.A. OPENcontrol – Programming manual
COMMAND FUNCTION
Syntax:
where:
mode is the mode used to access the parameter, the valid values are:
R: read
W: write
axis It can be the numerical axis identifier or the axis name. When axis is specified by name
(alphabetical character), the axis must belong to the current process, otherwise the
system displays a format error. If the axis is specified using the identifier, it can be
specified directly with an using an integer value or indirectly with a variable.
parameter Is the number identifying the axis parameter. The list of numbers available and the
corresponding parameters are specified below.
value Depending on the required access mode, it is the variable where the value read from the
specified axis parameter (read access) will be stored or the value to be written to the
selected axis parameter (write access).
For read access, value must be a variable, but for write access it can be either a number
or a variable.
Characteristics:
The parameter change made by part program is enabled starting from the following line. The parameter
change is temporary as the default values defined in AMP are restored when the control is rebooted.
The Reset command does NOT restore the configured value of a parameter changed with the CPA
command.
Some parameters are read only, the table below specifies which parameters are read and write or read
only.
45004607K 154
Prima Electro S.p.A. OPENcontrol – Programming manual
Parameter Access
Mnemonic PLC Parameter description
code type
1 fn_AXTYPE Axis type R
2 fn_AXCLOCK Axis clock time R
Ratio between the frequency of the
3 fn_CLOCKRAT interpolator clock associated with the axis R
and the axis clock frequency
Indicates if the axis is digital (value 1) or
4 fn_DIGITAL_AXIS R
analog (value 0).
5 fn_LINEAR_OPTICAL_ENCODER Linear scale present R/W
Indicates if the channel A polarity of the
6 fn_CHANNEL_A_POLARITY_INV R/W
encoder is inverted or not.
Indicates if the channel B polarity of the
7 fn_CHANNEL_B_POLARITY_INV R/W
encoder is inverted or not.
Indicates if the channel Z polarity of the
8 fn_CHANNEL_Z_POLARITY_INV R/W
encoder is inverted or not.
Indicates if the direction count is inverted or
9 fn_DIRECTION_COUNT R/W
not.
Method for detecting the zero marker. It can
10 fn_MARKER_DETECTION R/W
be a level (value 0) or an edge (value 1)
11 fn_RAPID_TRAVERSE_FEED Rapid traverse feed R/W
12 fn_RAPID_ACCELERATION Rapid acceleration R/W
13 fn_MANUAL_FEED Manual or G1, G2, G3 Feedrate R/W
14 fn_MANUAL_ACCELERATION Manual acceleration R/W
15 fn_RAPID_JERK Rapid jerk R/W
16 fn_WORKING_JERK Working jerk R/W
17 fn_ELECTRICAL_PITCH Electrical pitch value R/W
18 fn_MECHANICAL_PITCH Mechanical pitch value R/W
19 fn_ROLLOVER_PITCH Rollover pitch R/W
Maximum voltage for rapid traverse
20 fn_RAPID_TRAVERSE_VOLTAGE R/W
(maximum axis feed)
21 fn_MAXIMUM_FEED Maximum axis feed R/W
22 fn_HOME_POSITION_FEED Feedrate for marker search after limit switch R/W
23 fn_NULL_OFFSET_VALUE Null Offset value R/W
24 fn_HOME_POSITION_VALUE Home position value R/W
25 fn_HOMING_DIRECTION Homing direction search R/W
26 fn_PERCENT_OF_VFF VFF percentage R/W
27 fn_UPPER_SW_OVERTRAVEL Upper software overtravel R/W
28 fn_LOWER_SW_OVERTRAVEL Lower software overtravel R/W
29 fn_SERVO_LOOP_GAIN Servo loop gain R/W
30 fn_STAND_STILL_LOOP_GAIN Loop gain position at standstill R/W
31 fn_POS_ERROR_STAND_STILL Position error at standstill R/W
32 fn_POS_ERROR_WITH_VFF Error position with VFF R/W
33 fn_POS_ERROR_WITHOUT_VFF Error position without VFF R/W
34 fn_IN_POSITION_BAND Position tolerance R/W
35 fn_IN_POSITION_WAIT Input threshold tolerance R/W
36 fn_IN_POSITION_WINDOW Maximum waiting time for input tolerance R/W
37 fn_AXIS_BACKLASH Backlash value R/W
45004607K 155
Prima Electro S.p.A. OPENcontrol – Programming manual
Parameter Access
Mnemonic PLC Parameter description
code type
38 fn_DEAD_ZONE Dead zone value R/W
39 fn_DRIVER_ADDRESS Drive address R
40 fn_HOMING_TYPE Homing cycle type selected R/W
41 fn_ADDITIONAL_SERVICE Additional services R/W
42 fn_MOTOR_TRANSDUCER Motor transducer R
43 fn_PROBING_CONFIGURATION Probing configuration R/W
44 fn_SPINDLE_ZERO_OFFSET Determines the spindle orientation position R/W
45 fn_SPINDLE_WITH_RAMPS Determines spindle with ramp R/W
Determines the axis whose position will
46 fn_SPINDLE_CSS_MASTER R/W
control the constant speed
47 fn_SPINDLE_REV_TIME_GEAR1 Maximum time for spindle reversal (Gear 1) R/W
48 fn_SPINDLE_REV_TIME_GEAR2 Maximum time for spindle reversal (Gear 2) R/W
49 fn_SPINDLE_REV_TIME_GEAR3 Maximum time for spindle reversal (Gear 3) R/W
50 fn_SPINDLE_REV_TIME_GEAR4 Maximum time for spindle reversal (Gear 4) R/W
51 fn_SPIN_POSERR_STANDSTILL Position error at spindle zero speed R/W
52 fn_SPINDLE_SPEED_GEAR1 Spindle speed (Gear 1) R/W
53 fn_SPINDLE_SPEED_GEAR2 Spindle speed (Gear 2) R/W
54 fn_SPINDLE_SPEED_GEAR3 Spindle speed (Gear 3) R/W
55 fn_SPINDLE_SPEED_GEAR4 Spindle speed (Gear 4) R/W
56 fn_SPINDLE_VOLTAGE_GEAR1 Voltage for maximum spindle speed (Gear 1) R/W
57 fn_SPINDLE_VOLTAGE_GEAR2 Voltage for maximum spindle speed (Gear 2) R/W
58 fn_SPINDLE_VOLTAGE_GEAR3 Voltage for maximum spindle speed (Gear 3) R/W
59 fn_SPINDLE_VOLTAGE_GEAR4 Voltage for maximum spindle speed (Gear 4) R/W
60 fn_SPINDLE_GAIN_GEAR1 Spindle servo loop gain (Gear 1) R/W
61 fn_SPINDLE_GAIN_GEAR2 Spindle servo loop gain (Gear 2) R/W
62 fn_SPINDLE_GAIN_GEAR3 Spindle servo loop gain (Gear 3) R/W
63 fn_SPINDLE_GAIN_GEAR4 Spindle servo loop gain (Gear 4) R/W
64 fn_OFFSET_BETWEEN_MARKERS Offset between Markers R/W
65 fn_SKEW_ERROR_MIN Skew error R/W
66 fn_SKEW_ERROR_MAX Maximum skew error R/W
67 fn_SKEW_GAIN Skew gain R/W
68 fn_DRIVE_STATUSW Drive status word R
69 fn_OS3_DRIVE_WARNINGS Drive warning R
70 fn_AXIS_IOSTAT Status of the I/O associated with the drive R/W
71 fn_ACT_MICRO_MARKER_DIST Distance between markers and zero switch R
Maximum allowable distance between zero
72 fn_MAX_MICRO_MARKER_DIST R/W
switch and marker
Identifier of the process to which the axis
73 fn_PROCESS_NUMBER R
belongs
74 fn_AXIS_SHARING Axis shared or exclusive R
75 fn_TRANSDUCER_CONFIG Determines transducer configuration R/W
76 fn_ACTIVE_GEAR_NUMBER Active spindle gear range R
77 fn_ZEROSHIFT1 Zeroshift 1 value R/W
78 fn_ZEROSHIFT2 ZeroShift 2 value R/W
79 fn_AXIS_BACKLASH_TIME Application time for backlash R/W
80 fn_TRANSDUCER_ID Axis transducer identifier R
45004607K 156
Prima Electro S.p.A. OPENcontrol – Programming manual
Parameter Access
Mnemonic PLC Parameter description
code type
81 fn_CONVERTER_ID Axis converter identifier R
82 fn_SETRESRIF Reported Axis status R/W
83 fn_RAPID_TIME_MIN_RAMP Ramp time rapid acceleration R/W
84 fn_WORKING_TIME_MIN_RAMP Ramp time working acceleration R/W
85 fn_RAPID_DECELERATION Rapid deceleration value R/W
86 fn_MANUAL_DECELERATION Manual deceleration value R/ W
87 fn_RAMP_MODALITY Axis ramp type R/W
88 fn_GET_MASTER_SLAVE Master axis identifier associated with slave R
89 fn_AXIS_INTERFACE_TYPE Axis interface type R
90 fn_BW_ENABLE Broken wire enabled or disabled R/W
91 fn_BW_TIME Broken wire application time R/W
92 fn_EDGE_LEAP_FEED Maximum velocity jump on corner value R/W
93 fn_GET_LAST_ERROR real-time axis error value R
94 fn_SPINDLE_SS_GAIN_GEAR1 Spindle stand still servo loop gain (Gear 1) R/W
95 fn_SPINDLE_SS_GAIN_GEAR2 Spindle stand still servo loop gain (Gear 2) R/W
96 fn_SPINDLE_SS_GAIN_GEAR3 Spindle stand still servo loop gain (Gear 3) R/W
97 fn_SPINDLE_SS_GAIN_GEAR4 Spindle stand still servo loop gain (Gear 4) R/W
98 fn_SPIN_ORIENT_SPEED_GEAR1 Speed for spindle orientation (Gear 1) R/W
99 fn_SPIN_ORIENT_SPEED_GEAR2 Speed for spindle orientation (Gear 2) R/W
100 fn_SPIN_ORIENT_SPEED_GEAR3 Speed for spindle orientation (Gear 3) R/W
101 fn_SPIN_ORIENT_SPEED_GEAR4 Speed for spindle orientation (Gear 4) R/W
102 fn_SPIN_ORIENT_ACCEL_GEAR1 Acceleration for spindle orientation (Gear 1) R/W
103 fn_SPIN_ORIENT_ACCEL_GEAR2 Acceleration for spindle orientation (Gear 2) R/W
104 fn_SPIN_ORIENT_ACCEL_GEAR3 Acceleration for spindle orientation (Gear 3) R/W
105 fn_SPIN_ORIENT_ACCEL_GEAR4 Acceleration for spindle orientation (Gear 4) R/W
106 fn_SPIN_STOP_THRESH_GEAR1 Speed threshold for spindle stop (Gear 1) R/W
107 fn_SPIN_STOP_THRESH_GEAR2 Speed threshold for spindle stop (Gear 2) R/W
108 fn_SPIN_STOP_THRESH_GEAR3 Speed threshold for spindle stop (Gear 3) R/W
109 fn_SPIN_STOP_THRESH_GEAR4 Speed threshold for spindle stop (Gear 4) R/W
110 fn_SPIN_IN_POS_BAND Spindle in position band value R/W
111 fn_SPIN_IN_POS_WAIT Spindle in position wait time R/W
112 fn_SPIN_IN_POS_WINDOW Spindle in position window wait time R/W
113 fn_ ENABLE_SERVO_MODE Servo loop type for axis enabling R/W
114 fn_SKEW_RECOVERY_VEL Split axis skew recovery velocity R/W
115 fn_DRIVE_CONTROLW Drive Control Word R/W
116 fn_MIN_AX_VELOCITY Minimum axis velocity R/W
117 fn_MIN_AX_POSITION Minimum axis position threshold R/W
118 fn_DEN_MEC_PITCH Mechanical pitch denominator R/W
119 fn_ZEROSHIFT1_SETUP Zeroshift 1 value setup R/W
120 fn_ZEROSHIFT2_SETUP Zeroshift 2 value setup R/W
121 fn_RAPID_DJERK Rapid DeJerk value R/W
122 fn_WORKING_DJERK Working DeJerk value R/W
123 fn_RAPID_TIME_MIN_DRAMP Rapid deceleration ramp time R/W
124 fn_WORKING_TIME_MIN_DRAMP Work deceleration ramp time R/W
125 fn_REFERENCE_OFFSET Converter offset R/W
126 fn_EMERG_DECELERATION Emergency deceleration value R/W
45004607K 157
Prima Electro S.p.A. OPENcontrol – Programming manual
Parameter Access
Mnemonic PLC Parameter description
code type
127 fn_UPPER_SW_OVERT_TTIP Upper tool tip software overtravel R/W
128 fn_LOWER_SW_OVERT_TTIP Lower tool tip software overtravel R/W
129 fn_DRIVER_SUBADDRESS Drive sub-address R
130 fn_INTERP_POINT Interpolated point (for simulation) R/W
131 fn_LEAP_ACCE Maximum acceleration leap on tangent R/W
Time required to calculate the new position
132 fn_SPINDLE_SYNCH_DELAY target during the transition phase from feed
loop to position loop
133 fn_ECAT_BRIDGE_PED_MODE Pilot mode for Pulse & Direction axes
Enables the use of flags to control
134 fn_ENAB_TGS_FOR_DRIVE Mechatrolink III axes (parametersi
135/136/137/138)
Enables the passage to the drive of the
135 fn_ENAB_VFF_FOR_DRIVE contribution of VFF calculated by the
inerpolator
Enables the passage to the drive of the
136 fn_ENAB_AFF_FOR_DRIVE contribution of VFF calculated by the
inerpolator
137 fn_CONV_AFF_FOR_DRIVE AFF conversion factor
138 fn_PERC_AFF_FOR_DRIVE Percentage of value applied for AFF
In the axes mechatrolink III and OS-Wire
enables the passage to the drive of the
139 fn_CORR_VFF_FOR_DRIVE contribution of feed and acceleration due to
the application of backlash, zeroshift and
geometric offset
In the axes mechatrolink III and OS-Wire
140 fn_OEMC_VFF_FOR_DRIVE enables the passage to the drive of an feed
contribution
In the axes mechatrolink III and OS-Wire
141 fn_OEMC_AFF_FOR_DRIVE enables the passage to the drive of an
acceleration contribution
142 fn_AXIS_BOARD_INDEX Index of the board to which belongs the axis
45004607K 158
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
To change the rapid acceleration (RAPID_ACCELERATION) configured in AMP by writing 2500 mm/sec2 for
the Y axis identified as 2 in the current process. The following commands are equivalent:
Syntax:
where:
mode represents the access mode parameter, the valid values are:
R: read access
W: write access
axis It can be the numerical axis identifier or the axis name. where axis is specified by name
(alphabetical character), this must belong to the current process, otherwise the system
displays a format error. If the axis is specified using the identifier, it can be specified
directly with an integer or indirectly with a variable.
parameter Is the numerical code identifying the parameter drive. The list of valid codes is available
on the drive manual.
value Depending on the requested access mode it represents the variable where to write the
value of the read value of therequested parameter axis (access in reading) or the value
written on the axis (access in writing).
In case of access in reading, value must be a variable, while in case of access in writing it
can be indifferently a number or a variable.
Setting bit 7 to 1 (mask 0x80) of format, the parameter will be written in the EEPROM of
the drive.
For drives with different interface this field has no meaning, set value 0
45004607K 159
Prima Electro S.p.A. OPENcontrol – Programming manual
mask It can be used for YASKAWA drives having a Mechatrolink interface. This is the mask for
writing the drive parameter. It is an optional field, if programmed it must be an
hexadecimal code of 8 characters maximum, preceded with 0x. If the mask is specified,
the parameter will be written only where the corresponding bits are set to 1; if all the
mask bits are 0, the parameter will be completely reset; if the mask value is 0xFFFFFFFF,
the entire parameter will be written.
The default value is 0xFFFFFFFF, therefore if a mask is not specified, all parameter bits
will be written.
For other drive types, the mask has no effect.
Example 1:
e.g. to read the speed loop proportional loop gain parameter (cod. param. = 5004) configured for the Z
axis (id = 3) on an OS-Wire drive. The following commands are equivalent:
(CPD, R, E0, E1, E2, E3) where E0 = 3, E1 = 5004 and E3 = 0
(CPD, R, 3, 5004, E2, 0)
With this command:
(CPD, R, 3, 5004, 2.5, 0) -> the system displays a format error because there is no variable specified for
the destination.
Example 2
e.g. to write the Pn50A parameter “Input Signal Selection 1” of the Sigma-V drive connected to the Z
axis:
(CPD, W, Z, 1290, 32768, 0, 0XF000)
The “P-OT Signal Mapping” field is set to 8 (fourth nibble corresponding to 32768) of the Pn50A
parameter (1290 in decimal) without changing other fields, writing is to RAM and the parameter is 2
bytes long (format = 0).
45004607K 160
Prima Electro S.p.A. OPENcontrol – Programming manual
This chapter explains how to program tools and tool offsets. All the functions described in this chapter
must be handled by the PLC.
The system integrator develops the interface between the control and the machine tool, as well
as the application-specific T and M functions and also the code of the function used for
requalifying and pre-setting: RQT and RQP.
For more information about these T functions you must refer to the machine tool documentation
provided by the machine manufacturer.
Neither “RESET” nor “system power off” disable the offset values applied using "h" or
T functions.
The PLC decides whether the offset values are disabled by the RESET procedure.
45004607K 161
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
tool is the ASCII code of the tool, it is maximum of 32 characters long. This can be programmed
explicitly (with an integer) or implicitly with a local or system variable. If you program it
as a whole number, the system converts it automatically into a string.
tool offset is the tool offset number and ranges from 0 to 300.
It can be an integer or an E parameter
Characteristics:
For the sake of compatibility with OSAI Series 10, the tool code can be programmed in numerical format
of up to 12 digits. The numerical format may be programmed implicitly.
The following examples show different ways of programming tools and offsets.
The following examples show different ways to program tools and offsets.
T1 Selects tool 1 and the tool offset defined in the tool table.
T "U01".1 Selects tool U01 and tool offset 1.
T(SC.5).0 Selects the tool whose name is specified in the five SC variables,
starting from address 0, and without offset.
T.0 Removes the tool offset from the active tool.
T0 Disables the active tool and tool offset.
T.1 Enables tool offset 1 with the active tool.
T1234567890123 Shows a syntax error: tool code programmed in numerical format with more than
12 digits.
T”1234567890123” Selects tool 1234567890123 and the offset given in the tool table.
T(!VbUser).1 Selects the tool identified by user variable !VbUser, string type, and an offset of 1.
T(LS).2 Selects the tool identified by user variable LS and the offset of 2.
TE0.1 Selects the tool identified by user variable E0 and the offset of 1.
45004607K 162
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
T [master] [.tooloffset] / { slave | [slaveini , slavefin] ] | [[ varname, num_var ]] } ,... { slave | [slave ini ,
slavefin] ] | [[ varname, num_var ]] }
where:
master is the ASCII code of the tool, it is 32 characters maximum long. This code can be
programmed in implicit way (with a local or a system string variable) or in explicit
way with a string or with an integer. If an integer is programmed, whose variation
field must be between 0 and 999999999999, the system will immediately convert it
into a string.
tool offset is the tool offset number associated to the toll master. It can be an integer or a
local or system variable ranging from 0 to 300.
slaveini is a tool number representing the first of a series of tools. This can be an integer
or a local or system variable.
slavefin is a tool number representing the last of a series of tools. This can be an integer or
a local or system variable.
Characteristics:
Multi-tool programming is used on perforating machines.
The management of tools associated with the T code is handled by PLC that receives the values of the
programmed tools. Accepted values for the slave tool codes vary from 0 to 65535. Maximum number of
slave tools that can be simultaneously programmed is 64.
As showed above, the list of tools to be used can be specified in three different formats:
1.Single Format
Examples:
T1.2/ 50 tools 1, 50
offset 2
T1.2 /20,33,45,46 tools 1,20,33,45,46
offset 2
45004607K 163
Prima Electro S.p.A. OPENcontrol – Programming manual
Examples:
T1.3 /[ 30, 35 ] equivalent to T1.3 /30,31,32,33,34,35
T1.3 /[ 56, 51 ] equivalent to T1.3 /56,55,54,53,52,51
T1.3 /[ 50, 52 ], [ 10,13 ] equivalent to T1.3 /50,51,52,10,11,12,13
As you can see, the starting tool number can be > or < the final tool number. In the first instance the
tools codes are considered in ascending order while in the second instance in descending order.
Example:
E0 = 1, 30, 45 load in E0, E1, E2 the values 1, 30, 45
T1.2 /{ E0, 3 } equivalent to T1.2 /E0, E1, E2 & to T1.2 /1, 30, 45
E0 = 1, 30, 45 load in E0, E1, E2, E3 the values 1, 30, 45
SN0 = 4, 77 load in SN0, SN1 the values 4, 77
SN4 = 3 load in SN4 the value 3
T1.2 /{ E0, SN4 }, { SN0,2 } equivalent to T1.2 /E0, E1, E2, SN0, SN1 & to T1.2 /1,30,45,4,77
Example:
E0 = 29, 56 load in E0, E1 the values 29, 56
SN6 = 2 load in SN6 the value 2
T1.3 /[ 7, 10 ], 15, { E0, SN6 } equivalent to T1.3 /7,8,9,10,15,29,56
Syntax
TMT = value
where:
value it is a real value expressed directly using a real number or indirectly using a local or
system variable.
Characteristics:
The variable TMT contains the real numerical value passed to the PLC, together with other information,
when executing a T code.
45004607K 164
Prima Electro S.p.A. OPENcontrol – Programming manual
4.4 h address
The h address permits the application of a tool offset both in point-to-point (G29) and in continuous
(G26-G27-G28) modes.
Syntax
h [tool offset]
where:
tool offset is the tool offset number. It can be an integer or a local or system variable between 0 and
300.
Characteristics:
The "h" address must be programmed by itself in the part program block. An "h" address disables the
active offsets programmed with a "T" command.
The axes to which tool offset is applied are those programmed in a "T tool.offset" command. The offset
values are applied to the axes when the system reads the "h" address in the part program. The "h"
address does not need synchronisation either with the logic or with the axes moves.
If “h” is not synchronized, it is displayed when it is read by the part program and not when it is
implemented.
The same occurs in the case of synchronous uses of “h”, as in G96. In this case, the application
of “h” must be synchronized with “#” for the spindle revolutions to function correctly.
Programming "h" without tool offset or with tool offset=0 will disable the tool offset value programmed
with previous "h tool offset" command.
RESET does not disable the correction values applied with "h" address.
The PLC decides whether or not to apply offset values after a RESET.
The offset values programmed with h address are usually displayed in the field reserved for the T
address.
The offset table fields from which offset values are read are as follows:
Offset value Offset table fields
Length 1 Length 1 + Current requalification length 1
Length 2 Length 2 + Current requalification length 2
Length 3 Length 3 + Current requalification length 3
Length 4 Length 4 + Current requalification length 4
Length 5 Length 5 + Current requalification length 5
Diameter 1 Diameter 1 + Current requalification diameter 1
Diameter 2 Diameter 2 + Current requalification diameter 2
45004607K 165
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
.
.
.
T[n].x programs a tool and a tool offset
.
.
hy cancels the x tool offset and enables the y tool offset
.
.
Example 2:
.
.
.
hy enables y tool offset
.
.
T[n].x cancels the y tool offset enabled by h
.
.
Example 3:
.
.
.
hx
.
.
hy cancels the programmed x tool offset and enables y
.
.
45004607K 166
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
(AXO, [[-] [axis1]] [, [ [-] [axis2] ] [, [ [-] [axis3] ] [,[ [-] [axis4] ] [,[ [-] [axis5] ] ] ] ])
(AXO)
where:
axis1 name of the axis associated with length offset 1 in the offsets table. If the "-" sign
is written before the name, the offset value is used with the inverse sign.
If omitted, length 1 of the offset is not associated with any axis.
axis2 name of the axis associated with length offset 2 in the offsets table. If the "-" sign
is written before the name, the offset value is used with the inverse sign.
If omitted, length 2 of the offset is not associated with any axis.
axis3 name of the axis associated with length offset 3 in the offsets table. If the "-" sign
is written before the name, the offset value is used with the inverse sign.
If omitted, length 3 of the offset is not associated with any axis.
axis4 name of the axis associated with length offset 4 in the offsets table. If the "-" sign
is written before the name, the offset value is used with the inverse sign.
If omitted, length 4 of the offset is not associated with any axis.
axis5 name of the axis associated with length offset 5 in the offsets table. If the "-" sign
is written before the name, the offset value is used with the inverse sign.
If omitted, length 5 of the offset is not associated with any axis.
no parameter (AXO) without parameters restores the default association configured in AMP
Characteristics:
The default association between length offsets and characterised axes is made in the AXIS GENERAL INFO
page of the AMP configuration.
This association can be changed with the AXO command.
The pre-set values introduced in the offset tables always have a positive sign. The AXO command can
associate these values with axes bearing negative signs.
45004607K 167
Prima Electro S.p.A. OPENcontrol – Programming manual
ATTENTION: The association axis/length offset characterized with the AMP is restored
following the command (AXO) or after the control reboot.
RESET does not delete the association axis/tool offset
If the control is rebooted after an AXO command and having an active tool, some misalignemnts
between the axes position seen on the screen and the tool offset can occur. This misalignment
can be avoided reprogramming the AXO command enabled before the shutdown and disabling
the tool offset.
The following are examples of length offset values applied with and without AXO commands:
Example 1:
.
.
.
N1 T1.4 M6 Enables the offset 4 of the tool 1 on the axis associated in characterization to the
length 1 of the offset.
.
.
Example 2:
.
.
.
N1 (AXO,-X,Z) Associates: the value of the length 1 of the offset with negative sign to the X axis, the
value of the length 2 of the offset with positive sign to the Z axis
.
.
N50 T1.4 M6 applies length offset values 1 and 2 from offset 4 to axes X and Z as defined in the AXO
command. Length offset 1 will be applied to the X axis with negative sign.
.
.
N100 T0 M6 disables the length offset applied to axes X and Z.
Example 3:
.
.
N1 (AXO,,,,Z) associates the length 4 of the offset to axis Z.
45004607K 168
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
tool is the tool ASCII code
offset is the number of the offset to be requalified. The offset number is a value between 1 and
300.
In the event of overlap between “L” and “L(1)”, “l” and “L(2)” or “d” and “d(1)”, the values are
assigned in the order in which they are written (from left to right) without any error message being
displayed.
Characteristics:
You must specify the length and diameter increments in the RQT command with the currently active
measuring unit (inches or millimetres, G70/G71). These values cannot be associated with a scale factor
(SCF).
Examples:
(RQT,10,1,L E40,d E41) This block requalifies tool 10, offset 1. The length 1 increment is contained
in E40 and the diameter increment is contained in E41.
(RQT,10,1,L E50,L(4) E51) This block requalifies tool 10, offset 1. The length 2 increment is contained
in E50 and the length 4 increment is contained in E51.
45004607K 169
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
tool is the tool ASCII code
offset number of the offset to pre-set. It is a value between 1 and 300. The upper limit of the
offset number depends on the number of records in the tool offset file.
Characteristics:
You must specify the values of length and diameter increments in the RQP command with the currently
active measuring units (inches or millimetres, with G70/G71). These values cannot be associated with a
scale factor (SCF).
Example:
(RQP,10,1,L E40, L(3) E41, d E42) This block pre-sets offset 1 of tool 10. The value of length 1 is
contained in E40, the value of length 3 is contained in E41 and the value of diameter is contained in E42.
45004607K 170
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(TOU,tool)
where:
tool is the ASCII code of the tool to be declared as expired. It can be a local or a system
variable.
Example:
(TOU,5) ;Declares tool “5” in the tool table expired
E1=10;
(TOU,E1) ;Declares tool “10” in the tool table expired
45004607K 171
Prima Electro S.p.A. OPENcontrol – Programming manual
Tool compensation is based on the tool geometry and is applied to a programmed profile defined by
segments and arcs.
Tool thickness compensation: it is tangential to a programmed profile (fig 2). Usually the tool
direction is in the same plane as the profile
The following figures show how tool compensation acts in the previously described cases-
Programmed path
Compensated path
Fig.1 Tool Positioning for Tool Diameter Compensation
Programmed path
Compensated path
45004607K 172
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
type type of cutter compensation that will be applied, it can assume the following
values:
0. Enables cutter diameter compensation. It is the default value.
1. Enables cutter thickness compensation.
The default value for this value can be configured in AMP.
cos(a),sin(a) versor indicating tool direction. It consist of the sine and cosine of the angle
between the tool and the abscissa axis of the interpolation plane.
Default values are 0.0 and 1.0 meaning that the tool is “vertical” and its point is
down.
Ordinate
Tool versor
Sin(a)
a
Abscissa
Cos(a)
45004607K 173
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
G-codes Other G codes that are compatible with G41, G42 and G40 (see “Compatible G codes”
table in Chapter 2).
When cutter compensation is active, the tool is positioned on the intersection or tangency point of the
two geometrical elements translated by a value depending on the requested compensation type.
45004607K 174
Prima Electro S.p.A. OPENcontrol – Programming manual
20
0
50
45
G41
G42
15
0
X
Program:
Tool diameter compensation on the right of the profile:
G1 G42 X-50 Y15 F200
X-20 Y45
45004607K 175
Prima Electro S.p.A. OPENcontrol – Programming manual
33.541
31.622
Y
0
G41 35
G42
40
35
25
0 0
Program:
Cutter diameter compensation on the right of the profile:
G1 G42 X-31.622 Y40 F200
G2 X33.541 Y35 I J25
G1 X.....
45004607K 176
Prima Electro S.p.A. OPENcontrol – Programming manual
Tool direction
Element direction
Computed point 1° contact point between 1° contact point between Computed point
tool and workpiece tool and workpiece
In the case of a linear movement normal to the tool direction tool compensation is applied in
this direction. Offset direction does not depend on G41/G42, it is assumed to be opposite to the
element direction:
Compensation is performed in the plane and assumes a fixed tool inclination. So while
compensation is working (G41 / G42) tool inclination must not be changed. If tool
inclination has to change, the compensation must be stopped using a G40 command.
The following examples show the compensation with a circular and with a linear starting point.
45004607K 177
Prima Electro S.p.A. OPENcontrol – Programming manual
tool
45
G41
G42
15
-50 -20 0 X
Program:
Cutter thickness compensation on the right of the profile:
(TTC, 1)
G1 G42 X-50 Z15 F200
X-20 Z45
X10 Z15
45004607K 178
Prima Electro S.p.A. OPENcontrol – Programming manual
- PT external: the system creates the first circle, only. It is centred in c’, identified translating c with a
value equal to tool thickness in the correct direction and the circle radius is the same radius as the
programmed movement.
- PT internal: the system creates the first cycle as in the case of external P T, then it creates the line
through PT tangential to the circle (when compensation is external to the circle) and a second circle,
centred in c’’ translated in the opposite direction with respect to the first one and with the same radius.
When PT corresponds to the limits of the arc (Ps or Pe) the system creates an arc and the line
tangential to PT.
PT
G41
G42
c’ c c”
5
Pi Pf
0
15 65 115 X
Fig. 3. Cutter thickness compensation on a circular profile
Program:
Cutter thickness compensation on the right Cutter thickness compensation on the left
of the profile: of the profile:
(TTC, 1) (TTC, 1)
G1 G42 X15 Z5 F200 G1 G41 X15 Z5 F200
G2 X115 I65 J5 G2 X115 I65 J5
G1 X..... G1 X.....
45004607K 179
Prima Electro S.p.A. OPENcontrol – Programming manual
When cutter compensation is active, the control displays an error message if:
the programmed internal radius is shorter than the tool radius.
the execution of a compensated linear move would reverse the tool direction with respect to the
original profile.
programming a synchronization code (#) or a synchronous function
Within a compensated profile with G41 and G42 it is possible to program the movement of those axes not
belonging to the profile. The number of programmable movements depends on the use (or not) of
interferences correction (variable); the maximunm number of consecutive movements extra
compensation plane is of 128 consecutive movements.
45004607K 180
Prima Electro S.p.A. OPENcontrol – Programming manual
G42
15
0
x
50
0
Program:
N99 G2 G40 X36.62 Y40 I J25
N100 G X.. Y..
45004607K 181
Prima Electro S.p.A. OPENcontrol – Programming manual
Program:
N87 G1 X20 Y40
N88 G1 G40 X50 Y15
N100 G X.. Y..
Program:
N98 G1X-33.541 Y35
N99 G2 G40 X36.62 Y40 I J25
N100 G X.. Y..
If a block is programmed including G40 only (i.e. not associated with any final point),
the same result would be obtained as with standard diameter compensation (TPO=0).
Prior to writing a program read this section and the descriptions of TPO and TPT
carefully.
45004607K 182
Prima Electro S.p.A. OPENcontrol – Programming manual
Z Z
95
G41 G41
G42
G42
15
50
50
0 x 0 x
Program: Program:
N88 G1 G40 X50 Z15 N88 G1 G40 X50 Z95
N100 G X.. Z.. N100 G X.. Z..
G41
Program:
N99 G2 G40 X86.6 Z50 R100
N100 G X.. Z..
G42 50
86.6
45004607K 183
Prima Electro S.p.A. OPENcontrol – Programming manual
Type of compensation change (on the intersection or with an additional connection block) depends on
type of the previous movements and of the subsequent movement. The different possibilities are
discussed in the following pages:
Linear/Linear with tangential movement blocks
Linear/Linear with inversion of direction
Linear/Linear with automatic generation of a new movement block
Linear/Linear without automatic generation of a new movement block
Linear/Circular - Circular/Linear
Circular/Circular
The control automatically generates the movement block connecting point 1 with point 2:
point 1
Compensated
r
Programmed in G41 G42
point 2
45004607K 184
Prima Electro S.p.A. OPENcontrol – Programming manual
Points 1 and 2
Compensated
r
r r
C om pens ated
path N 10
N 11
Program m ed
path N 12
G41
G42
r r
point 1
point 2
Linear/Linear change with generation of a new block
45004607K 185
Prima Electro S.p.A. OPENcontrol – Programming manual
r G42 r
Program m ed
Programmed G41
path
in G42
+ +
Compensated C om pens ated
path path
Inters ec tion
Intersection
Compensated
path r
in G41
r
Programmed
path
G42
Intersection
45004607K 186
Prima Electro S.p.A. OPENcontrol – Programming manual
However, cases may arise in which there is no intersection between the tool paths; in these cases, when
changing from G41 to G42 (or vice versa) the system behaves as illustrated in the figures that follow.
Point 1 is the final position of the tool before the change of compensation type
Point 2 is the desired position for start of the first block using the changed compensation
direction.
The control automatically generates the movement block connecting point 1 with point 2:
Point 1
Compensated
path r2 r1
r1
Programmed G42
in G41
Point 2
Point 2
r1 r2
Programmed r1
in G41
G42
Compensated
path Point 1
C om pens ated
path
r
Program m ed
in G41 G42 +
Point 1
r
Point 2
45004607K 187
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
r value
where:
value The radius to be programmed. For clockwise moves program a negative radius; for counter
clockwise moves program a positive value.
Programming r0 (radius equal to zero) causes the tool centre to follow a circular arc whose
centre is on the profile corner.
Example:
2 2
1 1
45004607K 188
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
b value
where:
value bevel length measured from the intersection point.
This value b may be interpreted as follows:
Bevel between two linear profiles: b is the distance from the generated final
point to the theoretical intersection point between the extended profile
segments.
Bevel between a linear and circular profile: b is the distance from the
theoretical intersection point between the extension of the linear profile to the
tangent of the circular profile.
Examples:
45004607K 189
Prima Electro S.p.A. OPENcontrol – Programming manual
FINA L P OINT
P ROGRA MME D
b
T A NGE NT ON
b T HE CIRCULA R
B LOCK ' S
S T A RT ING P OINT
FINA L P OINT
MODIFIE D
FINA L P OINT
GE NE RA T ED
BLO C K 1 BLO C K 2
Programming example:
.
N20 G42
N22 GXY
N24 G1X40Y40F1000 ;block 1
N26 b10
N28 G2X80Y5R70 ;block 2
N30 G40
.
45004607K 190
Prima Electro S.p.A. OPENcontrol – Programming manual
BLOC K 1
tangent on final
point of block 1
tangent on s tartting
point of block 2
b b
BLOC K 2
final point
programmed
Programming example
.
.
N10 G42
N20 GX10Y60
N30 G2X50Y40R50F1000 ;block 1
N40 b5
N50 G2X100Y5050R30 ;block 2
.
.
45004607K 191
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
IBSIZE = n
where:
n Dimension of the buffer used for correction.
The following table shows the accepted values for n. If n is 0 the interference correction algorithm
is disabled.
Default value for IBSIZE is 0, this value can be configured in AMP, using the ODM tool.
Characteristics:
Programming a block containing the instruction IBSIZE=n enables the algorithm of interference
correction.
An interference is defined as a compensated movement with tool path direction reversal with respect to
the programmed direction.
The interference correction increases execution time of a part program, since it is necessary to pre-
compute some movements in order to identify and to correct interference.
The increased time is not fixed, it depends on the IBSIZE value and on the tool path optimisation value.
45004607K 192
Prima Electro S.p.A. OPENcontrol – Programming manual
The algorithm disables TPO when trying to solve the interference. As a consequence it is
possible that more elements are removed than are strictly necessary to solve the interference.
Once the interference is solved, TPO, if present, is restored and the correction movement is
computed with TPO enabled.
The interference correction feature modifies the number of axis movements that do not belong
to the profile, that can be programmed when compensation is working.
Moreover programmed bevels (and radiuses), when interference correction is running,
are considered to be movement of axes that do not belong to the profile.
IBSIZE=3
Four axis movements that do not belong to the profile between four compensated movements.
IBSIZE=4
Two axis movements that do not belong to the profile between six compensated movements.
IBSIZE=5
No axis movements that do not belong to the profile are allowed when compensation on profile
is active
Compensated profile
rtool
interference
programmed profile
45004607K 193
Prima Electro S.p.A. OPENcontrol – Programming manual
When interference correction is enabled (IBSIZE different from 0), the correcting algorithm replaces the
circular movement with a linear movement having the same start and end point of the programmed
(circular) movement.
compensated profile
rtool
corrected profile
programmed profile
The resulting profile is different from the programmed one, but the system can continue the execution
of the part program and the work piece is not damaged.
compensated profile d
c
D
b
B
A
programmed profile
C
In this case the direction of bc movement (compensated) is inverted with respect to the direction of
movement BC (programmed), moreover the tool, moving to b, damages the work piece.
When the interference correction is enabled, the algorithm identifies the interference and tries to solve
it before the tool arrives at b
The algorithm looks for an intersection between the movement being analysed and the preceding ones.
Referring to the previous image, the interference is identified during the analysis of the movement CD.
45004607K 194
Prima Electro S.p.A. OPENcontrol – Programming manual
The algorithm assumes that the movement that caused the interference is the previous one (BC) and it
removes it from the profile, then looks for an intersection between the movement being analysed (CD)
and the movement preceding movement BC (AB). If it can find an intersection, then interference is
solved and part program execution can continue.
If there is no intersection, then the algorithm looks for other movements in the interference buffer
(whose dimension corresponds to the IBSIZE value), if it finds a movement it continues to look for an
intersection, if the buffer is empty then the algorithm was unable to solve the interference, the system
stops the execution of the part program and it emits an error of inverted direction.
The algorithm will solve the interference shown in the previous figure as follows:
D
b
a
B
B ’
A
rtool
4
rtool
3
rtool
2
rtool
1 E
A
C D
The first compensated profile (for rtool1) does not require correction since there are no interferences.
Starting from the second value of tool radius (rtool2), interference correction has to be enabled.
In this case the intersection between element D and element E reverses the direction of the movement.
Removing element D and computing the intersection between the compensated elements C and E, the
interference is solved.
For rtool3 just removing D will not solve the interference since the intersection between C and E
generates interference, too.
45004607K 195
Prima Electro S.p.A. OPENcontrol – Programming manual
Then, IBSIZE value has to be bigger than 3 since at least two elements must be removed; in fact the
interference between B and E is the first one that does not generate interference.
Starting from rtool4 IBSIZE value has to be 5: in this event the intersection between B and E generates an
interference and to solve it, the entire “hole” corresponding to B,C,D must be skipped and A will be
connected directly with E.
In all the examples the final profile differs from the programmed one, but the system can continue in
the program execution and the work piece will not be damaged.
If a programmed bevel (or a radius) is connected to a movement that has been removed during the
correction phase, then the bevel (radius) will be removed too.
This is a consequence of the removal of one of the movements the bevel (radius) refers to.
rtool
2
rtool
1
Programme
d bevel
During the creation of the corrected movement the features of TPO=64 (circular radius
movements on internal bevels) is disabled.
TPO is disabled if the corrected movement implies the intersection between two
compensated elements that do no intersect on the programmed profile.
This happens because it is impossible to define a starting point for the second
movement of the intersection. If this point does not exist optimisation behaviour is
unpredictable.
During correction only movements on the profile are removed. If a block containing a
removed movement contains PLC commands (e.g. M functions), these functions will be
executed before or after the correction movement. M functions of “expedite” type will not
be executed since the movement they refer to has been removed.
45004607K 196
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
TPO = n
where:
n Optimisation mode. Allowed values are:
The value to be specified for n in the instruction is obtained from the sum of the decimal weights
corresponding to each of the desired features.
If n = 0 optimisation algorithm is disabled.
Bit 0 1 2 3 4 5 6 7
Characteristics:
A block programming the TPO=n instruction activates the tool optimisation algorithm.
This algorithm can automatically introduce movements at the beginning/at the end of the profile and it
can optimise the path on corners. Depending on the profile, the algorithm could automatically introduce
from 1 to 3 optimisation moves.
At the system power up the TPO mode configured in AMP is enabled. It can be changed from the
program.
RESET restores the TPO mode configured in AMP.
The activation of bit 5 and/or of bit 6 works only if bit 0 is also enabled.
45004607K 197
Prima Electro S.p.A. OPENcontrol – Programming manual
If bit 6 is active too (TPO= 1+32+64=97), the above considerations are applied to the inner corners, too.
Example:
In this example, is smaller than 90°
r=tool radius
r=raggio utens ile
r r
r BLOCCO r
r r GENERAT
G42 GENERATO
ED BLOCK
r
G42
r
r=tool radius
45004607K 198
Prima Electro S.p.A. OPENcontrol – Programming manual
Note that in the above examples TPT threshold has been ignored, as if TPT=0.
The figure below illustrates the strategy of TPO when TPT is not zero, i.e., a threshold
deviation from the corner is programmed:
in the case of an outer corner, the afore-mentioned circular radius will have its
centre translated according to the same calculation criteria as are used for linear
radiuses, and the radius will be reduced accordingly.
in the case of an inner corner, the radius of the circular radius is calculated so as to
have the tool path deviate from TPT by the amount that would be obtained without
the introduction of the radius
Con ottimizzazione TPO=1
G41
TPT
r
TPT
G42
r=tool radius
r=raggio utensile
Using cutter thickness compensation (TTC,1), the circular transition inserted when
TPO = 33 does not depend on TPT.
G41
45004607K 199
Prima Electro S.p.A. OPENcontrol – Programming manual
G41
G41
45004607K 200
Prima Electro S.p.A. OPENcontrol – Programming manual
In these examples the algorithm recalculates the profile and introduces from 1 to 3 optimisation moves
between bevels.
Movement generated
by the algorithm with
1) Line - line TPO = 1
The algorithm
generates 1 move
with TPO = 33
Movements generated
by the algorithm with
TPO = 1
2) Line - circle The algorithm
generates 2 moves
with TPO = 33
Movements generated
by the algorithm with
3) Circle - line TPO = 1 The algorithm
generates 2 moves
with TPO = 33
Movements generated
by the algorithm
4) Circle - circle with The algorithm
generates 3 moves
with TPO = 1
with TPO = 33
45004607K 201
Prima Electro S.p.A. OPENcontrol – Programming manual
A) At profile infeed the algorithm generates a circle between the first point of the
preceding point (P0) and the offset profile (P1). The first point is the one programmed in
the G41 or G42 block.
.
X80 ;P0
G41 X100 Y100 ;P1
X140 ;P2
. ;etc.
.
B) At profile exit the algorithm generates a circle between the last point of the offset
profile (P99) and the last point of the exit element in the profile (P100). The exit
element is the one programmed in the G40 block.
45004607K 202
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
Y
52,5
50
c irc ular moves at profile end
45
42,5
40
35
30
25
20
G41
15
G42
10
5
c irc ular moves at profile s tart
5 10 15 20 25 30 35 40 45 50 X
32,5
45004607K 203
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
Y
50
45
40
35
30
25
20
15
G41
10
5
c irc ular move at profile end c irc ular move at profile s tart
0
-20 -10 0 10 20 X
45004607K 204
Prima Electro S.p.A. OPENcontrol – Programming manual
This variation is a function of the tool radius and is only applied to circular movements. It will produce
an increase or decrease in the feed rate with reference to the centre of the tool depending on whether
the radius of the circle moved by the centre of the tool is greater or less than the radius of the
programmed circle. The feed rate is increased by setting bit 3 of variable TPO (TPO=8) while it is
decreased by setting bit 4 (TPO=16).
Bits 3 and 4 of TPO may be set together and even at the same time as all the other bits of the same
variable to enable the corresponding features.
45004607K 205
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
TPA = value
where:
value Threshold angle expressed in degrees. If the angle between two adjacent elements is
smaller than the value of TPA, a circular or linear radius is introduced in accordance with
the values set in TPO.
The default value of TPA is = 90°; this value can also be configured in AMP.
Characteristics
This variable has been introduced to allow configuration of the threshold angle used by the Tool Path
Optimisation (TPO) algorithm to radius two linear elements in tool compensation mode. If at least one
element is circular the optimisation algorithm remains unchanged, i.e., a radius (either linear or
circular, depending on the value of TPO) is introduced regardless of the angle between the two
elements.
RESET restores default value, if modified by program.
Example:
CoWith
n ot t iTPA
mi zz>az90°
i oneand
TPOTPO
=1 = 1 CoWith TPA
n ot t i m i zza>zi o90°
ne Tand
PO=1TPO = 33
BLOCK BLOCK
G41 GENERATED G41 GENERATED
r r
G42
r G42
r
45004607K 206
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
TPT = value
where:
value Threshold expressed in the active unit of measure (mm/inch). It represents the distance
between the tool cutter and the bevel generated by the programmed profile. It can also
be configured in AMP.
Example:
r G41 r G41
Treshold value
Programmed with TPT
Characteristics:
The threshold programmed with TPT will be ignored by the system if it takes the mill centre beyond the
theoretical point obtained through standard tool diameter compensation (G41/G42 without TPO
programming).
In this case the TPO algorithm will be temporarily disabled, G41/G42 will be applied without TPO and
there will be no error signal.
Example:
Normal deviation from
TPO algoritm
the bevel in G41
disabled (max. TPT)
r G41
45004607K 207
Prima Electro S.p.A. OPENcontrol – Programming manual
These compensation factors are used both for extremely simplified profiles (contouring parallel to axes)
and for three-dimensional milling surfaces.
You cannot use the u,v,w factors when the control is in cutter compensation mode (G41-G42).
When factors u,v,w are negative, they must be followed by a minus sign. If they are positive, the plus
sign can be omitted.
In order to determine the value and the sign you must consider paraxial factors u,v,w respectively as the
X, Y, Z coordinates of the profile vertex corrected by a unit. X, Y and Z are referred to a system of
Cartesian axes that are parallel to the axes of a machine whose origin is represented by the point to be
compensated.
programmed profile
The unit vector represents a cutter radius offset that is one unit long; the control, the increments of
translation are the product of the u,v,w values multiplied by the cutter radius.
45004607K 208
Prima Electro S.p.A. OPENcontrol – Programming manual
The u,v,w factors are only valid in the block in which they are programmed. They are used by the
control only if they are associated to the corresponding coordinates:
u for the 1st configured axis (typically X)
v for the 2nd configured axis (typically Y)
w to the 3rd configured axis (typically Z).
Example1:
Program:
N5 T1.01 M6 S. . F. .
N6 G X Y30
N7 G1 Y10 v1
N8 X40 u-1
N9 Y30
N10 G X. . Y. .
Example 2:
Program:
N13 G X Y
N14 Y10 v-1
N15 X40 u1
N16 Y30
N17 G X. . Y. .
45004607K 209
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 3:
Program:
N13 G X Y
N14 G1 Z-10
N15 X-20 Y-20 u1 v1
N16 X20 u-1
N17 Y20 v-1
N18 X-20 u1
N19 Y-20 v1
N20 G X Y
Example 4:
Program:
N13 G X-35 Y-35
N14 Z-10
N15 G1 X-20 Y-20 u-1 v-1
N16 X20 u1
N17 Y20 v1
N18 X-20 u-1
N19 Y-20 v-1
N20 GZ
45004607K 210
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 5:
Program:
N12 . . .
N13 G X-30 Y
N14 G1 Y20 v-1
N15 X30
N16 Y-20 v1
N17 X-30
N18 . . .
Example 6:
Program:
Y N12 G X40 Y B0
N13 G1 X30 u1
(rotary axis)
N14 X25 B360 u1
N15 G X40
u1 u1
X
0
25
30
45004607K 211
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
axis1…axis3 are the names of the axes to be associated with the uvw paraxial compensation: axis 1 is
associated with parameter u, axis 2 with parameter v, and axis 3 with parameter w.
Characteristics:
If only two axes are specified in the command, the paraxial compensation will be activated only for
parameters uv, and the third parameter (w) will be ignored.
Once defined, the association between the axes and the uvw parameter remains active until the next
RESET; then the default association (the first three axes configured) is restored. A GTA command will
also restore the default association, unless all the axes (identified by axis ID) on which the uvw
parameters are active remain present even after the execution of the command.
Example:
N10 (UVW,XYZ) Activates uvw on X Y and Z respectively
N20 h1
N20 X10u1Y20Z40
N30 (DAN, XP, YQ, ZD)
N40 (UVW,XYZ) Activates the uvw parameters on PQD (DAN renamed them in XYZ)
N50 X10u1Y20v0.3Z40w0.3
N60 X0u1Y5v0.50Z4w-0.5
45004607K 212
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
MSA = value
where:
value It can be a decimal number or an E parameter. It is programmed in the measuring
unit (G70-G71) that is currently active in the program.
Characteristics:
The system uses the programmed MSA to calculate the offset value to be applied to the profile when
cutter compensation (G41 or G42) is active.
The offset value is the sum of the tool radius and the MSA.
Example:
MSA = 0.5 Assigns a 0.5 machining allowance
E30 = 1.5
MSA = E30 Assigns a 1.5 machining allowance
When measuring unit changes from G70 to G71 or vice versa, the programmed value for MSA is
set to zero.
45004607K 213
Prima Electro S.p.A. OPENcontrol – Programming manual
SPINDLE FUNCTIONS
The S address programs the spindle speed rotation in rpm or as constant surface feed. In addition, some
M functions affect the spindle control.
45004607K 214
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
G-codes Other G codes that are compatible with G96 and G97 (see Table "Compatible G codes" in
Chapter 2).
operands Any operand or code that can be used in a G function block.
Characteristics:
G97 activates address S programming in rpm. G97 is the default mode of the control and is modal (like
G96).
G96 activates constant surface speed (CSS) programming for address S in feet per minute (G70), or
metres per minute (G71). G96 forces the spindle speed to be controlled by the position of the diameter
axis, so that it remains constant on the machining surface.
When G96 is activated the position of the diameter axis is assumed to be the radius for which constant
surface speed (S) is programmed.
45004607K 215
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
The following example illustrates CSS programming.
Assumed power-up G codes: G00, G27, G70, G95, G97
Assumed gear range: 1 (M41) = 800 rpm max.
N1 G90 G00
N3 U5 ;Presets diameter (U) axis
N4 SSL=700 ;700 rpm limit
N5 G96 S400 M3 ;CSS at 400 ft /min
N6 G1 U0 Z -2 F10 ;Sets contouring mode and U in feed 10 ipm
N7 U5 Z0
N8 G00 ;Prepares to change S
N9 G01 S300 U0 Z-2 ;New surface feed = 300ft/min
N10 G00 ;Prepares to cancel G96
N11 G97 S100 ;Set G97, S=100 rpm
N12 G01 Z0 ;Contouring to G0
N13 U5
N14 G00 ;Rapid mode, contouring off
N15 M05 ;Stop spindle
N16 M02 ;Program end
45004607K 216
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
SSL=value
where:
value value that can be programmed directly with a decimal number or indirectly with an E
parameter.
Characteristics:
As the diameter axis approaches the spindle centreline, the spindle approaches maximum speed to
maintain the programmed S word value. The SSL command limits the spindle to some value below the
maximum rpm. If you program the value of SSL above the maximum rpm for the current gear range, the
current gear range limit will be the maximum allowable rpm.
Make sure you enter this value in the part program prior to entering G96 blocks.
Example:
SSL = 2000 Assign a spindle speed limit of 2000 rpm
E32 = 1500
SSL = E32 Assign a spindle speed limit of 1500 rpm
45004607K 217
Prima Electro S.p.A. OPENcontrol – Programming manual
M19 can also be used for increased accuracy in boring operations, to avoid scoring the bored surface
during the return move of the Z axis. In this case, when the hole is finished, the spindle is oriented,
move the X or Y axis is moved according to the blade orientation, and the Z axis returns.
M19 is deleted by M03, M04, M13, M14. When the control reads M19 in a block that also contains
movement information, M19 precedes the movement.
The M functions that are implemented in an application may be different than those described
here. Consult the machine documentation for more information on application-specific M
functions.
Example:
Program:
N32 (DIS,"BACK SPOT- FACING BAR D=136")
N33 S115 F20 T7.7 M6
N34 G X250 Y-12 M19
N35 Z-306
N36 Y M3
Zero axis Y
N37 DWT=2
N38 G1 G29 G4 Z-300
N39 G Z-302 M5
N40 Y-12 M19
N41 Z
In block N34 the X and Y axes are positioned and spindle orientation is controlled so that the tool can go
through the hole. In the next block, the Z axis is positioned to start spot-facing.
In block N36 the tool axis is moved to coincide with the spot-facing axis.
Spot-facing is performed in block N38. In subsequent blocks, the tool is oriented, withdrawn from the
workpiece and then positioned along the Y axis, so that it can go through the hole.
45004607K 218
Prima Electro S.p.A. OPENcontrol – Programming manual
This three-letter code enables each process to release its spindle, to change its status, or to acquire a
new one in a new mode. For the various spindle conditions, see characterisation manual.
Syntax
(GTS)
(GTS; mode)
(GTS, spindle_id, mode)
where:
spindle_id Logic identifier of the spindle axis concerned. Può essere programmato
direttamente o tramite una variabile.
mode Mode requested, X = exclusive, S = shared, A = released as an axis.
(GTS) This is used to release a spindle. With this syntax the process tells the system it
does not want to use the spindle any longer and the spindle is made available for
use by other processes. Axis status is changed to RELEASED only if the release is
performed by the last owner process; if an axis is still being used by other
processes, its status continues to be SHARED.
(GTS,A) Used to release the spindle and make it available as an axis. With this syntax the
process tells the system that does no longer need the spindle and it makes it
available for other processes. The request fails if the spindle is used by other
processes; at the end of the function the spindle/axis passes in the state
RELEASED.
(GTS, spindle_id, S) This is used to share with other processes the spindle with id spindle_id that
must not be used by another process on an exclusive basis. When thew spindle is
inmode “axis” it is automatically changed in mode “spindle”. Possible cases are:
A process does not own any spindle and wants to acquire a new spindle in
shared mode.
A process owns the spindle on an exclusive basis and wants to make it available
for sharing.
A process wants to release the current spindle and to acquire a new one.
45004607K 219
Prima Electro S.p.A. OPENcontrol – Programming manual
(GTS, spindle_id, X) This is used to use a spindle with id spindle_id on an exclusive basis. The axis will
not be shared with other processes. Possible cases include:
A process does not own any spindle and wants to acquire one for exclusive use.
A process is the only owner of a shared spindle and wants exclusive control of
it.
A process wants to release the current spindle and acquire a new one.
Example:
(GTS, 4, S)
Characteristics
A call to the entire part program forces the block-calculation synchronism.
45004607K 220
Prima Electro S.p.A. OPENcontrol – Programming manual
7. AUXILIARY M FUNCTIONS
ENABLED AT MOVE
CODE CANCELLED BY DESCRIPTION
START/END
M0 x Cycle Start Program Stop
M1 x Cycle Start Optional Program Stop
M2 x End of Program/Subroutine exit
M3 x M4-M5-M14-M19 Spindle CW
M4 x M3-M5-M13-M19 Spindle CCW
M5 x M3-M4-M13-M14 Spindle Stop
M6 x Tool Change
M7 x M9 Auxiliary Coolant On
M8 x M9 Main Coolant On
M9 x M7-M8 Coolant Off
M10 x M11 Axes Lock
M11 x Axes Unlock
M12 x M11 Rotary Axes Lock
M13 x M4-M5-M14-M19 Spindle CW and Coolant On
M14 x M3-M5-M13-M19 Spindle CCW and Coolant On
M19 x M3-M4-M5-M13-M14 Spindle Stop and Angular
Orientation
M30 x End of Program and Reset to 1st
Block
M40 x Deactivate Spindle Range
M41 x M42-M43-M44-M40
M42 x M41-M43-M44-M40 Spindle Range
M43 x M41-M42-M44-M40 1-2-3-4
M44 x M41-M42-M43-M40
M45 x M41-M42-M43-M44 Automatic Range Change
M60 x Part Change
45004607K 221
Prima Electro S.p.A. OPENcontrol – Programming manual
The block that includes an expedite M code must also program an axis move.
Depending on how the M has been configured, the move may be point-to-point (G29) or
continuous (G26-G27-G28).
45004607K 222
Prima Electro S.p.A. OPENcontrol – Programming manual
Prelude M code sent towards the PLC before the movement of the axes
Expedite M code sent towards the PLC during the movement of the axes
Postlude M code sent towards the PLC after the movement of the axes
For prelude and postlude M functions the synchronization between the movement of the axes and the
execution of the M function by the PLC is function if they can be accepted in continuous
(characterization in ODM "accepted in continuous") and the type of programmed movement (G27, G28,
G29)
The system allows the use of only one Expedite M function in each movement block of the
part program
45004607K 223
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
n a valid code of an auxiliary M function. The code can be specified directly using an
integer number or using an E parameter. The valid range is 0 up to 9999
45004607K 224
Prima Electro S.p.A. OPENcontrol – Programming manual
8. PARAMETRIC PROGRAMMING
Parametric programming lets the programmer use system and local variables to define geometrical and
technical values for working cycles. System and local variables differ in the way they are stored and,
subsequently, their scope is very different.
System variables are stored in the dual port memory of the system. All the active processes can access
them and they are retained after the system is switched off.
Local variables are stored in a memory area local to the system and are seen only by the process they
refer to.
Their value is lost when the system is switched off. At power up they are re-initialised with the value
defined in AMP configuration.
The following table summarises the variables available with the system.
Except for System Characters, all system and local variables can be used in mathematical or
trigonometric operations in place of the geometrical and technological data of the machining cycle.
A mathematical operation is 40 characters maximum long and is formed by arithmetic operators,
functions and operands (variables or numerical constants). The following are arithmetic operators:
addition (+)
subtraction (-)
multiplication (*)
division (/)
45004607K 225
Prima Electro S.p.A. OPENcontrol – Programming manual
The arguments of a function (A,B) can be variables or numerical constants. When the control solves a
mathematical equation, it considers the priority of brackets and signs. The result is converted into the
format of the variable written to the left of the equal sign.
Arguments of trigonometric functions (SIN, COS, TAN) must be expressed in degrees. The
result of inverse trigonometric functions (ARS, ARC, ART) is also expressed in degrees.
45004607K 226
Prima Electro S.p.A. OPENcontrol – Programming manual
*The parameters of Boolean functions must be integers in the -32768 +32767 range (short format
with sign). They may be long real E (double) parameters as long as they remain in this range.
E parameters receive values in special assignment blocks. The format of an assignment block is:
En = expression
where:
n Is the identification number of the E parameter.
expression Can be a numerical value, a character or a mathematical equation whose result is stored
in the E parameter identified by n.
45004607K 227
Prima Electro S.p.A. OPENcontrol – Programming manual
Examples:
The following are assignment blocks for parameter calculation.
E parameters can be used inside programs and subroutines. To display the current value of a parameter,
use the DIS command.
Example:
(DIS,E39) displays the current value of E39.
Example:
This example shows how to assign an ASCII character:
SCO="P" Assigns the P character to the SC0 string variable
E1=SC0
(DIS,E1) Displays 80 (ASCII code of P)
FE1
SE2
TE1.E2
45004607K 228
Prima Electro S.p.A. OPENcontrol – Programming manual
Variables name and maximum number of characters must be defined in the ODM configuration. A user
variable name can be up to 10 characters long. The first character must be !.
The extension of a user variable may be .LR or .CH.
where:
index Number indicating the starting character in the variable character array.
If index is not specified, it is taken to be zero.
If specified, it must be programmed between round brackets.
number of characters Specifies how many characters after the index must be read/written. The
default value is 1. The sum of index+number of characters must not be
greater than the maximum number of characters configured for the
specified variable.
Example:
!ABC(1) = 125
G0 X(!ABC(1))
125 is assigned to the !ABC(1) user variable, then this variable is used as argument of the X address in a
G0 block.
!CHAR(2).8CH="ABC"
This instruction writes "ABC" in the first three characters of the !CHAR user variable, starting from the
second character. The remaining 5 characters (8-3) will be automatically set to zero; to prevent this,
program !CHAR(2).3CH="ABC"
!CHAR(1).CH="A" or!CHAR(1).CH=65
45004607K 229
Prima Electro S.p.A. OPENcontrol – Programming manual
!name_var[(index)]= expression
where:
index Number identifying the variable.
If index is not specified, it is assumed to be zero.
If specified, it must be programmed between round brackets.
It can be a number or an E parameter.
expression Can be a numerical value or a mathematical expression, whose result is stored in the user
variable identified by the index.
Example:
!ABC(1) = 125
G0 X(!ABC(1))
125 is the value assigned to the !ABC(1) user variable; this variable is then used as an argument of
address X in a G0 code.
NOTES:
In motion blocks, the user variable must always be written in brackets.
X(!USER1(2))
X(!USER1(2)10)
F(!USER1(1))
S(!USER1(1))
T(!USER1(1).(!USER1(2))
45004607K 230
Prima Electro S.p.A. OPENcontrol – Programming manual
RTV(n) = expression
where:
n Is the identification number of the Real Time Variable. It can be directly expressed as an integer
between 0 and 7 or, indirectly, using a variable.
Refer to the WinPLUS Application Manual to know on which PD type variables the Real Time Variables
are copied.
Example:
RTV(0) = 1
G27G1X100F1000 During this movement the correspondent PD variable is 1
RTV(0) = 2
G1X150 During this movement the correspondent PD variable is 2
RTV(1) = 3
G1X200 During this movement the correspondent PD variable are 2 and 3
RTV(0) = 4
(DIS, RTV(0)) It displays 4
NOTE: The content of the LINENO variable cannot be changed from part-program.
Example:
; Test
G27 G1 X10 F1000
X30
E0 = LINENO
X40
#E1 = LINENO
If the previous example is executed in automatic mode, the variable E1 contains the value 5, while in E0
it should have value 1 as the block to which the assignment refers is analysed before the execution of
the movement described in line 1.
45004607K 231
Prima Electro S.p.A. OPENcontrol – Programming manual
$BRK = expression
where:
expression is the id number of the break-point. It can be expressed directly using an integer or
indirectly by means of an algebraic expression.
Characteristics:
The breakpoint value can be used to define the end point of the execution of a program or the point
where the execution in memory search must end.
Example:
$BRK = 0
G90X0
'LOOP'
(DIS, $BRK)
GX >> 1
$BRK = $BRK + 1
(GTO, LOOP, $BRK < 100)
If the partial execution of the program is defined until $BRK = 42, then the execution will end when the
X axis will be at 42 and the displayed value of $BRK will be 41.
45004607K 232
Prima Electro S.p.A. OPENcontrol – Programming manual
NOTE:
The variable GPRG is a vector of 14 elements consistent with the area of the active G codes present in
the default screen of the Provideo of the WinNBI.
The meaning of the individual elements of the variable is shown below following the same visualization
order.
Example 1:
The variable will take on the numerical value of the active G code when the block containing the
instruction GPRG is analised.
i.e. in order to know if the code G10 is active it must be written:
45004607K 233
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
With reference to the program lines listed below, assume that the system is running the block N30 in
continuous mode, the G of movement which is active at the time of the analysis of the block N60 is G1,
while the one synchronous with the programming is G0.
At the end of the program, the system will display 0.
N10 G1 G27
N20 X100 F1000
N30 X200
N40 X300
N50 G0 X400
N60 E2 = GPRG(0)
N70 G1 X0
N70 (DIS, E2)
Example:
In the following example blocks from N100 to N150 are not counted during the execution and so not
considered for the RCM
MAIN TOOL_CHANGE
N10 G1 G27 N100 RCD = 1
N20 X100 F1000 N110 G79 X0Y0Z0
N30 (CLT, TOOL_CHANGE) N120 h3
N40 X300 N130 T3M6
N50 G0 X400 N140 G79 X50 Z-10
N150 RCD = 0
45004607K 234
Prima Electro S.p.A. OPENcontrol – Programming manual
When a program is executed in “Cycle time estimation” mode, the system makes available 10 variables
from CTV(0) to CTV(9) into which the following calculated times can be found (in seconds):
These 4 variables are set to 0 at the cycle start and updated only at the end of the program, adding the
calculated times to the value of the respective variables.
These are input/output variables that the part programmer can use for specific initializations
45004607K 235
Prima Electro S.p.A. OPENcontrol – Programming manual
These variables can be used to read or write values or strings for assignment operations within part
programs.
SNn = expression
where:
n Is the identification number of the System Number variable. The n parameter can be a
number or an E parameter.
expression Can be a numerical value, an equation, or a character whose result is stored in the System
Number identified by n.
NOTE:
A System Number variable can be assigned to another System Number variable already defined
SN variables are global to all the processes and they are retentive, that is they maintain their
value also after control switch off
Examples:
1. SN20 = 326.957
The decimal value 326.957 is assigned to the SN20 variable.
2. SN20 = (SN9*SIN(30) + 12.5)/SQR(81)
The result of the mathematical expression is assigned to the SN20 variable.
45004607K 236
Prima Electro S.p.A. OPENcontrol – Programming manual
var1 var2
index index
0 1 2 3 4 5 6 7 8 9 10 11 99
length length
SCindex.length = parameter
where:
index Is the index that specifies the start position of the variable in the array. It may be in the 0
to 99 range. The index of the variable can be a number or an E parameter.
length Is the length of the variable expressed in number of characters (bytes). The length can be
a number or an E parameter.
NOTES:
For each variable, index + length sum must not exceed 100.
One System Character variable can be assigned to another System Character variable.
Numeric variables (decimal) corresponding to ASCII characters can be assigned to SC
variables. In this way it is possible to assign those characters that are not displayed. For
example, 10 (LF) and 13 (CR).
Numerical values are programmed without double quotes (" ").
SC variables are global to all the processes and are retentive, that is retain their value
even after switching off the CNC
45004607K 237
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
SC2.5="PIPPO"
SC8.3="ABC" or SC8.3=65,66,67
0 1 2 3 4 5 6 7 8 9 10 11 99
P I P P O A B C
The string "PIPPO" is written starting from byte 2 of the array and occupies 5 bytes.
The string "ABC" is written starting from byte 8 of the array and occupies 3 bytes.
When defining the index and the length, care must be taken not to overlap two variables.
Example:
SC0.1=80 assigns 80 to the string variable
(DIS,SCO.1) displays P (ASCII code 80)
E1=80 assigns 80 to E1
SC0.=1E1
(DIS,SC0.1) displays P (ASCII code 80)
45004607K 238
Prima Electro S.p.A. OPENcontrol – Programming manual
0 1 2 3 4 5 6 7 8 9 10 11 127
LS
o
LS1
LS99
Syntax
LSindex = parameter
where:
index Identifies the string in the memory. It may have values in the 0 to 99 range and it may be
a number or an E parameter. If no index is specified, the string is assumed to be a 0
position string
NOTES:
A System String variable may be assigned to another System String variable.
Numerical variables corresponding to ASCII characters can be assigned to LS variables. In this
way, it is possible to assign characters that are not visualised, e.g., 10 (LF) and 13 (CR).
Numerical values are programmed without double subscripts (" ").
LS variables are global to all the processes and are retentive, that is retain their value even after
switching off the CNC
45004607K 239
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
LS ="PIPPO"
LS3="ABC" or LS3=65,66,67 Assigns an "ABC" string to variable LS with index 3
0 1 2 3 4 5 6 7 8 9 10 11 39
LS P I P P 0
0 1 2 3 4 5 6 7 8 9 10 11 39
LS3 A B C
Example:
Assigning a character variable value to an LS variable.
SC3.5=”PLUTO” Assigns a PLUTO string to variable SC
LS10 = SC3.5 Assigns an SC string with five characters starting from index 3 to the LS variable with index
10
(DIS,LS10) Displays PLUTO
E1=80 Assigns 80 to the variable E1
LS1=E1 Assigns the content of E1 to the string variable
(DIS,LS1) Displays P (ASCII 80 character).
Example:
(DIS, TIM)
E10=TIM
NOTE:
TIM content cannot be modified from part program.
45004607K 240
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
@name
where:
name Is the name of the variable declared in the configuration (AMP).
There are three types of WinPLUS variables:
Short
Boolean
Double
The system has 2000 Short variables. Short variables names and their correspondence with WinPLUS
variables are configured in AMP.
They are made up of 16 bits and can contain values between -32768 and +32767.
You can also address a single bit of a Short variable with a Boolean variable.
There are 256 Boolean variables, but a part program can only access 128 of them. The names of the
Boolean that can be accessed by part programs must be configured in AMP.
System has 1000 Double variables, all accessible by the part program. The names of the Double variables
that can be accessed by a part program must be configured in AMP.
The total number of Boolean, Short and Double variables must be configured in AMP.
The values of all the PLC variables configured in AMP are loaded when the system is started up. If the
value field of a variable is empty, the variable is not initialised and retains the value it had when the
system was switched off.
WinPLUS variables are global to all the processes and are retentive (if not initialized), that is retain their
value even after switching off the CNC
45004607K 241
Prima Electro S.p.A. OPENcontrol – Programming manual
8.8 L variables
L variables have Double format, with 17 signed figures and a maximum of 17 integer figures. There are
3000 L variables indexed from 0 to 2999.
These variables conform with the user tables available in the table editor and the PLC environment.
They can be utilised both in the programming and the logic environment, either separately or for
communications between both environments.
L variables are global to all the processes and are retentive, that is retain their value even after
switching off the CNC
Examples:
L10 = 26.9570
L15 = (L10*SIN (30)+9)/SQR(81)
(GTO,END,L2=1)
G0XL15
X(L15)
X(L15L1)
FL1
SL1
TL1.L3
Because these variables are directly linked to the PLC, the machine tool manufacturer must
provide you with the list of the variables used in your application as well as with all the
information you need in order to handle them correctly.
45004607K 242
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
destination_variable is the first destination variable.
source_variable is the first of the source variables.
number_variables is the number of variables to transfer. It can be an integer or a local or system
variable.
Examples:
E0 = [[ SNO,4 ]]
is equivalent to the following four assignments:
E0 = SN0
E1 = SN1
E2 = SN2
E3 = SN3
E100 = 5
E50 = [ LO,E100 ]
is equivalent to the following five assignments:
E50 = L0
E51 = L1
E52 = L2
E53 = L3
E54 = L4
45004607K 243
Prima Electro S.p.A. OPENcontrol – Programming manual
9. PARAMACRO
Syntax:
where:
n It is a number from 300 to 998
Characteristics:
There are two groups of paramacros:
from G300 to G699 Non-modal paramacros
from G700 to G998 Modal paramacros
45004607K 244
Prima Electro S.p.A. OPENcontrol – Programming manual
In case of local H variables, values of the H, HF and HC parameters having a lower level will not change
values of corresponding H, HF and HC variables at the higher upper level.
Through the configuration of the domain of the H variables, it is also possible to decide whether the
transition from the upper level to the lower level will zero the values of the H variables or if they will
inherit the values of the upper level. Inheritance does not apply to the parameters HF
When a letter is programmed, the corresponding HF parameter is set to 1 (Boolean type). It makes it
possible to check that all parameters of a paramacro have been programmed.
Example:
G300 A1 B2 C3 D4
H0 is assigned to 1 value
H1 is assigned to 2 value
H2 is assigned to 3 value
H3 is assigned to 4 value
HF0 is forced to 1
HF1 is forced to 1
HF2 is forced to 1
HF3 is forced to 1
If G300 calls:
G400 A10 C30,
If H variables are configured as local or global, the result will be different.
In case of global H variables then the value of H0 will be 10 and the value of H2 will set to 30. HF0 and
HF2 will be forced to 1 and all other HF's will be set to 0. Values assigned to H0 and H2 in G300 will be
lost
In case of local H variables, H0=10, H2=30, HF0 and HF2 will be forced to 1 and all the other HF will be
set to zero, H1=2 and H3=4. Values given to H0 and H2 are not lost as at the end of G400 execution all H
variables will have again the value they had before the G400 call.
E parameters (and all other parameters available in CNC OPENcontrol) can be used in paramacros if
needed. However, to avoid interaction with parameters used elsewhere, it is preferable to use only H
parameters within G paramacros.
45004607K 245
Prima Electro S.p.A. OPENcontrol – Programming manual
9.2 HC parameters
If a block calling a paramacro also includes a character string between inverted commas, this string is
made available to the paramacro in the HC character array (100 characters).
If no such string is specified, the entire HC array is reset.
Array is always unique regardless the ISO compatibility type configured by the ODM.
If the string was programmed, it is put in the HC variables with a terminator '0' added; for this reason,
maximum length of the string is 99, even if the HC array is 100 characters long.
Examples:
!PROFILE=............
G600 "PROFILE" A50 ;call to paramacro G600
..
..
;------------------ in the paramacro............
(DIS,HC0.10)
(CLS,?HC0.10)
The following table shows the correspondence between letters and H parameters.
PARAMETERS PARAMETERS
LETTER LETTER
H HF H HF
A H0 HF0 a H26 HF26
B H1 HF1 b H27 HF27
C H2 HF2 c H28 HF28
D H3 HF3 d H29 HF29
E H4 HF4 e H30 HF30
F H5 HF5 f H31 HF31
G H6 HF6 g H32 HF32
H H7 HF7 h H33 HF33
I H8 HF8 i H34 HF34
J H9 HF9 j H35 HF35
K H10 HF10 k H36 HF36
L H11 HF11 l H37 HF37
M H12 HF12 m H38 HF38
N H13 HF13 n H39 HF39
O H14 HF14 o H40 HF40
P H15 HF15 p H41 HF41
Q H16 HF16 q H42 HF42
R H17 HF17 r H43 HF43
S H18 HF18 s H44 HF44
T H19 HF19 t H45 HF45
U H20 HF20 u H46 HF46
45004607K 246
Prima Electro S.p.A. OPENcontrol – Programming manual
PARAMETERS PARAMETERS
LETTER LETTER
H HF H HF
V H21 HF21 v H47 HF47
W H22 HF22 w H48 HF48
X H23 HF23 x H49 HF49
Y H24 HF24 y H50 HF50
Z H25 HF25 z H51 HF51
The following table shows the corrispondence between parameters of the M auxiliary functions used as
paramacro and H parameters.
Example 1:
N45 G777 A(E8) R22.5 F(E2) S(E3+5-E1)
E8 passed to H0
22.5 passed to H17
E2 passed to H5
In this example, the Boolean parameters HF0, HF17, HF5 and HF18 are set to 1.
45004607K 247
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
D = H3 = Major diameter
R = H17= Minor radius
F = H5 = Feed
45004607K 248
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
par-ax1 ... par-ax12 names of the axes used in the paramacro
char-ax1 ... char-ax1 name of the characterized axes (max 6).
no parameter (DAN) without parameters (DAN) modality is disabled
Example 1:
(DAN,PX,QY,DZ) X,Y,Z substituted by P,Q,D therefore X,Y,Z cannot be used
Example 2:
(DAN,PX,QY,DZ) X,Y,Z substituted by P,Q,D therefore X,Y,Z cannot be used
(DAN,WA) A substituted by W moreover X,Y,Z are re-enabled, therefore
P,Q,D,A cannot be used
The reprogramming of (DAN,...) resets the previous associations and enables the
present ones as for the initial characterization.
After the three-letter mnemonic DAN has been used, if the axes concerned are those of the
interpolation plane, this plane must be redefined using the new names.
45004607K 249
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
SCRLPAR = value
where:
value It can be =1 or =0. If 0, in all paramacro scrolling is disabled, while if =1 scrolling is
enabled.
Characteristics:
If SCRLPAR is 0 and the selected mode is BLOCK-by-BLOCK, then a paramacro and other paramacro or
subroutines which the paramacro calls will be executed with a single push of the CYCLE START button.
SCRLPAR value applies for the execution level where it is assigned and for all lower levels (e.g.
paramacros and subroutines called from that level), but does not apply to higher levels (e.g. calling
program / paramacro).
If SCRLPAR is 0 for a higher execution level, then any modification to its value (e.g. setting it to 1) is
ignored.
Default value for SCRLPAR is defined in AMP through ODM.
Example:
Main program: G302 G303
N1 SCRLPAR=1 N10 GX10Y10 N21 G1X-10Y-10
N2 G302 N11 SCRLPAR=0 N22 SCRLPAR=1
N3 G303 N12 G303
N3 G303 ; Entering the paramacro. At this level of execution SCRLPAR has not been modified;
paramacro blocks will appear on screen
N21 G1X-10Y-10 ;
N22 SCRLPAR=1 ; SCRLPAR remains at 1
The three-letter code DGM has a higher priority than the SCRLPAR variable, therefore a
paramacro containing this three-letter code will be always executed with scrolling disabled.
45004607K 250
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(DGM)
Characteristics:
DGM three-letter code disables visualization and scrolling of the blocks of a paramacro. It can be
programmed in any position in a paramacro and affects the entire paramacro.
If current execution mode is block-to-block, then the paramacro, nested paramacros and subroutines,
will be executed entirely by a single push of the cycle pushbutton.
The three-letter code is taken into account only by paramacros. It is ignored if it appears in
the main part-program or any subroutine.
DGM has priority over the SCRLPAR variable, therefore the paramacro containing this
three-letter code will be always executed with scrolling disabled.
45004607K 251
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
PMS=value
PMT=value
PMM=value
where:
value This value can be:
0. Disables management of the S, T, M functions as paramacros – these functions are
executed in standard mode
1. Enables management of the S, T, M functions as paramacros – these functions enable
execution of the corresponding paramacro
NOTE:
The values assigned to the variables PMS, PMT and PMM cam be modified in the following ways:
Through ODM at the configuration stage
Through a part program with the syntax described
RESET command restores the characterisation values for these variables.
Syntax:
Same as the syntax used for auxiliary functions executed in standard mode, with the following limit: in
case of paramacros linked to S or T functions it is possible to program only one M code, possibly with its
parameters. In case of M paramacros it is instead possible to program other 3 M codes beside the M
paramacros code.
45004607K 252
Prima Electro S.p.A. OPENcontrol – Programming manual
Values and parameters related to the M codes are assigned to the H variables
according with the following table:
Parameter description Associated H variable
Paramacro M code H12
Parameters associated to the M paramacro H52H59
First non paramacro M code H60
Parameters associated to the first non paramacro M code H6370
Second non paramacro M code H61
Parameters associated to the second non paramacro M code H7178
Third non paramacro M code H62
Parameters associated to the third non paramacro M code H7986
Characteristics:
The functions generating paramacro calls cannot be programmed at the start of the block.
Leading zeroes in process number and M code are not taken into account for the paramacro name.
This means that M code 45 on process 1 will correspond to paramacro P1M45.
If M, S and/or T are programmed simultaneously, the name of the procedure to be called is
determined by the first function which is configured as a paramacro, and any other function
programmed in the block is called with the respective parameters H, HF and HC, as described in this
chapter. For example, if both M and T are configured as paramacros, programming TxMy, will
generate a call to macro PnT whilst programming MyTx will call the "PnMy" macro, with parameters
H19=x and H12=y in either case.
45004607K 253
Prima Electro S.p.A. OPENcontrol – Programming manual
For the execution of the paramacro in MDI mode, see paragraph “Executing blocks entered from the
keyboard” in the user manual.
At the end of the paramacro, the execution mode (MDI, AUTO, STEP) in which the system was working
before the call is restored.
The type of paramacro being executed can be read in the SW21 variable and it is:
1000 for a paramacro called by the S function
2000 for a paramacro called by the T function
3xxx for a paramacro called by the Mxxx function
The pathname to be used to call the paramacros can also be specified with the PTH mnemonic
described below in this chapter. If the pathname is omitted, the search for the directory containing
the subroutine is performed as follows:
case 1: no pathname has been specified through a PTH instruction.
System searches for the paramacro in the directory containing the calling program and, if it does
not find it, searches for it in the default directories specified in AMP.
case 2: a pathname has been specified through a PTH instruction.
System searches for the paramacro in the directory specified with a PTH and, if it does not find it,
searches for it in the configured default directory.
Configuration: three process variables (PMM, PMS, PMT, previously defined), if set to 1 or 0,
enable or disable the execution of the corresponding functions as paramacros.
Moreover, the execution of an auxiliary function M as a paramacro is identified by
a bit, defined in ODM.
Hence, if PMM = 1 and the “Mx” function is:
configured in the “n” process but its bit = 0, the paramacro is not executed
(standard Mx is executed instead)
configured in the “n” process and its bit = 1, the “PnMx” paramacro is executed
not configured in the “n” process, an “M not defined” error message is
displayed
Example:
Execution of the block described below in process 1, in which the auxiliary function M2 is configured
with the paramacro bit enabled
N20 X10 M2 T1.0 S2000
Paramacro
PMM PMT PMS Parameters
name
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 = 2000
1 1 or 0 1 or 0 P1M2 and HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1; HFD = 1;
HF18 = 1
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 = 3000
0 1 1 or 0 P1T and HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1; HFD = 1;
HF18 = 1
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 = 3000
0 0 1 P1S and HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1; HFD = 1;
HF18 = 1
45004607K 254
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
Execution of the following part program block in the process 1 where it is configured the auxiliary
function M42 with the bit of paramacro enabled.
PMM = 1
N30 X10 M42 T50 M45[12]
X10 H23 = 10 HF23 = 1
M42 H12 = 42 HF12 = 1
T50 H19 = 50 HF19 = 1
HI = 50 HFI = 1
HD = 0 HFD = 1
HS = “50” HFS =1
M45[12] H60 = 45 HF60 = 1
H63 = 12 HF63 = 1
Example:
Execution of the following block in process 1 where variable PMT was set to 1.
T"ToolName".20 calls paramacro P1T with parameters: H19=0.2, HF19=1; HFI = 0; HD = 20 and HFD
= 1; HS =" ToolName" and HFS = 1
45004607K 255
Prima Electro S.p.A. OPENcontrol – Programming manual
10.1 General
This chapter discusses commands that can modify, disable or suspend the program execution sequence
by:
COMMAND FUNCTION
RTP Opens the set of program blocks to be repeated
ERP Closes the set of program blocks to be repeated
These commands allow a specified set of program blocks to be executed several times. They can be used
for repetitive machining operations such as drilling multiple holes.
A subroutine is a series of blocks defining a machining cycle. The subroutine is stored as a separate file
with its own name. Control passes to blocks of the subroutine each time that they are called by the CLS,
CLD or CLT command. The subroutine may be called at any time and from any part of the main program.
45004607K 256
Prima Electro S.p.A. OPENcontrol – Programming manual
The GTO command makes the execution of a program jump to a block which contains a specific label. A
jump may be unconditional or conditional based on E parameters, machine logic signals or numeric
values.
A conditional jump is performed only if the result is true. No jump is performed if the condition is false.
The commands IF, ELSE, ENDIF allow the flow of the program to be modified conditionally without the
need to define labels and program skips.
The delay command can be used to delay the execution of the program for reasons due to
synchronisation. The disable command lets the user choose to execute or not execute slashed blocks.
45004607K 257
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(RPT,n)
.
.
.
blocks
.
.
.
(ERP)
where:
n Is the number of times the specified block must be executed. It is an integer from 1 to
65535 that can be programmed directly with a number or indirectly with an E parameter.
The control allows five nesting levels, i.e. in a repeat block you can program up to four
repeat commands.
The GTO command can be programmed inside an RPT-EPP section. However, if at program end
at least one of the cycles programmed with RPT is not executed, the system returns the
following error: '
23/166 RPT/EPP CYCLE OPEN AT END OF PROGRAM'.
Example 1:
The following is an example of the command.
80 80
40
20
30
20
20
20 X
45004607K 258
Prima Electro S.p.A. OPENcontrol – Programming manual
Program:
(DIS,"N.3 POCKETS")
(DIS,"MILL D12")
N1 S600 T6.6 M6
N2 (RPT,3)
N3 X40 Y35 M3
N4 Z 2
N5 (RPT,2)
N6 G91 Z-8
N7 G90 G1 G41 X40 Y20 F300
N8 X60
N9 Y50
N10 X20
N11 Y20
N12 G40 X40
N13 Y35 F1000
N14 (ERP)
N15 G Z2
N16 (UIO,X80,Y20)
N17 (ERP)
N18 (UAO,0)
N19 Z20
N20 X Y M30
Example 2:
This example shows how three repeat levels are nested.
(RPT, 8)
(RPT,
10)
(RPT, 5)
1 2 3
(ERP)
(ERP)
(ERP)
45004607K 259
Prima Electro S.p.A. OPENcontrol – Programming manual
Program:
Y
(DIS,"EQUIDISTANT HOLES")
N1 F200 S900 T1.1 M6
N2 G81 R5 Z-10 M3 50
N3 X10 Y10
N4 (RPT,7)
N5 G91 X10
N6 (ERP)
8 holes, path 10
N7 Y40
10
N8 (RPT,7)
N9 X-10 10
N10 (ERP)
0
N11 G80 G90 XY M5
X
0 10 80
Finishing Cycle
Roughing Cycle
45004607K 260
Prima Electro S.p.A. OPENcontrol – Programming manual
Program:
(DIS,"DEFINITION OF MACHINING ALLOWANCE")
N1 S350 T6.6 M6
N2 X60 Y M3
N3 Z-50
N4 MSA=0.5
N5 (RPT,2)
N6 G1 G41 X60 Y60 F500
N7 G3 Y-60 I60 J
N8 G1 X100
N9 G3 Y60 I100J
N10 G1 G40 X60
N11 MSA=0
N12 (ERP)
N13 GZ20 M5
N14 X Y M30
45004607K 261
Prima Electro S.p.A. OPENcontrol – Programming manual
CLS Call to a static subroutine: analysed upon the activation of the main part program
CLD Call to a dynamic subroutine: analysed during the execution of the part program and only
if the name has not been found earlier
CLT Call to a temporary subroutine: analysed during the execution of the part program
whenever its call is encountered
$() Call to a static subroutine: analysed upon the activation of the main part program
Syntax
where:
name Subroutine file name.
must be specified through either a string of capital characters or a string variable
preceded by key "?" (question mark).
may be simply a file name, or it may be specified via a logic address, through a DRIVE
configured in AMP. If a path is specified, the system works out automatically the physical
address associated with the DRIVE.
127 alphanumerical characters are available to specify the file name, including the path
and the extension, as applicable. For further details on how to specify the file name, see
paragraph “PROGRAM FILE” in chapter 1 of the following manual
parameter1
parameterN list of the optional parameters sent to the subroutine. Parameters can be programmed
directly by with a decimal value or indirectly by an E parameter. All values will be
available within H variables.
Example:
(CLS,\DRIVEUSER\PROGRAM.PRG) ;call to a subroutine with logic path
Example:
(CLS,PROGRAM.MIO) ;call to a direct subroutine
45004607K 262
Prima Electro S.p.A. OPENcontrol – Programming manual
NOTE:
If name is a string variable preceded by the "?" code, the subroutine is not analysed upon the
activation of the main part program; it is analysed instead during the execution of the latter.
This has the following implications, depending on the triliteral used to call the subroutine:
CLS or $(): the subroutine cannot contain skip instructions
CLD or CLT: the subroutine can contain skip instructions as it is analysed at runtime.
The pathname to use for calls to subroutines may also be declared through the three-letter code
PTH described later in this chapter. If the pathname is omitted in the call to a subroutine, the
search for the subroutine is carried out as follows :
1. No pathname specified via PTH
The system searches for the subroutine in the directory in which the calling program is
found and if it is not there, it looks for it in the default DOS directories defined at the
machine characterisation stage.
2. Pathname specified via the PTH instruction
The system looks for the subroutine in the directory specified with PTH, if it is not there,
it looks in the DOS directories defined at the machine characterisation stage.
The number of subprograms and “static” labels managed by the control depends on the
corresponding values configured in AMP. For full tables, a memory management procedure is
activated, which, as far as possible, removes the dynamic and paramacro subroutines from the
tables and compacts the static ones ($() and CLS). When it is not possible to free any further
space in the memory, a table full message is given out and the system shifts to the same error
conditions as would have occurred during part program selection. At this point, the operator can
proceed either by changing the part program or increasing the maximum limits specified for the
tables.
When the tables are full and the execution of a program is not blocked thanks to the memory
compacting feature, program execution is slowed down, during the subsequent stage of analysis,
which inevitably takes place in the event of a blocking error.
The successful completion of a program activation stage is no guarantee that the program will be
executed without errors, if the memory is full. This is the case, for instance, of a CLD calling a
number of CLS or $() instructions large enough to fill up the tables.
Re-executing a main program may generate a tables full message even if the program has been
activated in its entirety the first time (after its activation). This is because after the activation
of a program, the tables do not contain the file names and the static subroutine tables called
either by static subroutines or by dynamic or temporary subroutines.
A command for a call to the same program name is entered through triliterals of different types
(e.g. first CLT and then CLS) a label unknown message may be generated; the message can be
obviated by replacing the CLS call with a CLD call.
A run time change to a subroutine not followed by the reactivation of the main program will be
interpreted only if the call is made through a CLT; otherwise, the one previously analysed will be
re-executed, with unpredictable effects on program execution.
Optional parameters calling a subroutine are assigned to H variables. Parameter in N position is
mapped on H variable of N-1 index.
45004607K 263
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
An example of call to a subroutine is shown below, a path with PTH is not specified.
Main program Subroutine P800 ;is searched for in the directory where the main
program resides and in the default directories configured in AMP
N16 . . .
N17(CLS,P800) N500. . .
N18. . . N501. . .
. N502. . .
. N503 . . .
N67(CLS,P800)
N68 . . .
Example 2:
Sequence for execution of four nested subroutines.
MAIN PROGRAM
........... SUBROUTINE 1
...........
(CLS,SUB1) ...........
SUBROUTINE 2
...........
...........
(CLS,SUB2) ...........
SUBROUTINE 3
........... ...........
(CLS,SUB3) ...........
SUBROUTINE 4
........... ........... ........... ...........
........... ...........
...........
...........
...........
...........
Example 3:
Call to subroutine specified in implicit mode
SC0.5="PIPPO"
(CLS,?SC0.5)
45004607K 264
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 4:
This example uses subroutines for repeated drilling operations.
15 60
50
20
X
20
25
15
30
Main Program:
N19 (DIS,"...")
N20 S2000 F180 T2.02M6 Subroutine S600
N21 (UTO,1,X-20,Y-25)
N22 (CLS,S600) N501 G81 R-108 Z-130 M3
N23 (UTO,1,X-15,Y50) N502 XY
N24 (CLS,S600) N503 Y-15
N25 (UTO,1,X60,Y20) N504 X30
N26 (CLS,S600) N505 Y0
N27 Z0 N506 G80
45004607K 265
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 5:
Parabolic profile programming with a parametric subroutine.
Main Program:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 E30=72.795 ;start X
N40 E31=24.28 ;focal length (twice the focus)
N50 E32=2 ;Y increment
N60 E33=108.24 ;start Y
N70 E34=0 ;final Y
N80 GX0 Y120
N90 (CLS,PAR)
Subprogram PAR:
;N500 PAR
;N501 Parametric subroutine: Complete parabola execution, internal profile.
N502 G1 G42 XE30 YE33
N503 E36 = E33
"START" N504
N505 E36=E36-E32
N506 (GTO,END,E36<E34)
N507 E35=SQR( 2*E31*ABS(E36))
N508 XE35 YE36
N509 (GTO,START)
"END" N510
N511 E35=SQR (2*E31*ABS(E34))
N512 XE35 YE34
1
;N513 Second part of the parabola.
0
N514 E42=E32 0
N515 E43=E34
N516 E44=E33
N517 XE35 YE43
"START2" N518
N519 E43=E43+E42
N520 (GTO,END2,E43>E44)
N521 E35= -(SQR (2*E31*ABS(E43)))
N522 XE35 YE43
N523 (GTO,START2) -1 0 0
"END2" N524 -1 0 0 100
N525 E35= - (SQR(2*E31*ABS(E44)))
N526 G40 XE35 YE44
N527 GX0
45004607K 266
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 6:
Call to the dynamic subroutine, specified in an implicit manner with the PAR subprogram of the previous
example.
Main program:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 E30=72.795 ;Initial value of X
N40 E31=24.28 ;Focal length
N50 E32=2 ;Increment of Y
N60 E33=108.24 ;Initial value of Y
N70 E34=0 ;Final value of Y
N80 GX0 Y120
SC0.5="PAR"
(CLD,?SC0.5)
45004607K 267
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 7:
Execution of the parabolic profile (Ex. 5) using direct passing of parameters to the subroutine.
Main program:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 GX0 Y120
N40 (CLS,PAR, 72.795, 24.28, 2, 108.24,0)
PAR subroutine:
;N500 PAR
;N501 Subroutine parameter: complete parabolic profile execution.
N502 G1 G42 XH0 YH3
N503 E36 = H3
"START" N504
N505 E36=E36-H2
N506 (GTO,END,E36<H4)
N507 E35=SQR( 2*H1*ABS(E36))
N508 XE35 YE36
N509 (GTO,START)
"END" N510
N511 E35=SQR (2*H1*ABS(H4))
N512 XE35 YH4
;N513 Second part of the parabolic profile
1
N514 E42=H2
0
N515 E43=H4 0
N516 E44=H3
N517 XE35 YE43
"START2" N518
N519 E43=E43+E42
N520 (GTO,END2,E43>E44)
N521 E35= -(SQR (2*H1*ABS(E43)))
N522 XE35 YE43
N523 (GTO,START2)
"END2" N524 -100
N525 E35= - (SQR(2*H1*ABS(E44))) -100 100
N526 G40 XE35 YE44
N527 GX0
45004607K 268
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax
where:
mode mode may have the following values:
0= Takes as the default pathname for CLS calls the path of the main program.
1= Declares the path to use when there is a (PTH,2) instruction active.
This mode may be of use when a pathname defined initially with (PTH,1,pathname) has to
be called numerous times in the part program with (PTH,2).
2= Activates the path specified in the instruction or, if none is specified, the one declared
previously with a (PTH,1,pathname) instruction.
pathname Path to be declared as the path; this is an optional parameter. It is not a physical address
and hence it must contain a logic DRIVE that was associated with a physical path in AMP at
the machine characterisation stage.
NOTE:
The pathname declared with three-letter code PTH is preserved even after a RESET of the process in
which it was programmed.
45004607K 269
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
label1 Label field of the first block to be executed. A label is an alphanumeric string long up to
sixteen characters. It can be specified directly through a character string (non included
into superscripts) or through a string variable preceded by the character ‘?’.
label2 Label field of the last subprogram block to be executed. This label is an alphanumerical
string long up to sixteen characters. It can specified directlt through a character string
(not included into superscripts) or through a string variable precede by the character ‘?’.
Characteristics:
Labels have to be programmed between quotes ("LABEL1") in program blocks, while in the EPP command
they are declared without quotes. The system accepts up to 5 nesting levels.
If the command is programmed with one label field, then the return to the calling point happens when
executing an M code of type “exit from subroutine” (an M02, typically).
If the end of part program is reached when executing an EPP command with one label field, then
execution ends and there is no return to the calling point.
In contouring operations, the EPP command can be used for finish milling with the same program blocks
used for roughing. During the roughing phase, the MSA command could be used to program the machining
allowance for finishing.
In positioning operations, after programming points for a centring operation, the EPP command calls for
different tools in order to execute different operations on each hole. The EPP command can be used to
execute a complete machining operation at different orientations on the active interpolation plane.
45004607K 270
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
.
.
"START"N25 First block with label
.
. An EPP cannot occur here
.
"END"N100 Last block with label
.
.
.
N150 (EPP,START,END) EPP command that specifies the labels. The control executes
blocks N25 to N100; after this point execution continues on the
block written after EPP, N150.
The '23/165 NESTING OF EPP GREATED THAN 5' error occurs if more than five instructions
are nested in an EPP command.
GTO command can be programmed inside an EPP section. However, if at program end at least
one of the cycles programmed with EPP are not fully executed, the system returns the
following error: '23/166 RPT/EPP CYCLE OPEN AT END OF PROGRAM'.
45004607K 271
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 2:
This example shows how to use the EPP command in a positioning operation:
Program:
N1 (DIS,"DRILLING CENTRE HOLES")
N2 F300 S2000 T1.1 M3 M6
N3 G81 R0 Z-3
"D6"N4
N5 X100 Y100
N6 X-100
N7 Y-100
N8 X100
"D10"N9
N10 X40 Y40
N11 X-40
N12 Y-40
N13 X40
"END"N14
N15 G80
N16 (DIS,"BIT D6")
N17 F200 S1800 T2.02 M3 M6
N18 G81 R Z-22
N19 (EPP,D6,D10)
N20 G80
N21 (DIS,"BIT D10")
N22 F220 S1600 T3.3 M3 M6
N23 G81 R Z-24
N24 SC0.3 = “D10”
N25 (EPP,?SC0.3,END)
N26 G80
45004607K 272
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
block1 Is the part-program block to be executed.
This can be a string in inverted commas or a character, local or system variable.
par1 Is a local or system variable or a constant whose value is compared to the value
contained in the parameter par2.
condition Condition, optional, that must be true to execute the block block1
The condition can be an algebraic-logic expression or a direct comparison between
two strings. Strings can be either constant enclosed in quotes (single or double)
and string variables.
block2 Is the part-program executed when if the specified condition for block1 is not
met. It is an optional parameter. This can be a string in inverted commas or a
character, local or system variable.
Characteristics:
If par1 ,operator and par2 conditions have not been specified, the program always executes the
part_program_block1 block.
Only one level of nesting is accepted by the system with the three-letter code EPB.
Example:
(EPB, “(EPB,’E1=1’)”) : accepted by the system
(EPB, “(EPB,’(EPB,SC0.100)’ )”) : NOT accepted by the system (error: FORMAT ERROR)
The part-program blocks specified in the three-letter code EPB are not analysed in the activation phase
of the part-program, therefore it is up to the programmer to see that these blocks do not cause any
malfunctioning of the part-program.
45004607K 273
Prima Electro S.p.A. OPENcontrol – Programming manual
Example:
(EPB,’ “LABEL” ’) : The label LABEL will not be inserted in the label table of
the part-program.
SC0.30= ” E1 =10”
(EPB, SC0.30) : equivalent to the block E1=10
SC40.30 = “# X10”
(EPB, SC40.30) : equivalent to the block #X10
(EPB,” E1=100”, SN1=25,” E1=0”) : assigns 100 to E1 only if SN1=25, otherwise assigns 0 to
E1
(EPB,“ ( EPB,’ E0 = 5’, E0 < 5) ",E0 < 10,E0=10) : assigns the value 5 to E0, if
E0<5; assigns 10 to E0 if
E0>10.
If 5<E0<0, E0 does not change.
45004607K 274
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(GTO,label [,condition])
where:
label Label of the program block to branch to. A label is a string of up to 16 alphanumeric
characters. In the destination block the label must be between quotes while in the GTO
command the label must be programmed without quotes, it may also be a character
variable preceded by “?”
condition Condition, optional, that must be true to execute the jump to the label.
The condition can be an algebraic-logic expression or a direct comparison between two
strings. Strings can be either constant enclosed in quotes (single or double) and string
variables.
Characteristics:
If no condition is specified, the program always jumps to the block marked by the label.
The label on which the part program will branch to can also be expressed as a local or system variable
(preceded by the "?" character).
This facilitates execution of programs having a great number of blocks to change the execution flow.
In particular, by programming the label as a variable it is possible to program a default label and call it
"DEFLAB": the part program jumps to "DEFLAB" if the label in the variable does not exist.
45004607K 275
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 1:
;SC0.3 contains the label
(GTO,?SC0.3)
"ONE"
.
.
.
.
"TWO"
.
.
.
.
"THREE"
.
.
.
"DEFLAB"
.
.
.
If SC0.3 does not contain "ONE", "TWO" OR "THREE" the part program jumps to the "DEFLAB" block. If the
"DEFLAB" label does not exist, error '23/156 Undefined label' is displayed and part program execution is
interrupted.
Example 2:
N01 (GTO,START) the part program always jumps to "START"
N10 (GTO,END,E1 > 123) jump to "END" if the value of E1 is greater than 123
N20 (GTO,LAB1,@COOLANT = 1) jump to "LAB1" if the WinPLUS variable
@COOLANT = 1
N30 (GTO,START,E1 <> E5) jump to "START" if the value of E1 is different to that of
E5
N40 (GTO,LAB1,SC1.2H = "OK") jump to "LAB1" if the two characters beginning with SC1
are equal to OK
N50 SC1.3="ABC" prepares the variable for the following block
N60 (GTO,?SC1.3) jump to ABC label
Example 3:
The instruction:
(GTO,END,SC2.3 = "ABC")
jumps to the "END" label in the program if the three characters (.3) beginning from SC2 are ABC.
NOTE:
The character string to be compared in the jump command must always be programmed between
quotes.
45004607K 276
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 4:
Here is an example of conditional jump in slot milling.
Program:
N1 (DIS,"MILL A SLOT")
N2 F500 S2000 T1.1 M3 M6
N3 E31=-3.5
N4 E32=-24
"START"
N6 G X Y-10
N7 Z(E31)
N8 G1 G42 X Y-20
N9 X-30
N10 Y20
N11 X30
N12 Y-20
N13 G40 X
N14 Y-10
"END"
N16 E31=E31-3.5
N17 (GTO,START,E31>E32)
N18 E31=-25
N19 (EPP,START,END)
N20 G Z10
45004607K 277
Prima Electro S.p.A. OPENcontrol – Programming manual
Example 5:
This is an example of conditional jump in cylindrical thread machining.
Program:
N1 (DIS,"THREAD DIA 60")
N2 S150 T5.5 M6
N3 G0 X66 Y98 Z5 M3
N4 E30=56.8
N5 E31=0.5
N6 E32=50
N7 E33=60
"I" N8
N9 G0 Z5
N10 U(E30)
N11 G33 Z-45 K3
N12 GU(E32)
N13 E30=E30+E31
N14 (GTO,F,E30>E33)
N15 (GTO,I)
"F" N16
N17 GU(E32)
N18 Z5
N19 U(E33)
N20 G33 Z-45 K3
N21 GU(E32)
N22 Z20
45004607K 278
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(IF, condition)
.
blocks
.
(ELSE)
.
blocks
.
(ENDIF)
where:
condition It is the necessary condition for the execution of the cycle IF-ELSE.
The condition can be an algebraic-logic expression or a direct comparison between two
strings. Strings can be either constant enclosed in quotes (single or double) and string
variables.
blocks array of blocks to be executed
Characteristics.
If the condition specified in the IF command is met, the blocks specified up until the ELSE command (if
present) or until the ENDIF command (if the ELSE command is not present) will be executed, otherwise
they will be ignored. The condition can be a logical-mathematical expression or a string comparison.
The blocks between the ELSE command and the ENDIF command will be executed only if the condition
specified in the IF command is not met. Up 32 levels of nesting are allowed with the IF ELSE ENDIF
command. Each IF command must have a corresponding ENDIF command.
45004607K 279
Prima Electro S.p.A. OPENcontrol – Programming manual
Examples:
( IF , E0 = 3)
( DIS , “ E0 is equal to 3 “)
(ELSE)
( IF E0 > 3)
( DIS , “ E0 is greater than 3 “)
(ELSE)
( DIS , “ E0 is less than 3 “)
( ENDIF)
( ENDIF)
( IF , E0 >10 )
( IF , E0 >20 )
( IF , E0 >30 )
( IF , E0 >40 )
( IF , E0 >50 )
( DIS , “ E0 is greater than 50 “)
( ENDIF)
( ENDIF)
( ENDIF)
( ENDIF)
( ENDIF)
45004607K 280
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
(DLY,time)
where:
time Delay time in seconds (minimum value 0.01).Delay is defined using a real number, a
variable or an algebraic expression.
Syntax:
DSB = value
where:
value The value may be:
0 slashed blocks are executed
1 slashed blocks are not executed
Syntax:
(REL)
Characteristics:
The REL function disables the part program. It can be entered through MDI.
After the program has been released, the following message will be displayed: '23/160 END OF FILE'.
45004607K 281
Prima Electro S.p.A. OPENcontrol – Programming manual
Syntax:
where:
par1 Is a local or system variable or a constant to be compared to the value of par2.
Characteristics:
The process where the WOS function is programmed goes into WAIT until the condition is satisfied. Il
controllo della condizione viene effettuato ad ogni intervallo di tempo pari al minimo tra 10ms e il clock
configurato nel processo.
By default the WOS command is synchronised. If the system is in WAIT during program debugging
(because a WOS function has been programmed), it is possible to assign to the par1 variable the value
that satisfies the condition specified in WOS.
Programming Example:
(WOS,E1>4)
(WOS,SC10.5 = "GOOFY")
(WOS, TOOL_STATUS>=E3)
(WOS,!USER_VAR3.5CH 0 SC4.5)
45004607K 282
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 283
Prima Electro S.p.A. OPENcontrol – Programming manual
CHARACTER DESCRIPTION
Axes feedrate in G1-G2-G3 – G12 – G13 – G14 (feed on
F profile)
f Global dynamic characteristics set (on profile) in G1, G2, G3, G12,
G13, G14
Preparatory Code (G00 - G99)
G Reserved (G100 - G299)
Paramacro subroutines (G300 - G999)
H Parameters used in PARAMACROS
h Offset change during continuous move
Coordinates of the arc centre in a circular interpolation (G2
G3- G12 – G13)
I Variable pitch in G33
Depth increment in deep drilling cycles (G83)
Coordinate of the third point abscissa in G14 (spatial circular
interpolation for three points)
Coordinates of the arc centre in a circular interpolation (G2-
J
G3) (ordinate)
Min depth increase in (G83)
Coordinates of the arc centre in a circular interpolation
(G2-G3-G12-G13)
Coordinate of the third point in G14 on the third axis (spatial
circular interpolation for three points)
K Reduction factor for I and J in drilling cycle
Threading Pitch (G33)
P Axis name
Q Axis name
Rapid positioning in cycles G81 - G89
Deviation from the spindle zero (used in multi-start threads)
R Radius in a circular interpolation G02-G03 – G12 – G13
r Tool compensation joint
Theoretical hole radius (G73)
S Spindle speed
Tool and tool offset address
T Ramp time (acceleration) on profile or on block (associated
t to F or f)
Time needed to complete the move in one block
45004607K 284
Prima Electro S.p.A. OPENcontrol – Programming manual
CHARACTER DESCRIPTION
U Axis name
u Compensation factors in axis 1 (offset)
V Axis name
v Compensation factors in axis 2 (offset)
W Axis name
w Compensation factors in axis 3 (offset)
Axis name
X
Orthogonal versor component for circumference or semi-
x
circumference in space (G12-G13)
Axis name
Y
Orthogonal versor component for circumference or semi-
y
circumference in space (G12-G13)
Axis name
Z
Orthogonal versor component for circumference or semi-
z
circumference in space (G12-G13)
45004607K 285
Prima Electro S.p.A. OPENcontrol – Programming manual
11.2 G codes
The table below lists the G codes available on OPENcontrol systems.
G CODE FUNCTION
G26 Operation in continuous sequence with null feed until the block end
G35 Absolute roto-translation of linear axes three-letter code (it requires option A39)
Roto-translation of a linear axes three-letter code compared to the active origin (it
G36
requires option A39)
G37 Coordinates of the theoretical points to define the three-points roto-transaltion
G39 Activation of the roto-translation defined by three points (it requires option A39)
45004607K 286
Prima Electro S.p.A. OPENcontrol – Programming manual
G CODE FUNCTION
G67 Divides spline profile in two units with speed rate reduced on the edge.
G78 Programming referred to the tool tip and motion referred to the machine zero
G74 Probing for theoretical deviation from point without probe ball radius compensation
45004607K 287
Prima Electro S.p.A. OPENcontrol – Programming manual
G CODE FUNCTION
45004607K 288
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 289
Prima Electro S.p.A. OPENcontrol – Programming manual
VARIABLE Access in
FUNCTION
NAME writing
IDMODE Internal interruptions management mode YES
ISOCOMP Various compatibility flag NO
JRK Acceleration management mode with S ramps (RAMP=2) YES
JRKCRV Enable/Disable the jerk limitation in spline curve YES
KVGAIN Speed reduction constant in circular interpolation YES
Numerical system variables for the exchange of data between process
L YES
and WinPLUS
LINENO Number of the outlined string NO
LS System strings variables YES
MAXLEN Max length of the generated splines YES
MBA Enables/disable auxiliary functions in Multi Block Retrace YES
MBR State of the Multi Block Retrace enable NO
MBRLEN Reverse distance during Multi Block Retrace YES
MBRTHR Stop threshold from the point in MBR YES
MDA Maximum deviation angle YES
MOA Axes motion options YES
MOM Manual motions configuration YES
MOVNULL Null movement threshold YES
MSA Machine allowance definition YES
ODH "Online Debug Help" YES
PMM Enables/disables auxiliary function M as paramacro YES
PMS Enables/disables auxiliary function S as paramacro YES
PMT Enables/disables auxiliary function T as paramacro YES
POCKACC Enable/Disable pocket variable write access YES
RAMP Movement mode YES
RAPSTOP Rapid brake enabling YES
RCD Disable element count for RCM YES
RCM Enable RCM state NO
RCNEAR State of the enable of the nearest point search NO
REM Return to profile mode YES
ROLLOPT Optimized movement of rollover axes YES
RTV Real-Time variable YES
SC System character YES
SCRLPAR Disable paramacro scrolling YES
SHAPERR Speed reduction threshold in circular interpolation YES
SN System number YES
SNMT Null movement threshold on spline axes NO
SPL3D Kinematic transformation enabled in Spline module NO
SSL Spindle speed limit NO
STA Identifier of system task generating the error NO
STE Specific error of system task NO
STPMOV Semiautomatic execution mode type (block to block) NO
TAG Gain for accelerated tapping YES
TBS Precisions associated to the spline axes during machining YES
TBSG0 Precisions associated to the spline axes during rapid movements YES
TBV Precision associated to the spline versors during machining YES
45004607K 290
Prima Electro S.p.A. OPENcontrol – Programming manual
VARIABLE Access in
FUNCTION
NAME writing
TBVG0 Precision associated to the spline versors during rapid movements YES
TCPACT Identifier of the active kinematics NO
TCPDEF Default kinematics identifier YES
TIM System timing NO
TKG Gain for constant speed tapping YES
TMA Axis identifier for rigid tapping YES
TMD Axis id for solid tapping YES
TMT Tool parameter for PLC YES
TPA Threshold angle for TPO activation YES
TPO Tool path optimisation YES
TPT Threshold for TPO YES
TRACE Enable/Disable log information on a file of the commands to the process YES
TRP Tapping return speed YES
UAS Axis deconnected state NO
UDR Uses rapid dynamics YES
UPA Probe abscissa update YES
UPO Probe ordinate update YES
URL Rapid feedrate override YES
UVR Uses rapid feed YES
VLEAP3D Enable/Disable velocity reduction on corner joint YES
VFF Velocity Feed Forward YES
XMLMAP Mapping File upload status NO
XMLMAPLN Number of the wrong string during the Mapping File upload NO
45004607K 291
Prima Electro S.p.A. OPENcontrol – Programming manual
THREE-LETTER
FUNCTION YES MODIFIABLE
CODE
45004607K 292
Prima Electro S.p.A. OPENcontrol – Programming manual
THREE-LETTER
FUNCTION YES MODIFIABLE
CODE
45004607K 293
Prima Electro S.p.A. OPENcontrol – Programming manual
THREE-LETTER
FUNCTION YES MODIFIABLE
CODE
45004607K 294
Prima Electro S.p.A. OPENcontrol – Programming manual
THREE-LETTER
FUNCTION YES MODIFIABLE
CODE
45004607K 295
Prima Electro S.p.A. OPENcontrol – Programming manual
The following is a summary table of all the OPENcontrol language three-letter codes with the
information of the option required (if necessary).
45004607K 296
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 297
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 298
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 299
Prima Electro S.p.A. OPENcontrol – Programming manual
NOTE: The programming of UPR, 4 (or upr, 4) requires the option A31 (TCP)
45004607K 300
Prima Electro S.p.A. OPENcontrol – Programming manual
DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R
BL ANK
(NULL) (DLE) BLANK
000 00 (NUL L ) 016 10 032 20 (SPACED) 048 30 0
(SOH) (DC1)
001 01 017 11 033 21 ! 049 31 1
(STX) (DC2)
002 02 018 12 034 22 " 050 32 2
003 03 (ETX) 019 13 !! (DC3) 035 23 # 051 33 3
004 04 (EOT) 020 14 ¶ (DC4) 036 24 $ 052 34 4
005 05 (ENQ) 021 15 § (NAC) 037 25 % 053 35 5
006 06 (ACH) 022 16 (SYN) 038 26 & 054 36 6
007 07 (BEL) 023 17 (ETB) 039 27 ' 055 37 7
008 08 (BS) 024 18 (CAN) 040 28 ( 056 38 8
009 09 (HT) 025 19 (EM) 041 29 ) 057 39 9
010 0A (LF) 026 1A (SUB) 042 2A * 058 3A :
011 0B (VT) 027 1B (ESC) 043 2B + 059 3B ;
012 0C (FF) 028 1C (FS) 044 2C , 060 3C <
013 0D (CR) 029 1D
(GS) 045 2D - 061 3D =
014 0E (SO) 030 1E (RS) 046 2E . 062 3E >
015 0F (SI) 031 1F (US) 047 2F / 063 3F ?
DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R
45004607K 301
Prima Electro S.p.A. OPENcontrol – Programming manual
DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R
141 8D ì 157 9D Y
T
173 AD ¡ 189 BD
DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R DEC HEX CHARACTE R
45004607K 302
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 303
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 304
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 305
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 306
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 307
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 308
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 309
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 310
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 311
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 312
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 313
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 314
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 315
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 316
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 317
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 318
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 319
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 320
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 321
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 322
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 323
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 324
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 325
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 326
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 327
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 328
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 329
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 330
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 331
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 332
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 333
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 334
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 335
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 336
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 337
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 338
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 339
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 340
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 341
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 342
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 343
Prima Electro S.p.A. OPENcontrol – Programming manual
45004607K 344
Prima Electro S.p.A. OPENcontrol – Programming manual
Contacts:
PRIMA ELECTRO S.p.A.
OSAI Business Unit
Strada Carignano, 48/2
Moncalieri (TO) - ITALY
Tel. +39 011 9899 800
Web: www.primaelectro.com
e-mail: [email protected]
45004607K 345