Professional Documents
Culture Documents
SIAX S series
Programming Manual
SIPRO S.r.l.
Viale dell'Industria, 7
37135 Verona - ITALY
Tel. +39 045 508822 - Fax +39 045 585477
http://www.sipro.vr.it - e-mail:sipro@sipro.vr.it
M0000464 v3.3
This manual is updated as at the date indicated in the last page,the Sipro S.r.l. reserves the right
to update the product specifications or performance or the contents of the manual without prior
notice
Page 2 M0000464
Programming Manual Index
Index
Introduction 14
Programming the NC .............................................................................................................. 15
Programming directly from the keyboard 16
Program Editor ........................................................................................................................ 17
General rules for writing steps ............................................................................................... 17
Inserting instructions .............................................................................................................. 18
Deleting instructions............................................................................................................... 18
Replacing instructions ............................................................................................................ 18
Modifying instructions ........................................................................................................... 18
Change step number ............................................................................................................... 18
Inserting a step........................................................................................................................ 18
Deleting a step ........................................................................................................................ 18
I/O descriptors ........................................................................................................................ 19
Program example.................................................................................................................... 20
General programming notes 21
Structure of an NC program................................................................................................... 22
Program identification directives (number, name, definitions, files included) ...................... 22
Step syntax.............................................................................................................................. 24
Example of an NC program.................................................................................................... 26
Compiling Program ................................................................................................................ 26
Instruction priorities ............................................................................................................... 27
List of available instructions ................................................................................................... 29
Instruction list assignment values to variables .............. Errore. Il segnalibro non definito.
Instructions for the management of analogs inputs and outputs .. Errore. Il segnalibro non
definito.
Instructions for the management of timers .................... Errore. Il segnalibro non definito.
Instructions for the management of the axes ................. Errore. Il segnalibro non definito.
Instructions for handling of axes with interpolation...... Errore. Il segnalibro non definito.
Instructions for the management of the origins ............. Errore. Il segnalibro non definito.
Instructions for managing tools (instructions developed for specific applications. To use
these instructions consult the Sipro technical department ) ......... Errore. Il segnalibro non
definito.
Instructions for controlling the flow of the program ..... Errore. Il segnalibro non definito.
Instructions managing parallel programs ...................... Errore. Il segnalibro non definito.
Instructions for the management of the parameters of the numerical control ............Errore. Il
segnalibro non definito.
Instructions for general use............................................ Errore. Il segnalibro non definito.
NC DESCRIPTION ISTRUCTION....................................................................................... 40
Instruction (14) AN OUT n = m .............................................................................................................................. 40
Instruction (77) ANT AX n TP t VAL q ................................................................................................................. 41
Instruction ( 94 ) AX n INCR m .............................................................................................................................. 42
Instruction ( 80 ) AX n TO m .................................................................................................................................. 43
Instruction ( 85 ) AX n VEL v QUOTE m.............................................................................................................. 44
Instruction (38) CONT MOVE .......................................................................................................................... 46
Instruction (34) END .......................................................................................................................................... 47
Instruction (57) F m ............................................................................................................................................ 48
M0000464 Pag. 3
Index Programming Manual
Page 4 M0000464
Programming Manual Index
M0000464 Pag. 5
Index Programming Manual
FUN 63 INITIATION MANAGEMENT ACTION CAM WITH AXIS ASSOCIATED ................................. 147
FUN 64 PROGRAMMING OF A CAM SHAFT ASSOCIATED WITH .......................................................... 148
FUN 65 DETERMINATION OF A POSITION OF AXIS SLAVE CORRESPONDING TO A POSITION OF
AXIS MASTER ....................................................................................................................................................... 152
FUN 66 SETTING THE STAGE........................................................................................................................... 155
FUN 71 ACQUISITION OF AXIS LEVEL FROM INTERRUPT OF THE ENCODER ZERO NOTCH
157
FUN 72 INITIALIZATION VARIABLES FOR IRQ MANAGEMENT ON CANopen ........................... 160
FUN 76 77 POSITION ROLLOVER........................................................................................................... 161
FUN78 SET MODES FOR COUPLING AND UNCOUPLING TRACKING........................................... 162
FUN 79 MODIFY THE OBJECTIVE LEVEL OF AN AXIS IN MOTION ..................................................... 165
FUN 80 MODIFY AXIS POSITION WITH AXIS IN MOTION....................................................................... 167
FUN 81 RESET IN AUTOMATIC CYCLE......................................................................................................... 169
FUN 82 FUNCTION OF CHANGE SPEED AT FINAL LEVEL ...................................................................... 171
FUN 104 AUTOMATIC RECOVERY QUOTA .................................................................................................. 173
FUN 106 AUTOMATIC RECOVERY QUOTA .................................................................................................. 174
FUN 107 AUTOMATIC RECOVERY QUOTA .................................................................................................. 175
FUN 111 TRIGGER SWAP WITH TRACKING PROFILE TABLES SINE .................................................. 180
FUN 130 ACTIVATION TRACKING WITH TABELLARE SINE AND MANAGEMENT PACK HIGH
PROFILE. 185
FUN132 CALCULATE THE COORDINATE OF A PALLET'S CURRENT POSITION........................ 190
FUN133 CALCULATE THE COORDINATE OF A PALLET'S SPECIFIED POSITION ...................... 191
FUN134 RESET AUTOMATIC SEQUENCE OF A PALLET..................................................................... 192
FUN196 FUNCTION TO SET/RESET VB ON ZERO ENCODER NOTCH ............................................. 193
FUN 200 INITIALIZATION RESET ENCODER THROUGH ZERO NOTCH......................................... 194
FUN 216 CALCULATION COORDINATES FOR LEANING MOVEMENT 3 AXES ............................. 195
FUN 251 MODIFY FIRMWARE PARAMETERS......................................................................................... 197
FUN 255 RUN FUNCTION WPLC FROM NC PROGRAM......................................................................... 199
Loops ....................................................................................................................................... 200
Management of variables ...................................................................................................... 201
Examples of operations on variables with instructions ........................................................ 202
Conditional instructions with variables ................................................................................ 202
Tracking management........................................................................................................... 203
Variables for managing tracking .......................................................................................... 203
Tracking mode 0................................................................................................................... 204
Tracking mode 1................................................................................................................... 204
Tracking mode 2................................................................................................................... 204
Tracking mode 3................................................................................................................... 204
Tracking mode 4................................................................................................................... 204
Tracking mode 5................................................................................................................... 204
Tracking mode 6................................................................................................................... 205
Tracking mode 7................................................................................................................... 205
Tracking mode 8................................................................................................................... 205
Tracking mode 9................................................................................................................... 205
Tracking mode 10................................................................................................................. 205
Tracking modes 12 and 13.................................................................................................... 205
Tracking modes 14 and 15.................................................................................................... 205
Tracking mode 101............................................................................................................... 205
Tracking modes 104, 105, 112, 113, 114 and 115................................................................ 206
Tracking modes 107 and 109................................................................................................ 206
Resetting for Twin Axes ........................................................................................................ 207
Resetting for Twin Axes ........................................................................................................ 207
Barcode management ............................................................................................................ 208
Dedicated password management ........................................................................................ 211
Page 6 M0000464
Programming Manual Index
M0000464 Pag. 7
Index Programming Manual
Page 8 M0000464
Programming Manual Index
M0000464 Pag. 9
Index Programming Manual
Page 10 M0000464
Programming Manual Index
M0000464 Pag. 11
Index Programming Manual
Appendix 427
Page 12 M0000464
Programming Manual Index
M0000464 Pag. 13
Introduction Programming Manual
Introduction
The CN Sipro are divided into two types:
- Series S: Siax80, Siax100, Siax110Light, Siax110, Siax150, Siax200,
Siax300C
- M: SIAX M8, M32 SIAX
The numerical control consists of a 32-bit central processing unit and has
two software sections (NC and PLC) that work in multitasking.
The NC has a broad instruction set (subroutines, counts, comparisons,
mathematical operations, interpolations, indexed tables, 2 and 4-byte
variables, etc.) that allows resolving the most varied loop situations.
It is accompanied by significant software supports for the operator, which
simplify programming and allow for checks during the execution of
programs. A description of these tools is found in manual M0000518,
SiaxED Manual.
The PLC program is written using graphic sets on a PC and transmitted
to the controller over a serial line. The PLC program is described in
manual M0000514, "PLC Software."
The numerical control has a broad instruction set and all variables are in
common between the NC and the LADDER PLC.
It also has 250 programmable messages with which it is possible to
construct data entry or display pages or alarm display pages.
Page 14 M0000464
Programming Manual Introduction
Programming the NC
The Sipro S.r.l. tool contains a PLC and NC that work in multitasking.
Usually, the PLC handles all the logic that must be continually controlled during the operation of
the machine (emergencies, alarms, safety devices, manual movements, etc.).
The PLC works in a cyclical manner continually controlling and updating the variables involved
in the program.
It is programmable from a PC using software based on a contacts program conforming to
Communitarian standards.
A description of this program is found in manual M0000514, "PLC Software."
The NC, on the other hand, handles the automatic movements that the machine must make
during the work.
The NC controls all of the machine's sequential logic.
The NC's programs are divided into steps and each step contains one or more instructions.
In practice, starting from the first step, the NC executes one instruction at a time in sequence.
The Numerical Control is programmable both directly from the keyboard of the tool and from
the PC.
This manual describes both programming modes in detail; at any rate, except for those cases in
which you need to write very simple programs, we recommend that you program through the PC.
In fact, in this latter case, there is an integrated development package for numerical control
called SiaxED. This software, which has a graphic interface, includes all the tools to help
programmers program Numerical Controls from Sipro S.r.l.
In addition to programs for programming the NC and PLC, there are utilities available that allow
performing particular operations.
These utilities are described at the end of this manual.
M0000464 Pag. 15
Chapter 1 Programming directly from the keyboard Programming manual
Chapter 1
Programming directly
from the keyboard
The program editor on the numerical control allows entering
and displaying the work sequences that will be executed
during the operation of the machine.
Page 16 M0000464
Programming manual Chapter 1 Programming directly from the keyboard
Program Editor
The Program Editor is accessed by selecting Program Management from the Main Menu and
typing 4 (or by positioning on it using the [] and [] keys) and confirming with [ENTER].
Then select the Program Editor ([1] and [ENTER] keys).
PROGRAM MANAGEMENT
1 - Program Editor
2 - List Programs in memory
3 - Delete Program
Access to writing and deleting programs is enabled with Binary Variable 268 (VB access key)
set to 1 by the PLC: VB268 = 1.
To select a program, type the number of the desired program and press [ENTER].
It is possible to give programs a name. There are 23 characters available. Press [+/-], to select the
character then use [] to move to the next character. Press [ENTER] to confirm.
The next time you access the Editor, you will be offered the last program edited.
If it is a new program, step number 1 is automatically selected otherwise, if the program is
already present in memory, you must select the number of the desired step, confirming it with
[ENTER].
At this point, the cursor moves to the instruction space.
Instructions are entered by typing the corresponding code and confirming it with [ENTER] (for
the codes, see List of available instructions).
If you do not remember an instruction code, on-line help is available by pressing the [HELP]
key. A screen appears with all the instructions. The [] and [] keys are used to scroll within a
page and the [PAGE] key is used to scroll from page to page. Once you have identified the
instruction you are looking for, just position on it and press [ENTER]: the instruction will be
copied to the editor as if you had typed it. On the other hand, if you wish to exit from Help, just
press the [MENU] key.
Except in a few cases, the instruction parameters can be specified as constants or variables.
When setting a value, press the key sequence [SHIFT] + [VAR] and VQ0, VN0 or VB0 will
automatically appear depending on the type of instruction requested. Then you can set the
number of the desired variable.
After you have entered an instruction, pressing [ENTER] allows you to enter another one. If, on
the other hand, you want to enter it in another step, you must use [] and [].
Only one instruction is displayed: to see the other instructions in the step, you must use [] and
[]; on the other hand, to move between one step and the next within the program, you must use
[] and [].
To save the program, you must use the [MEMO] key or, if you wish to exit without saving, you
must use the [MENU] key.
M0000464 Page 17
Chapter 1 Programming directly from the keyboard Programming manual
Inserting instructions
If you wish to insert an instruction before the one displayed on the screen, you must use the key
combination [SHIFT] + [INS] and then type the code of the instruction desired.
Deleting instructions
It is possible to delete an instruction in a program by positioning on it with the cursor (using []
and []) and pressing [SHIFT] + [DEL].
Replacing instructions
To replace one instruction with another inside a step, position on it (using [] and []), press
[SHIFT] + [CODE] and type the code of the new instruction: this will replace the previous one.
Modifying instructions
To replace the value in an instruction, just type the new value after positioning the cursor on the
value itself. Remember to confirm it with [ENTER], otherwise the previous value remains.
Inserting a step
In the case of a new program, the next step is automatically inserted when you use [].
On the other hand, if you wish to insert a step between already existing steps, you must position
on the step number (with [MENU]) without however pressing [ENTER] and type [SHIFT] +
[INS]. You can then enter the desired instructions. The number of all subsequent steps will
automatically be increased by 1.
Deleting a step
To delete a step, position on the corresponding number (using [MENU]) and type [SHIFT] +
[DEL]: you will be asked to confirm and the step will be deleted if you press [ENTER] or the
request will be ignored if you press [MENU].
Page 18 M0000464
Programming manual Chapter 1 Programming directly from the keyboard
I/O descriptors
In the program editor phase (firmware version 4.08 and higher), it is possible to add a descriptor
to the I/Os so as to display the descriptor alongside the I/O number or to be able to select an I/O
by the descriptor as well as the number.
At present, this function is enabled ONLY for the REMOTE CONTROL.
The descriptors are stored in data (user) programs and, at present, the following types are
available:
in this way it is possible to assign a different name to the same I/O depending on whether its
status is activated or disabled (example: "pincer open" and "pincer closed").
NOTE if the bit corresponding to the OFF status is 0, the descriptor of the
ON status is taken, if present.
NOTE:
The names are stored in data (user) programs
since it is possible to assign different names for the same contact (or output) open with respect to
the one closed, 4 data programs are necessary:
digital inputs ON (contact closed) prg 9881
digital inputs OFF (contact open) prg 9882
digital outputs ON (output active) prg 9883
digital outputs OFF (output off) prg 9884
if you intend to use a single description for the ON and OFF statuses, create only the programs
relative to the ON status (programs 9881 and 9883) and then, VN385, write the value 1280 (256
[bit 8] + 1024 [bit 10])
M0000464 Page 19
Chapter 1 Programming directly from the keyboard Programming manual
Program example
Suppose that we wish to execute a process after moving two axes to a work position. Suppose
that we want to execute this loop 10 times.
NOTE The examples shown in this manual are written on a PC. When you use
the editor on the control (programming directly on the keyboard), there
can be slight differences such as, for example, for instruction G3.
In fact, when using the control editor, it presents the levels with the
following sequence:
G3XY xc yc xf yf
While, if you program on the PC (CSX format) it is:
G3 Xxf Yyf Ixc Jyc
(where xc and yc = coordinates of the centre, xf and yf = final point
coordinates).
Page 20 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Chapter 2
General programming
notes
Programs for Numerical Controls from Sipro S.r.l. consist of
a series of instructions that allow defining the work sequence
in a simple manner.
M0000464 Page 21
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Structure of an NC program
A program can be written directly on the control through the use of the keyboard, or by using the
PC development systems (such as the integrated development package, SiaxED).
If programming directly on the numerical control, follow the programming notes in Chapter 1.
In any case, we recommend programming with the PC development systems, which are simpler
and more intuitive.
In the event you are using the PC development systems, programs are written as text files with
the extension .SRC. Programs are written using the editor provided by the development system
or another editor at the programmer's option.
Each program is a text that must be written conforming to a syntax that can be interpreted by the
compiler provided with the Sipro S.r.l. development systems. .
In general, the structure of a program is as follows:
// *********************************************************************
// FILENAME: PRG0001.SRC
//
// DESCRIPTION: test
//
// NOTES: NAME: VER: DATE:
// ---------------------------------------------------------------------
// First Draft 1.0 27.05.99
// Latest Change
// *********************************************************************
#prog 0001
#name Test
:Start
:End
End
Page 22 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
The #include directive is usually used to insert the program definition file (file with a .h
extension).
The definition files are the files where you can give an alphanumeric name to the constants,
variables (binary, numeric and position), inputs and outputs that you intend to use in the
program.
For example, if you write #include defvar.h in a program, during the drafting of the program
you could refer to the names defined in the file defvar.h that are associated to the constants,
variables (binary, numeric and position), inputs and outputs used in the program.
Example:
//*****************************************************
// Axes definition
//*****************************************************
//***********************************************************
// Constants definition
//***********************************************************
#define START 1
#define STOP 2
#define JOG+ 3
#define JOG- 4
#define EMERGENCY 5
#define FCMaximum 6
#define FcMinimum 7
#define CheckOK 8
//***********************************************************
// Outputs definition
//***********************************************************
#define ENABLING 1
#define Pump 2
//***********************************************************
// Binary variables (VB)
//***********************************************************
M0000464 Page 23
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
So, by putting the line #include defvar.h in the program, it is possible to use the definitions
made in defvar.h in writing the instructions.
Example:
#prog 1000
#name PIPPO
#include "defvar.h"
: end
In this way, the programs become much easier to understand.
When a program written in this manner is compiled, an additional .tmp is created corresponding
to the .src program with the value substitutions in place of the names.
A program consists of a series of steps that form the sequence of the operations that you wish to
execute.
After the identification directives, the steps of the program are written.
When writing the sequence of steps inside the program, you must follow the rules of syntax.
Step syntax
:<label> instruc. : sets the beginning of a new step,
<label> is the label of the step (OPTIONAL)
instruc. the instruction must be written
as indicated in the list, and
leaving at least one space after the ":"
The number of steps that can be stored depends on the type and number of instructions used for
each step.
Each step can contain several instructions that are logically connected with each other.
The number of instructions contained in a step depends on the type: in the event that instructions
are entered for variables, there can be, at most, 8 instructions for each step.
On the other hand, in the event that you are using FULL STEP instructions (these are jump, loop,
conditional and end program instructions), they are entered alone in one step.
Page 24 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Putting several instructions in a step is useful in the event it is necessary to push instruction
execution and calculation times to the maximum.
However, it is generally recommended that you only put one instruction per step.
The numerical control provides a set of instructions that can be used in programming.
The list of instructions is found in the paragraph, Instruction list.
M0000464 Page 25
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Example of an NC program
// ************************************************************************
// FILENAME: Prg1000.src
// COMPANY: SIPRO S.r.l.
// viale dell'Industria, 7 - 37135 VERONA - tel. (045) 508822
// DESCRIPTION: Program example
// ************************************************************************
#prog 1000
#name Pippo
// ************************************************************************
// CODE
// ************************************************************************
: end
As can be seen from the example, there is also the possibility of identifying the steps with labels
and using them in jump (GOTO) instructions.
This allows inserting new instructions in the program without having to fix references to steps in
the instructions.
The program provides for the END instruction. This instruction defines the end of the program
and is obligatory.
For example, programming using a normal editor is useful because it is possible to see several
steps of the program (identified by ":" at the beginning of the line) in a single screen.
It is also possible to comment program lines by placing the characters "//" before the comment.
Compiling Program
When you have completed writing the program, you must compile the module into a user
executable (i.e., in machine language), and then transfer it to the NC.
For compiling and handling any errors, see the relative paragraphs of the PC development
system, (SiaxED), or using the following DOS command:
CSX {-g} {-ha} {-nologo} {<nomefile>}
Page 26 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Instruction priorities
If there are several instructions in a step, they are evaluated and executed by the program
according to a precise sequence, independently of the order in which they are written, and
following the priorities defined in the table below.
This table can be useful (in addition to the program writing phase) also for the Automatic
interpretation of what is effectively happening during execution, since it indicates the possible
statuses in which a system can find itself inside a step.
The status indication is visible in the automatic page above and to the right. (St n).
For example, if a step contains instructions that are waiting for inputs and an axis movement, the
instructions waiting for inputs will be evaluated first (priority 5) before the axis movement
instruction (priority 8).
In the case of instructions of the same type in the same step, these are executed simultaneously.
For example, this allows starting the movement of several axes at the same time.
In the case of several identical instructions in the same step, the value of the valid instruction is
the last written.
Example:
#prog 1000
#name Pippo
: AX 1 TO 500.00
AX 2 TO 30000
OUTON 1
AX 1 TO 100.00
In this case, axis 1 goes to position 100.00, since it is the last instruction of step1 indicated by a
single ":".
M0000464 Page 27
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Normally, steps are executed in their natural sequence (step 1, 2, 3 ...); this sequence can be
altered by specific instructions:
instructions with GOTO: allow a jump to another step within the program.
instructions with GOSUB: allow jumping to another program with a return to the main
program once execution is finished. The return occurs at the step after the one in which the
GOSUB was called.
instructions with JMPPRG: allow making a jump to another program without a return to the
main program once execution is finished.
In this way it is possible to define subroutines, i.e., to pass control during the execution of the
main program to another program or to another part of the same program.
This allows dividing the problem into many parts and executing each part with a program of
smaller size and, thus, more controllable and to give the main program the job of guiding the
various subroutines.
Using this programming technique makes programs more legible and easier to develop and test.
Another advantage is that it allows setting a cyclical sequence of operations that is directly
callable.
Example:
To execute 10 equidistant holes, one subroutine will be written that constitutes the drilling loop:
motor rotation ON;
axis Y descending at drilling speed;
return to initial axis Y position;
motor rotation OFF;
signaling through the execution of a timed output;
end of the subroutine.
The work program will consist of a positioning of the first hole in position X, the opening of a
loop (which will be repeated 10 times), of the recall of the subroutine that executes the drilling
and of an increment of the position equal to the desired spacing.
The problem is thus resolved with an extremely small number of instructions compared to what
one would have had to write specifying each individual position and rewriting the drilling loop
10 times.
Page 28 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Page 30 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
M0000464 Page 31
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Page 32 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
In the list of available instructions that will now be shown, the following conventions are used:
Notations
{xxx} indicates that the parameter xxx is optional (can be omitted)
NOTE The instructions for inputs or outputs (eg INPUT n, n OUTON etc..) Are
valid for 1 to 64 inputs and outputs 1 to 64.Se you want to use the inputs or
outputs from the NC program with index greater than 64 is necessary to use
special firmware
M0000464 Page 33
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Programming syntax
in PC Editor
Syntax for programming in NC
keyboard Editor
Page 34 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
M0000464 Page 35
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Page 36 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
M0000464 Page 37
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Page 38 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
M0000464 Page 39
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
NC DESCRIPTION ISTRUCTION
n <val | VN>
m <val | VQ>
Sets a voltage of m volts on analog output n. (from -10 volts to +10 volts).
Example:
#prog 1
#name Test
: VQ = 1.54
: AN OUT 1 = VQ
: END
NOTE In the case where the analog output whose value you wish to set is
associated to an axis, instruction 14 AN OUT n=m has no effect.
Page 40 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
t <val | VN>
q <val | VQ>
This instruction, combined in the same step with an axis movement instruction, allows going to
the next step when the specified axis is found at distance q from the objective position and, thus,
before the arrival of the axis in position.
n indicates the number of the axis whose movement is to be checked
t indicates the type of advance and can assume the following values:
value of t Meaning
0 execution passes to the next step when the axis is found
at distance q from the objective position
1 execution passes to the next step when the axis is found
at distance q from the position of departure
2 execution passes to the next step when the axis exceeds
the absolute position q
It is possible to program the advance for a maximum of 2 axes per step; if this number is
exceeded, the loop automatically interrupts with the error
If a STOP is given when the execution has already passed to the next step but the advance axis is
still in motion, at the next START (so long as the program has not been reset), the advance axis
is made to restart to reach the original objective position
NOTE If the advance is of the type "distance from the objective position" (type
0) and the value of advance is 0, the advance is not activated
Example:
: AX 1 TO 10000
ANT AX 1 TP 0 VAL 200
: AX 2 TO 2000
In the example shown, axis 1 starts from position 0 and reaches position 1000. The advance
instruction allows the program to pass to the next step when the axis reaches the position
800(1000-200). The result is that axis 2 starts when axis 1 is at the position 800, i.e., when it still
is finishing the (advance) motion.
N.B. Instruction available beginning with firmware version 4.35 and CSX compiler version
5.02.
M0000464 Page 41
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction ( 94 ) AX n INCR m
NC Keyboard E Instructions for the management of the parameters of CN
ditor Format 94 AX n INCR m
n <val | VN>
m <val | VQ>
Incremental movement of axis n, i.e., to the actual position of axis n it adds the value m.
Example:
In the example shown, axis 1 is initially brought to position 100 (step 1). After a wait of 2
seconds (step 2), axis 1 is brought to a position equal to the current position incremented by 50,
i.e., the position 150 (step 3).
During the execution of the NC program is necessary to set at least one time at the program start
the speed of the axis you want to move
Page 42 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Instruction ( 80 ) AX n TO m
N1C Keyboard Editor Format 80 AX n TO m
n <val | VN>
m <val | VQ>
Example:
#prog 9800
#name Test
: AX 1 TO 100
: TIME 2
: AX 1 TO 0
: END
During the execution of the NC program is necessary to set at least one time at the program start
the speed of the axis you want to move.
M0000464 Page 43
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
v <val | VQ>
m <val | VQ>
Brings the speed of axis n (as a % of maximum speed) to v when it reaches position m.
The instruction 85 AX n VEL v QUOTE m allows changing the speed of the axis in motion
when it has reached a determined position.
According to the VN413 value it is possible to configure the behavior of this instruction.
The possible configurations are:
Value Meaning
0 usual behavior: QuoAx = begin speed change position
1 if NewVel < CurVel => QuoAx = position of end speed change
2 if NewVel < CurVel => QuoAx = position of end speed change
3 QuoAx = begin speed change position
: VN413 = 0
Example 2: If the NewVel<ActVel (VN413=1) the new speed is already changed at the
specified position.
: VN413 = 1
: VEL AX 1 = 100 %
: AX 1 TO 1000 // axis 1 to position 1000
AX 1 VEL 50 QUOTE 50 //The speed change to 50% of the maximum ENDS
//when axis 1 reaches position 50
Example 3: If the NewVel>ActVel (VN413=1) the new speed is already changed at the
specified position.
: VN413 = 2
: VEL AX 1 = 50 %
: AX 1 TO 1000 // axis 1 to position 1000
AX 1 VEL 100 QUOTE 50 //The speed change from the actual 50 % to 100% ENDS
//when axis 1 reaches position 50
Example 4: In this case is not important if the NewVel is bigger or smaller than the ActualVel
(VN413=3), because in both cases the speed change ENDS at the position specified.
Page 44 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
: VN413 = 3
: VEL AX 1 = 100 %
: AX 1 TO 1000 // axis 1 to position 1000
AX 1 VEL 50 QUOTE 50 //The speed change to 50% of the maximum ENDS
//when axis 1 reaches position 50
Or:
: VEL AX 1 = 50 %
: AX 1 TO 1000 // axis 1 to position 1000
AX 1 VEL 100 QUOTE 50 //The speed change from the actual 50% to 100% ENDS
//when axis 1 reaches position 50
N. B. The change of speed of an axis does not occur instantaneously, but follows a ramp (of
deceleration, if the speed decreases, of acceleration if the speed increases).
M0000464 Page 45
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Figure 1
To perform this work, it is possible to use the instruction 38 CONT MOVE obtaining
continuous interpolated movements, while continuing to execute the program in step-by-step
mode.
In order to give this instruction, you must be in normal mode (waiting for axes in position) and to
obtain continuous movements it is necessary that, in the current step, there are no time wait
instructions and that, in the next step, there are no operations on variables (because they are
evaluated before the movement).
In fact, after having given this instruction, if the program encounters an interpolated movement
instruction it checks if there is another one at the next step.
In this case, it places it in the buffer and waits for the first movement to finish and then executes
the next step.
If you wish to associate an action to a certain movement, you must enter the relative instruction
in the step of that movement, without creating a new step. In fact, if there is another step between
the two movement steps, you will not achieve continuity.
Page 46 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
When you use the CONT MOVE instruction, the program becomes:
End of the program: returns to the beginning and waits for a new start. If it finds itself at the end
of a subroutine, it returns control to the program that called it.
This instruction is required at the end of every program.
M0000464 Page 47
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction (57) Fm
NC Keyboard Editor Format 57 F m
m <val | VQ>
Example:
Page 48 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
Allows executing several programs simultaneously in Automatic mode: the main and, at most, 2
secondaries.
The instruction:
: FORK PROG n
The KILL and FORK instructions can be executed by any program (even from a subroutine
called from the main program).
The FORK instruction fails if it tries to launch a non-existent program or one already executing,
or if it exceeds the maximum number of secondary programs allowed.
A failure of the FORK and KILL instructions generates the message "AUTOMATIC CYCLE
INTERRUPTED."
Let's look at an example:
5 20 350
10 35
In this case, the main program and 2 parallel programs (100 and 200) are running. Each program
can, in its turn, call one or more subroutines.
There are several limitations on the use of parallel programs.
The TIME instruction can be used within only one of the parallel programs.
N.B.: The instructions WAIT AX / NO WAIT AX and CONT MOVE / NO CONT MOVE are
global, i.e., at the moment in which a program or a subroutine gives these instructions,
they are valid for all executing programs.
M0000464 Page 49
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
m <val | VQ>
Example:
Instruction (61) G1 X xf Y yf
NC Keyboard Editor Format 61 G1XY xf, yf
xf <val | VQ>
yf <val | VQ>
Example:
N.B. See paragraph Linear and circular interpolation in the Programming Manual.
Page 50 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
i <val>
Enables the calculation of the angle of attack between two interpolated, non-tangential,
movements: n is the number of the program called (between two interpolations) and i is the
index of the Position Variable containing the angle.
In the case where I have two non-tangential movements (for example, see straight line figure A-
B and B-C) the control cannot perform a brusque continuous movement, otherwise there is a risk
of breaking the tool or executing work that is not perfect. So, in these cases, we decided to
introduce instruction 56 G103 P n Vqi. This instruction allows interrupting the movement of the
axes and recalling program n, in which the programmer can enter instructions for the correct
positioning of the tool. For the correct positioning of the tool, the program uses the information
provided by VQi, which contains the angle between the two non-tangential curves (for example,
in the figure the angle ) calculated by the NC.
The instruction is placed at the beginning of the work and every time that a case of non-
tangentiality occures, program n is invoked and the angle between the two curves is saved in
VQi.
Example:
The ISO program in the example performs cointinuous movements since it contains a G60
instruction. The instruction G103 P100 VQ0 is also present. This instruction enables control of
the angle of tangency between two contiguous movements. At the moment in which the angle
between the two continguous movements is greater than the value specified in the machine
parameter Tangency tolerance the NC performs the following operations:
Stops the continuous movement at the end of the section being executed.
Jumps to program 1000 in which NC instructions can be written for the correct
positioning of the tool.
The number that represents the angle of direction, in degrees, of the movement after
the stop is placed in VQ0
In the ISO file example shown above, program 1000 is called after the execution of the G3
instruction and, after it has been executed, the work continues with the next G1 instruction.
Page 52 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
C
D
A
The problem of stopping on the point doesn't exist in the passage from the rectilinear profile
(first G1 instruction) to the arc of circumference (G3 instruction) which is represented by point A
in the figure. In fact, in this case, the angle of tangency does not exceed the value of the machine
parameter Tangency tolerance. The same is also true for the points of tangency C and D.
N.B. ISO files must end with at least two empty lines.
N.B. The action of instruction G103 is cancelled by instruction G102.
#prog 1000
#name Program 1000
: TOOL ANGLE=VQ0
: END
M0000464 Page 53
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
#prog 1000
#name Program 1000
: AX 3 TO VQ0
: END
Page 54 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
xf <val | VQ>
yf <val | VQ>
n <val | VN>
nf <val | VQ>
It performs a linear interpolation with additional axis (n). xf and yf indicate the final positions
for axes 1 and 2, n indicates the number of the axis that one wishes to add in the interpolation
and nf indicates the final position for axis n.
The instruction 66 G1XYN xf, yf, n, nf allows performing interpolated movements in the space.
If, for example, we want to execute a rectilinear trajectory that reaches a certain height, we use
the X and Y axes for movement in the plane and, in addition, add a third axis, Z, that allows
moving in height. The following is an example of programming directly on the NC keyboard:
Example:
66 G1XYN 50, 70, 3, 60 //rectilinear interpolation with additional axis n. 3 and final
//position nf=60
Z
Y
O
If axis 3 corresponds to axis Z, the movement is that shown in the figure. P has coordinates
(50,70,60)
M0000464 Page 55
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction (62) G2 X xf Y yf I xc J yc
NC Keyboard Editor Format 62 G2XY xc, yc, xf, yf
xc <val | VQ>
yc <val | VQ>
xf <val | VQ>
yf <val | VQ>
Executes an arc of circumference in a clockwise direction. xc, yc are the coordinates of the
center of circumference; xf, yf are the coordinates of the final point.
Example:
N.B. See paragraph Linear and circular interpolation in the Programming Manual.
Page 56 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
r <val | VQ>
e <val | VN>
xf <val | VQ>
yf <val | VQ>
Executes an arc of circumference in a clockwise direction given the radius r, xf, yf are the
coordinates of the final point. e (1) uniquely defines the circumference.
Given 2 points and the radius, you can construct two arcs of circumference in a clockwise
direction. Making reference to the figure, the circumferences in a clockwise direction are those
of center c1 and center c2. The first, c1, has an angle greater than 180, the second, c2, has an
angle less than 180 . To specify which of the two semi-circumferences I wish to execute, I
use the parameter e. If I want to perform an arc of circumference with angle greater than 180, I
set the parameter e=+1; otherwise, if I want to make an arc of circumference with angle less than
180, I set the parameter e=-1.
The figure shows initial point I and final point F.
Example
: PASSO G2R 10 1 20 40 //executes the arc of circumference with final point X=20, Y=40
// and radius 10. The parameter e=-1 says the arc of
//circumference is that with angle less than 180 .(see figure)
.
N.B. Always place a label before the instruction (in the example, PASSO)
M0000464 Page 57
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
xc <val | VQ>
yc <val | VQ>
xf <val | VQ>
yf <val | VQ>
n <val | VN>
qf <val | VQ>
Executes a circular interpolation XY, clockwise, with an additional axis (n).
The instruction 67 G2XYN xc, yc, xf, yf, n, qf allows performing interpolated movements in the
space. If, for example, we wish to execute a helical trajectory that reaches a certain height, we
use the X and Y axes for the movement in the plane and then add a third axis, Z, that allows
movement in height. The following is an example of programming directly on the NC keyboard:
Example:
61 G1XY 13 15 //linear interpolation with final positions x=13 and y=15 point I
67 G2XYN 30 40 10 40 3 60 //interpolated curvilinear movement with curve center
//xc=30 yc=50 , final point xf=50 yf=70 and final axis position 3
//additional nf=60
Z
Center of coordinates
xc=30 yc=40
X
The final point P has coordinates (10,40,60), while the initial I (13,15,0)
If axis 3 correspsonds to axis Z, the movement is that in the figure
Page 58 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Instruction (63) G3 X xf Y yf i xc J yc
NC Keyboard Editor Format 63 G3XY xc, yc, xf, yf
xc <val | VQ>
yc <val | VQ>
xf <val | VQ>
yf <val | VQ>
Executes an arc of circumference counter-clockwise. xc, yc are the coordinates of the center of
circumference; xf, yf are the coordinates of the final point.
Example:
N.B. See paragraph Linear and circular interpolation in the Programming Manual.
M0000464 Page 59
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
r <val | VQ>
e <val | VN>
xf <val | VQ>
yf <val | VQ>
Executes an arc of circumference counter-clockwise given the radius r, xf, yf are the
coordinates of the final point. e (1) uniquely defines the circumference.
Given the 2 points and the radius, one can construct 2 arcs of circumference counter-clockwise.
Referring to the figure, the counter-clockwise circumferences are those with center c1 and center
c2. The first, c2, has an angle greater than 180, the second, c1, has an angle less than 180 .
To specify which of the two semi-circumferences I want to execute, I use the parameter e. If I
want to execute the arc of circumference with angle greater than 180, I use the parameter e=+1;
otherwise, if I want to execute the arc of circumference with angle less than 180, I use the
parameter e=-1.
The figure shows initial point I and final point F.
Example:
: G3R 10,-1,20,40 //executes the arc of circumference with final point X=20, Y=40
// and radius 10. The parameter e=-1 says the arc of
//circumference is that with angle less than 180 .(see figure)
.
Page 60 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
61 G1 X13 Y15 //linear interpolation with finale positions x=13 and y=15 point I
68 G3XYN 30, 40, 40, 20, 3, 60 //interpolated curvilinear movement with curve center
//xc=30 yc=50 , final point xf=50 yf=70 and final axis position 3
//additional nf=60
Y
I
Center of coordinates
xc=30 yc=40
The final point P has coordinates (40,20,60), while the initial I (13,15,0)
If axis 3 correspsonds to axis Z, the movement is that in the figure
M0000464 Page 61
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction for special applicatios, for use call Sipro technical office.
Disables tool correction, i.e., sets the work point equal to the center of the tool.
With the use of the interpolated instructiions, the work point of the tool must be the center of the
tool (C) or the point of working contact (D). This is to say that, as a reference for making the
movement calculations, the control takes the center of the tool, or the external working point,
that takes into account the dimnensions of the tool. The control uses this information to perform
the correct positioning of the tool during the working phase.
C D
Positioning
axes with
respect to
Positioning axes outside point
with respect to the center
Figure 1
The tool must be positioned so as to perform the work. To instruct the control, we must specify
the position in which the tool is located with respect to the trajectory to execute and if the
Page 62 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
movement must be performed with respect to the center of the tool or with respect to the working
point (thus taking into account the dimensions of the tool).
In the case in which we want to specify to the control that the point of reference for performing
the movements must take the dimensions into account, we use the instructions 41 G41 or 42
G42. In this case, the movement of the tool will refer to the working point (D).
For example, if the work programming is as follows:
: AX 1 TO 1150
: AX 2 TO 900
: FXY 10 // Set working speed: 10 mm/sec
: TOOL 2 // Use tool no. 2
: TOOL ANGLE = 90 // Tool angle = 90 degrees
: G41 // Tool to the left of the path
: G1 X 1150 Y 1200 //Brings tool to point A
we see that, after instruction 41 G41, the positioning of the tool is performed with instruction 61
G1, keeping in mind that the reference point is that of the working point that takes into account
the dimensions of the tool. The effect of these instructions is that of bringing the tool to the
position in Figure 1.
If, in the place of the last two instructions, we had put:
M0000464 Page 63
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction for special applicatios, for use call Sipro technical office.
Sets the position of the tool to the left with respect to the direction of advancement.
The instruction 41 G41 serves to communicate to the control in what position the tool is found
with respect to the trajectory and the direction of advancement of the tool.
and the direction of advancement is that towards the left (as specified by the arrow) the
instructioins to perform the work would be the following
: AX 1 TO 1150
: AX 2 TO 900
: FXY 10 // Set working speed: 10 mm/sec
: TOOL 2 // Use tool no. 2
: TOOL ANGLE = 90 // Tool angle = 90 degrees
: G41 // Tool to the left of the path
: G1 X 1150 Y 1200 //Brings tool to point A
: NO WAIT AX //Disables waiting for axes in position
: G1 X 450 Y 1200 //Brings the tool to point B
: G3 X 150 Y 900 I 450 J 900
: G1 X 150 Y 500.000
: G3 X 450 Y 200 I 450 J 500
Page 64 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
: G1 X 1150 Y 200
: G3 X 1450 Y 500 I 1150 J 500
: G1 X 1450 Y 900
: G3 X 1150 Y 1200 I 1150 J 900
: WAIT AX //Enables waiting for axes in position
: WAIT AX 1 IN QUOTE //Wait for completion of the work
: WAIT AX 2 IN QUOTE
: G1 X 1150 Y 1100 //Distance the tool
: AX 1 TO 0.000 //Brings the axes to 0
AX 2 TO 0.000
As you will see, at step 6 I specify the position of the left tool with respect to the direction and
trajectory of work.
M0000464 Page 65
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction for special applicatios, for use call Sipro technical office.
Sets the position of the tool to the right with respect to the direction of advancement.
The operation of instruction 42 G42 is like instruction 41 G41. In this case, we specify that the
tool is found to the right with respect to the direction and trajectory of the work.
If, for example, we must perform the following work (equal to the example for instruction 41
G41):
: AX 1 TO 1150
: AX 2 TO 900
: FXY 10 // Set working speed: 10 mm/sec
: TOOL 2 // Use tool no. 2
: TOOL ANGLE = 90 // Tool angle = 90 degrees
: G42 //Tool the right of the path
: G1 X 1150 Y 1200 //Brings tool to point A
In this way, with instruction 42 G42, I specify that the tool is found to the right with respect to
the direction and trajectory of the work.
Page 66 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Instruction for special applicatios, for use call Sipro technical office.
Example:
: G1 X50 Y70 //rectilinear interpolatioin with final position X=50 and Y=70
(beginning
//of work)
: G43 //tool outside the circumference
: G2 X 50 Y 70 I 70 J 80 //executes a circular movement, clockwise
//with center I=70 J=80 and final point X=50 Y=70
Piece to create
Tool center
Tool
As you can see from the figure, the tool is located on the outside of the circumference.
M0000464 Page 67
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Instruction for special applicatios, for use call Sipro technical office.
Example:
Piece to create
Tool center
Tool
As you can see from the figure, the tool is located on the outside of the circumference.
Page 68 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Instruction for special applicatios, for use call Sipro technical office.
In the applications with third axis of interpolation, the angle of orientation is parallel to the
direction of advancement.
The position of the tool, in the plane, is defined, in addition to the positions X and Y relative to
the system of reference, also by the angle that it forms with respect to the absolute reference
system as shown in the figure.
90
180 0 X
-90
To communicate the angular position to the tool, we must refer to the imaginary segment that
approximates the real shape of the tool. Once the segment is defined, its orientation is fixed by
the angle that it forms with the X axis of the system of reference (see figure).
In some interpolations, the tool must always remain tangential to the trajectory. For example, if
we have a blade that makes a cut following a shape, as in the figure,
Piece to cut
Direction of
advancement
Blade
before the axis interpolation, I insert instruction 45 G45. This latter position the tool always
tangential to the direction of advancement.
M0000464 Page 69
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
Example:
#prog 9800
#name Test
: TIME 1
: GOSUB 1
: TIME 2
: END
#prog 1
#name Zero
The example consists of two programs: the main program 9800 and program 1.
Suppose we execute main program 9800. The first thing executed is step 1, which will wait for 1
second. After that, with step 2, we go to step of program 1. This step is then executed, which will
bring the X axis to the origin position.
Once also step 2 is executed (Y axis to the origin) with the next step (END), the control will
return to program 9800, which will execute step 3, which waits for 2 seconds.
Page 70 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Example:
#prog 9800
#name Test
: EDIT M1
: EDIT M2
: GOTO 5
: EDIT M4
: TIME 5
: END
The example shown above executes, in order, steps 1 and 2, after which, executing step 3, it goes
to step 5, which will wait for 5 seconds. The program will end with the execution of step 6.
Step 4 will not be executed since the GOTO instruction goes from step 3 to step 5, in fact
jumping over the EDIT M4 instruction.
Any additional step between steps 3 and 5 will lead to the automatic modification of the GOTO
instruction index if made through the editor of the device, otherwise you need to keep track of
this during the phase of writing on paper.
N.B. When programming with a PC, VAlN could be a label associated to a step.
Example:
#prog 9800
#name Test
: EDIT M1
: EDIT M2
: GOTO Message5
: EDIT M4
:Message5 TIME 5
: END
The example has an effect equal to the preceding except that in this case, the GOTO is associated
to a label. The programm turns out to be more flexible.
M0000464 Page 71
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
m <val | VN>
Example:
prog 9800
#name Main
: AX 1 TO 100
: IF AX 1 GOSUB Work //if axis 1 is in position (100) it executes the
//program Work
prog 0001
#name Work
: AX 2 TO 450
In the main program (9800) axis 1 is moved to position 100. When axis 1 has arrived in position,
the numerical control executes the next step. Here it tests if axis 1 is in position with instruction
142 IF AX n GOSUB m and if the condition is true, the control passes to execute the program
Work (0001). At the end of the execution of the program Work, the control returns to executing
main program 9800 at the next step, which is the one containing instruction 142 IF AX n
GOSUB.
Page 72 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
m <val | VN>
Example:
#prog 9800
#name Main
: AX 1 TO 100
: IF AX 1 GOTO Work //if axis 1 is in position (100) it executes the
//step work
:Work AX 2 TO 400
In the main program (9800) axis 1 is moved to position 100. When axis 1 has arrived in position,
the numerical control executes the next step. Here, it tests if axis 1 is in position with instruction
146 IF AX n GOTO m and if the condition is true, the control passes to execute the step with
label Work.
M0000464 Page 73
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
m <val | VN>
Example:
Suppose we have a main program (prog. 9800) with the following instructions:
prog 9800
#name Main
.
:LOOP
IF IN Input1 GOSUB Work1
: IF IN Input2 GOSUB Work2
: GOTO LOOP
and we have two working programs, Work1 (prog 0001) and Work2 (prog 0002):
prog 0001
#name Work1
.
: AX 1 TO 100
prog 0002
#name Work2
.
: AX 2 TO 200
Upon the execution of program 9800, control remains inside the LOOP cycle until one of the two
inputs associated with the labels Input1 and Input2 that are defined in the .h definition file (e.g.,
Defvar.h) goes to ON (logic level high).
e.g., we have a Defvar.h with the following definitions:
#define Input1 1
#define Input2 2
If input 1 goes ON, the control passes to the execuion of the program Work1 (prog 0001). At the
end of execution, the numerical control returns to the main program (prog 9800).
On the other hand, if digital input 2 goes ON, the control passes to the execution of program
Work2 (prog 0002). At the end of execution, the numerical control returns to the main program
(prog 9800).
Page 74 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
m <val | VN>
prog 9800
#name Main
.
: LOOP
IF IN Input1 JMPPRG Work1
: IF IN Input2 JMPPRG Work2
: GOTO LOOP
when input 1 goes ON, the numerical control goes to execute program Work1 (0001). When
program Work1 is finished (instruction 34 END), the numerical control does not return to main
program (9800).
M0000464 Page 75
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
m <val | VN>
Example:
prog 9800
#name Main
.
:LOOP
IF IN Input1 GOTO Air
: IF IN Input2 GOTO Water
: GOTO LOOP
:Air
: GOTO LOOP
:Water
: GOTO LOOP
Main program (9800) performs the LOOP cycle until one of the two inputs, Input1 or Input2
goes ON.
The inputs associated to Input1 and Input2 are defined in the definition file .h which, for
example, can have the following definitions:
#define Input1 1
#define Input2 2
If digital input 1 of the control goes ON (Input1), the control passes to the execution of the part
of the program at the step that contains the label Air. If, on the other hand, digital input 2 of the
control goes ON (Input2) the control passes to the execution of the part of the program at the
step that contains the label Water.
Page 76 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
x <val | VB>
m <val>
If the value of the binary variable i is equal to x (which can only assume values equal to 0 or 1)
it jumps to step m.
It is a conditional jump instruction associated to the value of VBi.
Example:
Suppose we have a main program with the following instructions:
The main program executes the Loop cycle until VB2 is equal to 0. When VB2 becomes equal to
1 the control passes to the execution of the step Work ending the Loop cycle. VB2 can be set
from a PLC program.
M0000464 Page 77
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
i <val>
m <val>
n <val | VN>
If the value of Numeric Variable i is less than numeric value n, the control passes to subroutine
m.
It is a conditional jump instruction associated to the value of VNi.
Example:
Suppose we have a main program with the following instructions:
: VN2 = 30
:Loop IF VN2 < 10 GOSUB Work
: AX 2 TO Quota 2
: Quota 2 = Quota 2 + Quota 1
: VN2 = VN2 - 1
: GOTO Loop
prog 0002
#name Work
The main program executes the Loop cycle until VN2 is greater than 10. When VN2 becomes
less than 10, the control passes to the execution of the program Work (Prog 0002). When the
execution of program Work is finished, the control passes again to main program 9800.
Page 78 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
m <val>
n <val | VN>
If the value of Numeric Variable i is equal to numeric value n, the control passes to subroutine
m.
Like instruction 230 IF VNi < ValN GOSUB n except that the jump to subroutine n occurs
when VNi is equal to a precise value specified by ValN.
i <val>
m <val>
n <val | VN>
If the value of Numeric Variable i is greater than numeric value n, the control passes to
subroutine m.
Like instruction 230 IF VNi < ValN GOSUB n except that the jump to subroutine n occurs
when VNi is greater than a precise value specified by ValN.
M0000464 Page 79
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
i <val>
m <val>
n <val | VN>
If the value of Numeric Variable i is less than numeric value n, it jumps to step m.
It is a conditional jump instruction associated to the value of VNi.
Example:
Suppose we have a main program with the following instructions:
: VN2 = 20
:Loop IF VN2 < 10 GOTO Work
: AX 2 TO Quota 2
: Quota 2 = Quota 2 + Quota 1
: VN2 = VN2 - 1
: GOTO Loop
:Work
The main program executes the Loop cycle until VN2 is greater than 10. When VN2 becomes
less than 10, the control passes to the execution of the step Work, ending the Loop cycle.
Page 80 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
m <val>
n <val | VN>
i <val>
m <val>
n <val | VN>
If the value of Numeric Variable i is greater than numeric value n, it jumps to step m.
Like instruction 233 IF VNi < m GOTO n, except that the jump to step n occurs when VNi is
greater than a precise value specified by m.
M0000464 Page 81
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
i <val>
m <val | VQ>
n <val | VN>
If the value of Position Variable i is less than position value m, the control passes to subroutine
n.
It is a conditional jump instruction associated to the value of Vqi.
Example:
Suppose we have a main program with the following instructions:
: VQ2 = 20
:Loop IF VQ2 < 10 GOSUB Work
: AX 2 TO Quota 2
: Quota 2 = Quota 2 + Quota 1
: VQ2 = VQ2 - 1
: GOTO Loop
prog 0002
#name Work
The main program executes the Loop cycle until VQ2 is greater than 10. When VQ2 becomes
less than 10, the control passes to the execution of program Work (prog 0002). When the
execution of program Work is finished, the control passes again to main program 9800.
Page 82 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
m <val | VQ>
n <val | VN>
If the value of Position Variable i is equal to position value m, the control passes to subroutine
n.
Like instruction 210 IF VQi < ValQ GOSUB n except that the jump to subroutine n occurs
when VQi is equal to a precise value specified by ValQ.
i <val>
m <val | VQ>
n <val | VN>
If the value of Position Variable i is greater than position value m, the control passes to
subroutine n.
Like instruction 210 IF VQi < ValQ GOSUB n except that the jump to subroutine n occurs
when VQi is greater than a precise value specified by ValQ.
M0000464 Page 83
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
i <val>
m <val | VQ>
n <val | VN>
If the value of Position Variable i is less than position value m, it jumps to step n.
It is a conditional jump instruction associated to the value of VQi.
Example:
Suppose we have a main program with the following instructions:
: VQ2 = 20
:Loop IF VQ2 < 10 GOTO Work
: AX 2 TO Quota 2
: Quota 2 = Quota 2 + Quota 1
: VQ2 = VQ2 - 1
: GOTO Loop
:Work
The main program executes the Loop cycle until VQ2 is greater than 10. When VQ2 becomes
less than 10, the control passes to the execution of step Work, ending the Loop cycle.
Page 84 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
m <val | VQ>
n <val | VN>
i <val>
m <val | VQ>
n <val | VN>
If the value of Position Variable i is greater than position value m, it jumps to step n.
Like instruction 213 IF VQi < m GOTO n, except that the jump to step n occurs when VQi is
greater than a precise value specified by m.
M0000464 Page 85
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
m <val | VN>
n <val | VN>
i <val | VQ>
Allows increasing the value of the origin, keeping track of the angle of the origin.
To modify the origin of an axis, you can use instruction 49 INCR ORG m AX n VAL i.
Example:
N.B. For further explanations, see paragraph Origins in the programming manual and
instruction 55 ORG n
Page 86 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
Conditions the execution of the step in the presence of the input with number n. That is, it waits
for input n to be set before proceding to the next step.
Example:
#prog 1000
#name Name
#include "Defvar.h"
: Start
: AX Axis1 TO PieceEnd
: INPUT InEnable
: AX Axis1 TO PieceBeginning
:END
End
In the example shown, Axis1 goes to position PieceEnd (defined in definition file Defvar.h).
Then it executes instruction INPUT InEnable. The control waits for digital input n, where n is
defined by InEnable, is set to logical value 1. In our case, n = the value specified in VN1; i.e., if
VN1 is 4, the control waits for input 4 to be set to logical value 1, then it passes to the next
instruction, which in the example, sets axis 1 to position PieceBeginning (see file
Defvar.h).
File Defvar.h
//VN Definition
#define InEnable VN1
Other defintions
#define Axis1 1
#define PieceEnd 100
#define PieceBeginning 0
M0000464 Page 87
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
Example:
Page 88 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
m <val | VN>
p <val | VB>
Sets interpolation parameter p (it can only assume the values 0 and 1) for axis m. This parameter
indicates whether axis m makes a contribution (with p = 1) or not (with p = 0) to the calculation
of the speed of interpolation. With parameter n,we can modify the table that places the axis in
relation with the relative parameter. Parameter n indicates the line on which it is going to act.
The standard table provides axis 1 at line 1, axis 2 at line 2 and so on, with parameter p set to 1
(all axes contributing to the calculation of the interpolation speed). It is used to perform special
interpolations between axis 1 and axis 4.
Example:
Suppose we have a 4-axis system and set instruction 37:
: INTP MODE = 3
The interpolation will be performed on 3 axes and, thus, only the first three lines of the table will
be meaningful.
If we set instruction 31:
: INTP PAR 2 AX 4 P 0
AX P becomes AX P
1 1 1 1
2 1 4 0
3 1 3 1
4 1 4 1
5 1 5 1
i.e., we act on the seocnd line, setting axis 4 as belonging to the interpolation group and
parameter p to 0.
To understand how an axis contributes to the speed calculation, let's consider the following
example in which we assume we have 3 interpolated axes (X, Y, Z).
: F 200
: AX1 TO 0
: AX2 TO 0
: AX3 TO 0
: INTP PAR 3 AX 3 P 0 //axis Z does not contribute to the interpolation speed
: LINE 100, 100, 1000
M0000464 Page 89
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Since only the X and Y axes contribute to the calculation of the speed, it will be considered to
have to cross a space equal to (1002+1002) = 141.42 mm and since the speed set is equal to 200
mm/min, the motion will be accomplished in 141.42 / 200 = 0.7071 minutes. In this time, axis Z
will cross the space set (1000).
If, on the other hand, axis Z contributes to the interpolation speed, the space to cross will be
100 2 + 100 2 + 1000 2 = 1009.95 mm and, as a consequence, the movement would be executed
in a time equal to 1009.95/200 = 5.0498 minutes.
Page 90 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
n <val | VN>
It performs a jump to program n (without return). Execution will begin from the first instruction
Example:
#prog 9800
#name Test
: TIME 1
: JMPPRG 1
: TIME 2
:END
#prog 1
#name Zero
The example consists of two programs: the main program 9800 and program 1.
Suppose we execute main program 9800. First, step 1 will be executed, which waits 1 second,
then, with step 2, it will jump to step 1 of program 1. Step 1 will then be executed which will
bring the X axis to the origin position.
Once step 2 is also executed (axis Y to the origin), with the next step (END), program 1 will end
as well as program 9800. Step 3 of program 9800 is never executed.
Unlike the GOSUB instructioin, the control does not return to the original program.
5
Instruction (121) KILL PROG n
NC Keyboard Editor Format 121 KILL PROG n
n <val | VN>
M0000464 Page 91
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
n <val | VN>
m <val | VQ>
n <val | VN>
m <val | VQ>
Brings axis n1 to position m1 and axis n2 to position m2, i.e., it executes a linear interpolation.
The speed of the axis that must travel the longest section is assumed as the interpolation
movement speed.
Example:
#prog 9800
#name Test
The example shows a series of movements of axis 1. In step 7, a linear interpolation is executed
using instruction 84 LINE n1 m1 n2 m2. Axis 1 is brought to position 200, while axis 2 is
brought to position 300.
Page 92 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
q1 <val | VQ>
q2 <val | VQ>
Example:
: LINE2 100 200 //linear interpolation with final position X=100 Y=200
q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q4 <val | VQ>
M0000464 Page 93
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q4 <val | VQ>
q5 <val | VQ>
q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q4 <val | VQ>
q5 <val | VQ>
q6 <val | VQ>
Executes a 6-axis interpolatioin in positions q1, q2, q3, q4, q5 and q6.
Like instruction 50 LINE2 q1 q2 except that it takes 6 axes into consideration.
Page 94 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
i <val>
From the step after the instruction on, the number of the current step is automatically stored in
the Numerical Variable of index i.
From the step after the instruction on, the number of the current step is automatically stored in
the Numerical Variable of index i.
This instruction turns out to be particularly useful for restarting in the case of a power failure. In
fact, with this instruction, it is possible to store which step the program is executing at the time
of the power failure.
Let's consider the following example: suppose we set VB45 to 1 when we want to execute the
automatic cycle starting from the beginning of the program:
Example:
: MEM STEP VN210 //I set the current step (step 1) in VN210
SET VN50 = VN210 //I assign to VN50 the step previously
//stored
: IF VB45 = 0 GOTO VN50 //I jump to the step stored in VN50 (step 1)
//in fact, VN210 contains the value 2 (we are,
//in fact, at step 2).
M0000464 Page 95
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
xf <val | VQ>
yf <val | VQ>
tf <val | VQ>
Executes a linear interpolation with tool. xf, yf are the coordinates of the final point, tf is the
final position of the tool.
In addition to positions X and Y relative to the system of reference, the position of the tool in the
plane is also defined by the angle that it forms with the X axis of the absolute system of
reference as shown in the figure
90
180 0 X
-90
To position the tool with the correct angular position tf, you must refer to the imaginary segment
that approximates the real shape of the tool. Once the segment and its orientation are defined, the
angle that it forms with the X axis of the system of reference (see figure) deforms the angular
coordinate of the tool.
Given the initial position from which the tool starts, and thus, the X axis position, Y axis position
and the angle that the tool forms with the X axis, the instruction 70 MOVEXYT xf, yf, tf permits
the tool to reach a final position with axis X position equal to xf, axis Y position equal to yf and
orientation angle equal to tf.
Page 96 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
Initial point I (xi=20 yi=15 ti=0) with coordinates representative of the tools center of gravity.
Final point F (xf=65 yi=35 ti=45) with coordinates representative of the tools center of gravity.
For example, if the tool is approximated from the segment (arrow) in the figure, it moves from
an initial position I (in which it is found before instruction 70) to a final position F with the
following instruction:
: MOVEXYT 65, 35, 45 //final position with xf=65 yf=35 tf=45. Coordinates with
respect
//to the absolute X-Y reference system
M0000464 Page 97
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
Disables wait for axis in position; the execution of the program continues without waiting for the
axes in motion to arrive in position. If you try to execute a movement instruction relative to an
axis that is already in motion, the program will stop with an error.
It is valid from the program step in which it is found on. I.e., it has no "retroactive" effect: for the
movement of axes moved in previous steps, the method relative to the moment of their activation
will be valid (until reaching their position).
In the program's normal operating mode, after an axis movement instruction (such as 80 AX n
TO m), program 9800 waits for the axis to arrive in position before executing the subsequent
instructions.
Step 3 is executed only after axis 1 has arrived in position 100 mm.
Nevertheless, there are cases in which it becomes necessary to change this mode, such as when
you must use counters to trigger actions that cannot wait for the completion of movements or
when you want to obtain continuous movements in working or, in some way, synchronize the
movements of the various axes (see Example 2).
To disengage from the Waiting for Axes in position mode, there is instruction 35 (NO WAIT
AX). This instruction allows pursuing the execution of the program without waiting for the axes
in motion to arrive in position. However, if you attempt, in this mode, to execute a movement
instruction relative to an axis that is already in motion, the program will stop with an error. The
programmer must, therefore, be careful to verify that an axis has arrived in position before
imparting another movement instruction relative to the same axis.
To this end, there are several instructions available:
To restore Waiting for Axes in position mode, there is instruction 36 WAIT AX.
Page 98 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili
In addition, there is also an instruction that changes the program method in local mode:
With this instruction, it is possible to activate the No Wait Ax mode, which will only be valid for
the current step and relative to axis n, which must be moved in the same step.
Example:
Now, let's take a look at a simple little program that attempts to clarify the problems just
explained.
: NO WAIT AX
: AX 1 TO 1000.000
:Wait VQ10 = POS AX 1
//We want axis 1 to reach
: IF VQ10 < 300.000 GOTO Wait //position 300 before
//starting axis 2
: AX 2 TO 700.000
: WAIT AX 1 IN QUOTE
: AX 1 TO 800
: END
After having disabled Wait for Axis in position, the program drives axis 1 to position 1000 mm
and assigns the position of the first axis to Position Variable VQ10.
In steps 3 and 4, the program waits for axis 1 to reach the position of 300 mm, before starting
axis 2 to the position of 700 mm (at step 5).
Having disabled the Wait Axis, you can thus realize a synchronism between the movements of
the axes that would otherwise not be feasible. In fact, if step 1 did not exist, the program would
stop at step 2 and would evaluate the third step only after the first axis reached position 1000.
Before once again driving axis 1 (to position 800 mm) with step 7, the program blocks execution
waiting for axis 1 to finish its movement through the instruction WAIT AX 1 IN QUOTE.
It is important to note that if this instruction were not present, the program would be wrong since
it would have to move axis 1 when it could still moving, without having reached the position set.
M0000464 Page 99
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
: WAIT AX
Example:
Let's look at another example of synchronizing axes movements possible with the use of
WAIT/NO WAIT AX.
In this example, it is assumed that axis 1 is found in position 80 and must be moved to position
100; axis 3 is in position 70; when axis 1 reaches the middle of travel (90), axis 3 must be in
position 60 to avoid the obstacle. The speed of axis 3 must be calculated so as to cross the
section from position 70 to position 60 in the time it takes for axis 1 to complete half the path
(from position 80 to position 90). For safety, axis 3 doesn't begin to move to the initial position
before axis 1 has reached half the path (position 90).
n <val | VN>
Y
Y
BEGIN X
WORK
(X =70 Y=80) ORIGIN ABSOLUTE SYSTEM OF REFERENCE
(X=0, Y=0)
We want to cut a slab of marble of rectangular shape, whose length (X axis) and height (Y axis)
are known. Suppose we have height = 70 and length =140 and that the work begins in positions
X =70 and Y = 80, with respect to the absolute system of reference. Initially, the absolute
system of reference has its origin at (0,0) which corresponds to the zero axis positions calculated
with the calibration of the machine. For programming convenience, the origin of reference can
be brought to the begin work point by setting a new origin with identification number 2 and
assigning the positions X =70 Y = 80. In this way, the program will make reference, as zero
axes, to the new origin specified. Working the square shown above will use the following
instructions.
Example:
.
: ORG 0 //system of reference with absolute axes origin (0.0)
: G1 X70 Y80 //positioning tool at the begin work point (70,80)
: ORG 1 //system of reference with axes origin at (70, 80), from this moment on
//all the axis movement positions will refer to this origin //as zero
: G1 X140 Y0 //work equal to the rectangular length X=140 lower side
: G1 X140 Y70 //work equal to the rectangular height Y=70 right side
M0000464 Page 101
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
By creating the list using the numerical control keyboard (item Origins on the Main
Menu of the NC)
Self-learning
Using the instructions provided (58 and 59) inside the program.
N.B. For further explanations, see paragraph Origins in the programming manual
n <val | VN>
Example:
#prog 1
#name Test
: AX 1 TO 100
: OUTON 4
: TIME 2
: OUTOFF 4
: AX 1 TO 0
: END
Output 4 (OUTON instruction) is set and reset after a wait of 2 seconds (OUTOFF)
n <val | VN>
n <val | VN>
Example:
#prog 1
#name Test
: VN = 0
: IF IN 1 GOTO 4
: GOTO 2
: VN = VN + 1
: IF VN > 10 GOTO 7
: GOTO 2
: PULSE 2
: END
The above example realizes the count of the ONs that arrive at input 1. When this count reaches
10, output nr1 is set to ON for an interval equal to 200 msec (a pulse is set on output).
n <val | VN>
m <val | VQ >
Like instruction 86 (SET POS AX n = m), but cancels the instantaneous error.
Example:
: AX 1 TO 100
: QUOTE AX 1 = 30
The program, which features the two specified instructions inside it, performs a change of
position of axis 1. Before instruction 93 QUOTE AX n = m, the axis is found in position 100.
The execution of instruction 93 QUOTE AX n = m has the effect of forcing the position of axis 1
to 30. I.e., the position at which axis 1 is found is no longer 100, but 30. In practice, only the
reference of the axis is changed; the latter undergoes no physical movement.
Unlike instruction 86 SET POS AX n = m, instruction 93 QUOTE AX n = m cancels the
instantaneous error relative to the preceding position. I.e., with reference to the previous
example, if I had a positioning error of 0.0001 in position 100, this error is cancelled also in
position of reference 30.
n <val | VN>
i <val | VQ>
Logically, I should have first set origin 2 with the values 60 axis1(X) and 40 axis2(Y)
The system of reference is modified as in the figure
Y
Y
= 30
= 30
O
X
The new system of reference has origin at P (X=60,Y= 40) (X=0,Y=0) with respect to absolute
origin O. Moreover, the new system of reference is rotated by an angle = 30 with respect to
the axes of the absolute system of reference O.
m <val | VN>
n <val | VN>
i <val | VQ>
Example:
N.B. For further explanations, see paragraph Origins in the programming manual and
instruction 55 ORG n
n <val | VN>
m <val | VQ>
Forces the position of axis n to position m, ie., it assumes as m the position at which axis n is
found in that moment and no movement is effected. As consequence, the zero of reference of
axis n is changed. The instantaneous error is maintained.
Example:
: AX 1 TO 100
: SET POS AX 1 = 0
The program, which features the two specified instructions inside it, performs a change of
position of axis 1. Before instruction 86 SET POS AX n = m, the axis is located in position 100.
The execution of instruction 86 SET POS AX n = m has the effect of forcing the position of axis
1 to 0. I.e., the position at which axis 1 is found is no longer 100, but 0. In practice, only the
reference of the axis is changed; the latter undergoes no physical movement.
Unlike instruction 93 QUOTE AX n = m, instruction 86 SET POS AX n = m does not cancel the
instantaneous error relative to the preceding position. I.e., with reference to the preceding
example, if I have a positioning error of 0.0001 in position 100, this error is maintained even in
position of reference 0.
n <val | VN>
Continues without axis n being in position. It has a local character, i.e., it is only valid within the
current step.
In the axis movement instructions, the control waits for the axis to arrive in position before going
to the next instruction, i.e., it waits for the movement relative to the instruction in progress to
finish.
For example, if the program has this instructions in it:
: AX 1 TO 100
: OUTON 2
: AX 2 TO 30
the instruction setting output 2 (OUTON ) and the instruction AX 2 TO 30 are only executed
after the axis has reached position 100, i.e., only after the instruction 80 AX 1 TO 100 has been
executed by the control.
Instruction 87 SKIP WAIT AX n allows executing the instruction following the current one
without waiting for its completion. For example, if, before the instructions shown above, we
have:
: SKIP WAIT AX 1
AX 1 TO 100
: OUTON 2
: AX 2 TO 30
Unlike before, the instruction 87 SKIP WAIT AX 1, has been added in the step that has the
instruction moving axis 1. The effect of this insertion is to execute the instruction OUTON 2 and
the instruction AX 2 TO 30 belonging to the subsequent steps without waiting for the axis 1
movement instruction, with the instruction 80 AX 1 TO 100, to be completed.
It should be emphasized that the effect has a local character, unlike the instruction 35 NO WAIT
AX. I.e., instruction 87 SKIP WAIT AX only has effect inside the step in which it is inserted.
N.B. For further explanations, see instruction 35 NO WAIT AX and relative examples.
n <val | VN>
Stops axis n with a ramp, i.e., the axis is not immediately blocked but decelerates. When the axis
is stopped, it is assumed in position.
Example:
#prog 9800
#name Test
Instruction 83 STOP AX n at step 5 interrupts the movement of axis1, which is being brought to
position 0.
m <val | VQ>
Example:
#prog 1
#name Test
: AX 1 TO 100
: TIME 2
: AX 1 TO 0
: END
The example shows a possible use of the TIME instruction. At the initial step, axis1 goes to
position 100. It then waits 2 seconds (instruction TIME 2) and finally executes the last step and
the axis goes to position 0.
Instruction for special applicatios, for use call Sipro technical office.
m <val | VQ>
In linear interpolation, set the tool angle (calculated with respect to the system of reference) to
identify its working point. The angle is expressed in degrees.
In linear interpolation, it is necessary to specify the angle of the tool to identify its working point
(instruction 75). In circular interpolation, the angle is calculated and updated automatically to
allow the tool to remain tangential to the curve.
The angle is calculated with respect to the system of reference (see figure 2).
Starting from the edge or center of the tool, it considers the ideal vector that go towards the
working point: for the angle, it takes the one that forms this vector, oriented in the system of
reference.
For example, the first tool in the figure forms an angle of 0 and the secondo of -90.
Y
90
180 0 X
Figure 2
Y Y
-90
-90
X X
Instruction for special applicatios, for use call Sipro technical office.
n <val | VN>
Example:
: AX 1 TO 1150
: AX 2 TO 900
: FXY 10 // Set working speed: 10 mm/sec
: TOOL 2 // Use tool no. 2
: TOOL ANGLE = 90 // Tool angle = 90 degrees
i <val>
n <val | VB>
Example:
i <val>
v1 <val | VQ>
v2 <val | VQ>
v3 <val | VQ>
n <val | VN>
Example:
The root with the smallest value is saved in VQ4 (parameter n), while the larger one is salved in
VQ5 (n + 1).
The axes are brought to the positions that correspond to the two roots only if the equation is
correctly resolved (solutions acceptable if VB1 = 0).
i <val>
n <val | VN>
m <val | VQ>
Example:
: VB1 = SETMAC PAR 2 VAL 0.1 //I set the machine parameter to the value 0.1
//Maximum radius error. VB1 receives the return
//code.
N.B.
The values modified with the SETMAC instruction are not stored in FLASH EPROM, so they
are lost at power-off.
We recommend reading the chapter Parameters in the installation manual of the numerical
control.
i <val>
n <val | VN>
j <val | VN>
m <val | VQ>
Sets a parameter.
The respective codes (j) are the following:
1 Acceleration time
2 Deceleration time
3 Movement of reference
4 Impulses of reference
5 Speed of reference
6 End travel minimum
7 End travel maximum
8 Home position
9 Encoder zero
10 Proportional Gain (Kp)
11 Integral Gain (Ki)
12 Derivative Gain (Kd)
13 Maximum Integral Action (%)
14 Tracking Alarm
15 Enabling/Disabling Feed Forward
16 Maximum Speed (%)
17 Manual Speed (%)
18 Resetting Speed (%)
19 Resetting Direction
20 Axes proximity threshold
21 Encoder and Analog Inversion
22 Dead Time Value
23 Axis Type
24 Axis band in position (impulses)
25 Acceleration space (mm) (axes on/off)
26 Deceleration space (mm) (axes on/off)
27 Inertia (mm) (axes on/off)
28 Play recovery (mm) (axes on/off)
29 Number of decimal places
30 Analog output number (from 1)
31 Encoder number (from 1)
N.B. Values modified through the SETP instruction are not stored in FLASH EPROM and are
thus lost at power-off.
VBi will contain the value 0 if the operation had a successful outcome.
Example:
this sets the Proportional Gain to the value 300 for axis 3.
i <val>
j <val>
Indexed acces to variable. Assigns the value of binary variable VB[VNj] to binary variable i.
Example:
i <val>
x <val | VB>
Sets the binary variable i to the value 0 or 1; x (in addition to 0 or 1) it can also be another
binary variable).
Example:
: VB2 = 0
i <val>
x <val | VB>
Sets the binary variable i to the value 0 or 1; x (in addition to or ) it can also be another binary
variable).
Unlike the instruction with the same name (240) Vbi = x, instruction (189) Vbi = x allows the
use of the extended index Binary Variables (i > 255).
Example:
VB1 = VB300
N.B. The instructions that use the extended index (i > 255) are those of assignment (such as
Vqi = m or Vni = n) while those of movement (type ax 1 to Vqi) always use indexes <=255.
N.B. Instruction available beginning from firmware version 4.37 and CSX compiler version
5.03.
n <val | VN>
m <val | VQ>
Example:
#prog 9800
#name Test
: AX 1 TO 100
: VEL AX 1 = 50%
: AX 1 TO 0
: END
The example shows one possible use of instruction 82 VEL AX n = m%. The movement of axis
1 at step 1 is executed at the maximum speed allowed by the motor (speed parameter of
reference of axis1). The movement of axis1 at step 3 is executed at a speed of 50% with respect
to the maximum speed of the motor (speed parameter of reference of axis1). This occurs due to
the presence at step 2 of instruction 82 VEL AX n = m% which specifically sets the axis speed to
50% of the maximum speed of the motor (speed parameter of reference of axis1).
n <val | VN>
m <val | VQ>
During the execution of the NC program is necessary to set at least one time at the program start
the speed of the axis you want to move.
i <val>
n <val | VN>
Indexed word of Numeric Variable. Assigns the value n to Numeric Variable VN[VNi].
Example:
i <val>
m <val | VN>
Example:
i <val>
m <val | VN>
Example:
VN1 = VN300
N.B. The instructions that use the extended index (i > 255) are those of assignment (such as
Vqi = m or Vbi = x) while those of movement (type ax 1 to Vqi) always use indexes <=255.
N.B. Instruction available starting from firmware version 4.37 and CSX compiler version
5.03.
i <val>
m <val | VN>
n <val | VN>
Example:
i <val>
m <val | VN>
n <val | VN>
Subtracts numeric value n from numeric value m and assigns it to Numeric Variable i.
Example:
i <val>
j <val>
Example:
: VQ7 =34.98
: VN65 = VQ7 //Assigns the value 34 (whole part) to VN65
i <val>
j <val>
Indexed acces to variable. Assigns the value of Numeric Variable VN[VNj] to Numeric
Variable i.
Example:
i <val>
m <val | VQ>
Permits reading analog input m and associates its value to Numeric Variable VNi in the format
used by the convertor (0 - 4095).
Example:
The value of the analog inputs is converted to a digital value by 12-bit convertors. Instruction
228 VNi = AI m allows saving the value converted by the converter of analog input m in VNi.
i <val>
n <val | VN>
Example:
At the end of execution, VN1 will have a value of 8 + the number of the current step, which in
this example is 4. The numerical control also makes available VN313 and VN312, which report
the number of the current step (they are read-only variables, for further information, go to
chapter Variables of the programming manual)
i <val>
m <val | VQ>
Indexed word of Position Variable. Assigns the value m to Position Variable VQ[VNi].
Example:
The program executes the movement of axis 1 to the position specified by the VQ of index
specified by VN1. In this case, it is VQ5.
i <val>
m <val | VQ>
Example:
: VQ1 = 50
i <val>
m <val | VQ>
Example:
VQ1 = VQ3000
N.B. The instructions that use the extended index (i > 255) are only those of assignment
(such as Vbi = x or Vni = n) while those of movement (type ax 1 to Vqi) always use indexes
<=255.
N.B. Instruction available beginning from firmware version 4.37 and CSX compiler version
5.03.
i <val>
n <val | VN>
Allows reading analog input n (in Volts in the format xx.xxx) and asociates its value to the
Position Variable of index i.
Example:
i <val>
m <val | VQ>
j <val | VQ>
111
Example:
After the third step described, VQ3 will have the value:
63.435=arctg(90/45)
i <val>
m <val | VQ>
j <val | VQ>
Example:
After the third step described, VQ3 will have the value:
2=sqrt(2.8282 - 22)
i <val>
m <val | VQ>
j <val | VQ>
Example:
After the third step described, VQ3 will have the value:
2,828=sqrt(22 + 22)
i <val>
n <val | VN>
p1 <val | VQ>
p2 <val | VQ>
p3 <val | VQ>
p4 <val | VQ>
Executes a call to personalized function n. p1, p2, p3, p4 are the Position Variables that are
used in this function, while i is the index of the Position Variable in which the result of the
operation is placed.
Can only be used with dedicated firmware; the list of available functions is described in the
chapter NC Functions.
Example:
Suppose we have function 82 in the firmware.
In the NC program we write:
At the time the instruction is executed, function 82 is invoked to which the values contained in
VQ20, VQ19, VQ18 and VQ17 are passed as parameters and the result is received saved in
VQ21.
i <val>
n <val | VN>
Reads the angle of the origin and places it in the Position Variable of index i.
In the case in which I want to know the angle of rotation of an origin, I use instruction 48 VQi =
GET ANGLE ORG n.
Example:
i <val>
n <val | VN>
Example:
: VQ3 = GETMAC PAR 4 //Reads the tangency tolerance parameter and saves it in
VQ3
i <val>
n <val | VN>
j <val | VN>
Example:
: VQ5 = GETP AX 1 PAR 7 //I read the End travel maximum parameter of axis 1
//and save it in VQ5
For the respective codes, see previous instruction 178 VBi=SET AX ValN PAR ValN2 VAL
ValQ.
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the multiplication of two values (they can also be Position Variables) to the
Position Variable of index i.
Example:
: VQ1 = 45
: VQ2 = 2
: VQ3 = VQ1*VQ2 //VQ3 receives the result of the multiplication of
//VQ1 and VQ2
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the division of two values (they can also be Position Variables) to the
Position Variable of index i.
Example:
: VQ1 = 90
: VQ2 = 2
: VQ3 = VQ1/VQ2 //VQ3 receives the result of the division of VQ1 by VQ2
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the multiplication of m by the sine of angle j expressed in degrees
to Position Variable i.
Example:
After the third step described, VQ3 will have the value:
100*SIN(30)=50
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the multiplication of m by the cosine of angle j (expressed in degrees) to
Position Variable i.
Example:
After the third step described, VQ3 will have the value:
100*COS(60)=50
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the division of m by the sine of angle j (expressed in degrees) to Position
Variable i.
Example:
After the third step described, VQ3 will have the value:
100/SIN(30)=200
i <val>
m <val | VQ>
j <val | VQ>
Assigns the result of the division of m by the cosine of angle j (expressed in degrees) to Position
Variable i.
Assigns the result of the multiplication of m by the cosine of angle j (expressed in degrees) to
Position Variable i.
Example:
After the third step described, VQ3 will have the value:
100/COS(60)=200
i <val>
m <val | VQ>
j <val | VQ>
Adds the value of position m to the position value j and assigns it to Position Variable i.
Example:
: VQ1 = 45
: VQ2 = 35
: VQ3 = VQ1+VQ2 //VQ3 receives the result of the addition of VQ1 and VQ2
i <val>
m <val | VQ>
j <val | VQ>
Subtracts position value j from position value m and assigns it to Position Variable i.
Example:
: VQ1 = 45
: VQ2 = 35
: VQ3 = VQ1-VQ2 //VQ3 receives the result of the subtraction of VQ1 and
VQ2
i <val>
m <val | VQ>
n <val | VN>
Multiplies position value m and numerical value n and assigns it to Position Variable i.
Example:
: VQ1 = 34.5
: VN1 = 2
: VQ2 = VQ1 * VN1 //VQ2 receives the result of the multiplication of VQ1 and VN1
i <val>
m <val | VQ>
n <val | VN>
Example:
: VQ1 = 39
: VN1 = 2
: VQ2 = VQ1 / VN1 //VQ2 receives the result of the division of VQ1 and VN1
Divides position value j by position value k and assigns the remainder of the division to
Position Variable i.
Example:
: VQ1 = 39
: VQ3 = 2
: VQ2 = VQ1 / VQ3 //VQ2 receives the remainder of the division of VQ1 by VQ3
i <val>
j <val>
Example:
: VN1 = 30
: VQ2 = VN1 //VQ2 receives the value 30
i <val>
m <val | VN>
n <val | VN>
Reads the value of origin m for axis n and places it in Position Variable of index i. The
movement of the axes is carried out with respect to a system of reference. To know the positions
of reference of a particular origin, we use instruction 58 VQi = ORG m AX n.
Example:
: VQ2 = ORG 2 AX 3 //reads the value of origin 2 for axis 3 and places it
//in VQ2
N.B. For further explanations, see paragraph Origins in the programming manual and
instruction 55 ORG n
i <val>
n <val | VN>
Example:
The program allows acquiring the current position of axis 1 and saving it in variable VQ1 and
using it to move axis 2.
i <val>
j <val>
Access indexed to the variable. Assigns the value of Position Variable VQ[VNj] to Position
Variable i.
Example:
Enables wait for axis in position; after the execution of a movement instruction, the execution of
the program does not continue until the axes in motion have arrived in position.
It is valid from the program step in which it is found on. I.e., it has no "retroactive" effect: for the
movement of axes moved in previous steps, the method relative to the moment of their activation
will be valid (until reaching their position).
For greater detail, see the previous instruction.
n <val | VN>
i <val>
Sets Binary Variable i to 1 and waits for it to return to 0. Binary Variable i must be set to 0 by
the PLC. Serves to synchronize the NC with the PLC.
Example:
VB3 must be set to 0 by the PLC. For example, if I want to associate the reset of VB3 to the
pressing of the [START] key, I must write a section in the PLC program that sets VB3 to 0 when
the [START] key is pressed.
For example, the section could be
NC Functions
Below, we describe the functions (FUN) that can be called by instruction (104) VQI = FUN n p1
p2 p3 p4
The function 50 stores on a Vq the axis maximum or the axis minimum reached
SYNTAX
i Index of the VQ that will contain the return value of the function
VqIdx Index of the VQ that will contain the maximum or minimum quote
The value of Vq, where the share is stored may 'be changed at any time by both the CN that the
PLC.
EXAMPLE 1
Saving on Vq10 the maximun quota reached from axis 3
Saving on Vq20 the minimum quota reached from axis 4.
: VQ0 = FUN 50 3 10 1
: VQ0 = FUN 50 4 20 2
EXAMPLE 2
Deactivating the storage of maximum quota or minimum quota axis 3.
: VQ0 = FUN 50 3 0 0
The management function 55 initializes the stop of one or more 'axes by digital input or input of
the zero mark.
It involves different modes' of use (parameter mode):
Control of altitude in the positive direction: the input is considered only when the dimension of
the axis and 'exceeds that of control (parameter Quote).
Control of altitude in the negative direction: the input is considered only when the dimension of
the axis and 'less than the controlling stake (share parameter).
Without control of altitude: the input is always considered, without any control on the part of
the axis.
One shoot / Multi Shoot: the input can 'be active for one shot or more' shots. One case in the
shoot, after the first activation of the stop the algorithm is disabled. In any case (One - Multi
Shoot) algorithm turns off automatically when the program is not 'more' running.
(4:41 FIRMWARE TO VERSION OF 05/28/2003) Stop digital input / stop on input of zero
mark: The stop-axis can be done on the occurrence of a digital input or an input of zero mark
(the two operations are reciprocally exclusive ie one or the other). To differentiate the two cases
see the Mode parameter.
SYNOPSIS
<i> the VQ index that will contain 'the return value of the function
<N. Input> Number of digital inputs [1, 2, ...] in the case of digital input or
Number zero pulse encoder input [1 .. 4] in the case of entry of zero mark
<Quota> Quote axis beyond which activates the input for the stop.
100 = Check out part one shoot (on the zero mark)
101 = Control share one shoot back (on the zero mark)
102 = No quota check one shoot (on the zero mark)
110 = Control share multi shoot forward (on the zero mark)
111 = Control share multi shoot back (on the zero mark)
112 = No quota check multi shoot (on the zero mark)
RETURN VALUE
0 Operation successful
1 Error programming the axis number
2 Already 'one-stop scheduled
3 Error parameter programming mode
4 Error number of encoder zero mark
EXAMPLES
Example 1
Example 2
The zero mark of the 1, 1 axis makes the stop, the mode of operation is control with altitude in
the negative direction, multi shoot.
NOTE In this case, you must first use the enable interrupt of 1 encoder with
vb352
The function 56 allows undo programming a stop to digital input or input of the zero mark.
SYNOPSIS
<i> the VQ index that will contain 'the return value of the function
RETURN VALUE:
0 Operation successful
1 Error programming the axis number
SYNTAX
i Index of the VQ that will contain the return value of the function
RETURN VALUE:
Example:
: VQ1 = FUN 61 70 0 0
SYNTAX
i Index of the VQ that will contain the return value of the function
NumDigOut Number of the digital output or Binary Variable associated to the cam; if
the number is negative, the on/off actions are reversed, i.e., the output is OFF when the
cam is IN and ON when the cam is out
Idx VQ par Index of the first VQ, of 5 consecutive VQs, with the configuration
parameters:
bit 3 (value 8)
Mono-directional cams are available starting from firmware version 4.43 of 30/06/2003.
RETURN VALUE:
NOTA The VQ from 6^ to 10^ are taken into consideration only if the bit
6 of VQ 1^ are equal to 1. If this bit is 0 VQ from 6^ to 10^ are
ignored.
(feature active from firmware version 5.59 of 31/08/2007 )
OPERATING PECULIARITIES
1. A call to function 62 with output equal to an already active cam (equal as number and as
type - i.e., digital output or VB) leads to the MODIFICATION of the parameters of the
already existing cam rather than the insertion of a new cam
2. A space cam (Mode 1) with the Start value equal to the Stop value will NOT be
activated; if a cam is already present with an equal output, it will be DEACTIVATED
3. From firmware version 5.59 of 31.08.2007 is active a new mode setting of the advance,
available only for space cams bidirectional. It set two thresholds speed: minimum
threshold and maximum threshold [beats / min] (beats means 1 cycle or 360 degrees or
more generally 1 module). It set an advance in degrees reported at the maximum speed.
For speeds lower than the minimum speed the advance is null. For speeds higher than the
maximum speed the advance is equal to the maximum advance set. For speed values
between the minimum and the maximum speed the advance is proportional to the speed.
The calculation of the advance is made between a start threshold and a stop threshold
which are programmable: outside of this range is considered the last advance calculated.
Example:
Activation of a digital space cam that activates digital output 12 in the interval [30 145]
degrees of axis 1; return value in VQ1, parameters in VQ51 VQ55
: VQ1 = FUN 62 1 12 51
The function initializes the management of the cam with Associated axis. Must be the carried
out before the first call to the function 64 (programming Associated cam shaft), a Subsequent
calls to the function 63 reset all the cams may be active
SYNOPSIS
Vq <j> = FUN 63 0 0 0
j the VQ index that will contain 'the return value of the function
RETURN VALUE
0 Operation successful
example
: VQ1 = FUN 63 0 0 0
After the execution of the function 63 ia possible program a cam axis associated with.
.
SYNOPSIS
Vq<i> = FUN 64 <N. Master> <N. Slave> <N. Mov> <Idx vq_par>
i the VQ index that will contain the return value of the function
N. Mov number of movements of the slave axis for each revolution of the master.
It's 'possible to program up to 8 movements per revolution.
Idx vq_par Index of the first VQ vq par with other configuration parameters:
Eighth VQ Movement of the slave during the first movement of the cam [mm].
Eleventh VQ Movement of the slave during the second movement of the cam [mm].
RETURN VALUE:
NOTE Before using the function 64 you must initialize the management
of the cam shaft associated with the call to the function 63.
It's possible to program up to 2 cam shaft associated with: the master axis can be the same for
both cams, the slave axis must necessarily be different.
The positions of the slave shall be planned and calculated with mode 'incremental: in fact for
each movement indicates the position of start and stop of the master while the slave axis
indicates the incremental movement, not the final installment
The slave axis motion is calculated using both the input data provided by the function 64 and the
following parameters of the master and slave axes:
It's'possible to program a constant speed to overlap with other placements, such as to ensure that,
while the master travels through space 0 - module, the slave performs positioning of the
positioning of the basic parameter (fifth Vq).
EXAMPLES
Example 1
: Vq1 = FUN 64 1 2 3 10
Example 2
Programming a cam shaft associated with.
Axis 1 = Master; axis 2 = Slave
For each revolution of the master axis (0 - 360 degrees), the slave axis follows the following two
motions:
cam 1: pos. master from 90 to 120 degrees, the slave advances of 1000 mm;
Cam 2: Pos. master from 150 to 240 degrees, the slave advances by 500 mm.
: Vq1 = FUN 64 1 2 2 10
M0000464 Page 151
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
The function 65 allows to determine the position of the slave axis corresponding to a position of
the master axis.
SYNOPSIS
<i> the VQ index that will contain 'the return value of the function
Slave Idx Index Vq where the slave stores the position of the slave read in the table.
RETURN VALUE:
Correct result.
-1 Error setting the identifier of the cam.
-2 Error in the share index of the master.
-3 Error in the share index of the slave.
-4 Cam uninitialized.
EXAMPLES
Example 1
Example 2
The function 66 allows you to set an offset to access the table placements.
SINTAX
i the VQ index that will contain 'the return value of the function
Master phase the master position is subtracted from the phase and then enter the Table
Placements.
RETURN VALUE:
Correct result.
-1 Error setting the identifier of the cam.
-2 Cam uninitialized.
Function 71 allows activating the acquisition of the level of an axis in a Level Variable (VQ) at
each interrupt generated by the zero notch of an encoder.
The functioning described is valid beginning from NC firmware Ver. 3.64a.
N.B. The function can also be used for axes controlled through the CANopen protocol, but
before the call it is necessary to define the management variables (IRQ count VN + IRQ-
enabling VB), using FUN 72 (Firmware Ver. 5.03 and higher).
The FlgUsr parameter is active beginning with firmware version 4.39.
SYNTAX
VQ<i> = FUN 71 <Num IRQ> <Num Axis> <Idx level VQ> <FlgUsr>
i Index of the VQ that will contain the return value of the function
Num IRQ [1-4] Channel number of the encoder whose zero notch is being used.
The decimal part of the parameter allows specifying the acquisition mode according to
the following layout:
bit 0
0 = level acquisition
1 = level acquisition in ImpRif modulo
bit 2
1 = acquisition with increment of destination VQ index
In the event that you wish to use the function for an axis controlled through the CANopen
protocol, the whole part of the Num IRQ parameter must be set to 0.
The decimal part of the parameter allows specifying the number of a second axis; the level will
be written in the VQ after that of the first axis specified.
FlgUsr If set to a value other than zero, it is possible to concatenate the operations
of FUN71 with those of another function previously set, relative to the same IRQ.
RETURN VALUE
Example 1:
Acquisition of the level of axis 2 in VQ110 at each interrupt of the zero notch of encoder 3;
return value in VQ1.
Example 2:
Acquisition of the levels of axes 1 and 2, in modulo, in VQ110 at each interrupt of the zero notch
of encoder 3; return value in VQ1.
Example 3:
Acquisition of the level of axis 1, with increment, in VQ110 at each interrupt of the zero notch of
encoder 3; return value in VQ1.
at each interrupt generated by the zero notch of encoder 3, the level of axis 1 is written in the
index VQ (110 + VN270 - 1): 110 is the index of the first VQ to be used, specified by the third
parameter of the function; to this is added the value contained in VN270, which is the counter of
the interrupts associated to encoder 3; one is subtracted precisely from VQ110 to initiate the
acquisitions (at the first interrupt, VN270 assumes the value 1 for which the level would be
written in VQ111).
SYNTAX
Num Axis Number of the axis controlled by CANopen whose management variables
you want to define.
RETURN VALUE
Example:
VQ1 = FUN 72 2 80 40
FUN77 returns the axis level in the rage [-Modulo/2 .. +Modulo/2 ], by taking away a whole
number of revolutions (1 revolution = modulo).
SYNTAX
i Index of the VQ that will contain the return value of the function
RETURN VALUE
Function 78 allows setting the mode for coupling and uncoupling a tracking axis.
Tracking is coupled and uncoupled using the VB that enables tracking and the operation is
executed based on what was previously programmed with FUN78; the mode set remains
unchanged until a new call to FUN78.
At start-up, before FUN78 is called, the numerical control sets the mode for coupling and
uncoupling without ramp.
SYNTAX
i Index of the VQ that will contain the return value of the function
1st VQ = Modulo
2nd VQ = VB index that enabled coupling in position
Bits 0, 1, 2 and 3 of the mode parameter identify the mode of uncoupling tracking:
Bits 4, 5, 6 and 7 of the mode parameter identify the mode of coupling tracking:
AXIS OF ROTATION:
Bit 8 of the mode parameter indicates if the axis is the axis of rotation. This mode is only used in
tracking uncoupling mode 3 and mode 48 of coupling tracking.
If the 8 bit is high, the Modulo parameter (1st VQ, additional parameters) is taken into
consideration and indicates the modulo of the axis of rotation. If Modulo = 0, the axis's Impulses
of Reference parameter is taken into consideration.
RETURN VALUE:
NOTA Mode 3, together with mode 48, is used for the packing function
NO PRODUCT NO BAG. (See example 2).
EXAMPLES
Example 1
: VQ1 = FUN78 2 17 0 0
: vel ax 1 = 50 %
ax 1 to 36000
When VB361 is set to 0, the slave axis will decelerate until the level set (180 degrees).
If VB3 is 0: when VB361 is set to 1, the slave axis starts with ramp and couples only at speed.
If VB3 is 1: when VB361 is set to 1, the slave axis waits for the right moment to start in ramp
and couple at speed and in position.
SYNTAX
i Index of the VQ that will contain the return value of the function
RETURN VALUE:
NOTA If the new objective level is not compatible with the position
and speed of the axis, the level change is not executed: if the current
level of the axis added to the space traveled in deceleration exceeds
the objective level that you wish to set, this turns out to be
incompatible.
By setting the mode for circular axes, if the objective level
turns out to be incompatible, it is recalculated for the next revolution.
An objective level change for circular axes is only allowed for
the FORWARD direction.
Example
Change the objective level of axis 2; the value of the new objective level is contained in VQ50.
: AX 2 to 10000
SKIP WAIT AX 2
M0000464 Page 165
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione
: VQ50 = 625
SYNTAX
VQ<i> = FUN 80 <Num Axis> <Num IRQ> <New Level to Set> <Request change Obj Lev>
i Index of the VQ that will contain the return value of the function
Num Axis: The whole part is the number of the axis whose level you wish to set
The decimal part is the minimum time, in msec, between one IRQ and the next: if two
IRQs arrive within the time set, only the first is taken into consideration and the second is
discarded.
Num IRQ: The whole part [1-4] is the channel number of the encoder whose zero
notch is being used.
The decimal part, if other than 0, is the index of the VQ where the level of the axis at the
moment of the interrupt is stored.
In the event that you wish to use the function for an axis controlled through the
CANopen protocol, the whole part of the Num IRQ parameter must be set to 0.
New level: New level to be set for the axis upon the arrival of the interrupt.
Request Change Obj Lev: The whole part [0-1] allows changing the objective level (0: it
does not change the objective level; 1: the level of the axis at the moment of the interrupt
is subtracted from the objective level).
The decimal part, if other than 0, is the index of the VN that is increased by 1 for each
IRQ that is too close.
RETURN VALUE
Example 1
Upon the arrival of an interrupt on the zero notch of encoder 2 of axis 3, the level is set to 0 and
the objective level is not changed.
VQ1 = FUN 80 3 2 0 0
Example 2
Upon the arrival of an interrupt on the zero notch of encoder 2 of axis 3, the level is set to 150
and the objective level is not changed.
Example 3
Upon the arrival of an interrupt on the zero notch of encoder 2 of axis 3, the level is set to 235
and the objective level is modified by removing or adding the delta between the arrival position
of the interrupt and the new position.
SYNTAX
i Index of the VQ that will contain the return value of the function
VQ<i> = 0 All OK
= 1 Error: another reset is already in progress.
= 2 Wrong axis number definition.
= 3 Wrong VB index definition.
= 4 Error: the encoder associated to the axis does not support the
function (such as: absolute encoder, potentiometer, simulated
encoder).
Num Axis: Number of the axis whose level you wish to set
Level to set: New level to be set for the axis upon the arrival of the interrupt.
Example 1
Upon the arrival of an interrupt on the zero notch of axis 2, the value 2500 is set in the axis
position; at the end of the operation, VB27 is set to the logical value 1.
:Err
GOSUB ERRORE // error management subroutine
: GOTO fine // operation terminated due to an error
:OK
:loop
IF VB27 = 0 GOTO loop // Wait for interrupt
:fine
END
Function 82 allows changing the speed of an axis in motion: the axis arrives at the final level
with the new speed set.
SYNTAX
i Index of the VQ that will contain the return value of the function
VQ<i> = 0 All OK
= 1 Wrong axis number definition.
= -1 Another speed change already in progress
:FINE
end
:Loop1
vq2 = pos ax 1 // Acquisition level axis 1
: if vq2 > 500 goto Step2 // check if level 500 exceeded
: goto Loop1
:Step2
vq0 = fun 82 1 90 700 // change speed: vel = 90 % a quota 700 mm
:FINE
end
The FUN104 is used in packaging systems that use films with the reference mark.
A photocell detects the notch and acquires the position of the Master; this position is then
compared with a reference position and then calculated the position error.
The position is detected dall'interrupt reported within the range [0 - 360].
The correction, by calling the function recovery position, occurs when the master axis is "on
cam" correction.
The correction is accomplished by modifying the actual axis.
Activation of a digital cam which acts on VB to define the area permitted for the
correction of the position of the FILM
(FUN 61 and 62)
SYNOPSIS
i the VQ index that will contain 'the return value of the function
RETURN VALUE
No return value.
The FUN106 is used in packaging systems that use films with the reference mark.
A photocell detects the notch and acquires the position of the Master; this position is then
compared with a reference position and then calculated the position error.
The position is detected dall'interrupt reported within the range set in the 10^ of parameters
The correction, by calling the function recovery position, occurs when the master axis is "on
cam" correction.
The correction is accomplished by modifying the actual axis.
Activation of a digital cam which acts on VB to define the area permitted for the
correction of the position of the FILM
(FUN 61 and 62)
SYNOPSIS
i the VQ index that will contain 'the return value of the function
RETURN VALUE
No return value.
NOTA The FUN106 differs from FUN104 for the additional parameter INDX +10.
The FUN107 is used in packaging systems that use films with the reference mark.
A photocell detects the notch and acquires the position of the Master; this position is then
compared with a reference position and then calculated the position error.
The correction, by calling the function recovery position, occurs when the master axis is "on
cam" correction.
The correction is accomplished by modifying the actual axis.
From 4:44 fw version of 11.07.2003 the 'Flg_Inv_Corr parameter was introduced which allows
to reverse the direction of correction.
We define the following functions:
Activation of a digital cam which acts on VB to define the area permitted for the
correction of the position of the FILM
(FUN 61 and 62)
SYNOPSIS
i the VQ index that will contain 'the return value of the function
Since fw version 5.05 (02/18/04) the fractional part has the meaning of the number of active
parameters. If the decimal part iszero, are taken into account 10 parameters.
No return value.
The function allows to determine a chase with a linear profile for the section in which the master
and slave move at the same speed and with a sinusoidal profile for the section in which the slave
must accelerate to reach the master to the next point of attachment (in which case the slave have
to travel more road of the master), or for the section in which the slave should decelerate (in
which case displacement slave minor displacement master). Example for the application of this
tracking may be the packaging machine in which a master axis carries out a product that is
wound into a film and then the latter is cut and welded by a second slave.
Normally the second slave will have to make a full turn to go and cut / weld the film to the
product length.
SYNOPSIS
Parameters:
Vq [Idx +0] = STEP [mm] Is the length of the product.
Vq [Idx +1] = There is NO more used.
Vq [Idx +2] = PACKAGE [mm] Is the distance between two packages
Vq [Idx +3] = Diameter [mm] Is the length of the shaft diameter
shear (slave) in case there is only a knife or cutting point.
Vq [Idx +4] = INI_RALL [degrees] with respect to the rotation value in degrees of
slave from which the stroke begins at linear speeds.
Vq [Idx +5] = END_RALL [degrees] with respect to the rotation value in degrees of
Slave where the line ends at linear speeds.
Vq [Idx +6] PASSO_MASTER = Length product or movement from the master
used to calculate the tracking table and for managing
access to the table during the movement.
Vq [Idx +7] = FASE_MASTER phase shift up to the master sync =
the cutoff point between the master and slave.
Vq [Idx +8] = FASE_SLAVE phase shift to be given to the slave in the case where no
you want that the zero of the slave corresponds with the point of cutting.
The disabling of tracking can be achieved by putting 0 in the vb tracking described above.
NEW VERSION
The function of the beginning of 2001 has changed that for reasons of compatibility with the
previous version are activated by inserting a negative value in the parameter Vq Parameters
Index (see examples).
The parameters defined in the first version of the function 110 are not changed, but adds, after
the other, the following parameters:
Vq [Idx +9] = Ratio Master / Slave shear zone: Allows you to change the speeds between the
master and slave in the area of linear tracking
Vq [Idx +10] = MIN_BD_SWAP. Starting point of banda useful for swapping the table to be
activated using the function 111.
Vq [Idx +11] = MAX_BD_SWAP. End point of the useful band for the swap of the table can be
activated through the function 111.
EXAMPLES:
Example 1:
Suppose you want to enable a chase between a shaft coupling (the Master) and a Taglia_Cuci
(the Slave).
In our application will be the master and slave axis 1 will be the axis 2.
We want to package a product length of 180 and with a distance between the vanes on the axis of
towing equal to 220, we want the cut point corresponds with the point of 0 and that of the slave
axis overlock them is phase shifted by 100 mm with respect to the master .
Linear zone for cutting the want equal to 60 degrees with respect to 360 of the entire movement
of the overlock around the zone of cut.
Our axis overlock has a diameter calculated from the tip of the knife at the center of rotation
point and multiplying this value for 2 = 120mm
Without these assumptions we see how to set the parameters of the function.
We define as an index of the first parameter value vq 100 => the first containing the parameters
vq = Vq100.
`Will result:
Vq100 = 220 (Step)
Vq101 = 0 (or any value because you do not use more).
Vq102 = 180 (Package)
Vq103 = 120 (diameter of the slave)
Vq104 = 330 (Start linearly with Vel Vel Master = Slave)
Vq105 = 30 (End-linear)
Vq106 = 220 (Master Pass)
Vq107 = 100 (Step Master)
Vq108 = 0 (Step Slave)
We take as a variable to return the call to the function that will result is so Vq1 be:
Vq1 FUN = 110 1 2 100
Example 2
Starting from the above we also define a swap for a banda
subsequent request to change the profile of tracking (see function 111), but the speeds of the
master and slave must be equal in the cutting area.
Then we define as banda swap an outer zone to the cutting for example between 100 and 260
degrees and a ratio of master / slave = 1.
`Will result:
Vq109 = 1 (ratio Master / Slave)
Vq110 = 100 (top banda Swap)
Vq111 = 260 (End banda Swap)
This feature allows you to edit the data table with sinusoidal pursuit after it is activated and is in
process of obtaining a change profiles speeds, the table of positions and relationships between
the position of master and Slave (Phase Master and Slave Phase).
The actual exchange of data and profiles determined by the function swap takes place only at the
instant when the slave axis enters its swap bandwidth determined by the two parameters, defined
with the function 110 (new version parameter index negative) , minimum and maximum swap
banda banda swap.
SYNOPSIS
Parameters:
Vq [Idx +0] = STEP [mm] Is the length of the product.
Vq [Idx +1] = There is NO more used.
Vq [Idx +2] = PACKAGE [mm] Is the distance between two packages
Vq [Idx +3] = Diameter [mm] Is the length of the shaft diameter
shear (slave) in case there is only a knife or cutting point.
Vq [Idx +4] = INI_RALL [degrees] with respect to the rotation value in degrees of
slave from which the stroke begins at linear speeds.
Vq [Idx +5] = END_RALL [degrees] with respect to the rotation value in degrees of
Slave where the line ends at linear speeds.
Vq [Idx +6] PASSO_MASTER = Length product or movement from the master
used to calculate the tracking table and for managing
access to the table during the movement.
Vq [Idx +7] = FASE_MASTER phase shift up to the master sync =
the cutoff point between the master and slave.
Vq [Idx +8] = FASE_SLAVE phase shift to be given to the slave in the case where no
you want that the zero of the slave corresponds with the point of cutting.
NB The parameters passed to the function (master axis number, number and index of the slave
axis vq containing other parameters) must be the same as those passed to the function 110
previously activated.
SYNTAX
i Index of the VQ that will contain the return value of the function
code operation
131 management initialization
132 calculate current position coordinates (automatic sequence)
133 calculate coordinates specified position
134 reset automatic sequence
C D
11 12 13 14 15
3 rows 6 7 8 9 10
1 2 3 4 5
5 columns
A B
Figure 1
VQ index coordinate
VqIndx XA
VqIndx+1 YA
VqIndx+2 XB
VqIndx+3 YB
VqIndx+4 XC
VqIndx+5 YC
VqIndx+6 XD
VqIndx+7 YD
VN index parameter
VnIndx number of ROWS [1-1000]
VnIndx+1 number of COLUMNS [1-1000]
VnIndx+2 Operating Mode
Value Meaning
10001 Initialization correctly executed
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10005 number of rows wrong
10006 number of columns wrong
10007 operating mode wrong
Returns the coordinates of the current position of the pallet specified in the VQs (automatic
sequence); the current position will be incremented.
The pallet position index follows the order shown in Figure 1.
Value Meaning
[1 N] position index returned
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10009 pallet not initialized
10012 pallet finished (last pallet position exceeded)
VN index parameter
VnIndx number of ROWS of the requested position [1 - NR]
VnIndx+1 number of COLUMNS of the requested position [1 - NC]
Value Meaning
[1 N] position index returned (N = num. Rows * num. Columns)
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10009 pallet not initialized
10010 row number wrong
10011 column number wrong
Function 134 brings a pallet's current position back to the initial position; this operation is used
in conjunction with operation 132.
Value Meaning
10002 VN index parameters wrong
10003 pallet number wrong
10009 pallet not initialized
10021 reset executed
The function allows to determine a profile of a chase with speeds straight for the section in
which the master and slave move at the same speeds, a sharp acceleration from the linear to exit
quickly and decelerated abruptly to enter the cutting area the remaining movement is realized in
a sine wave in order to cover the distance remaining to the slave to terminate the movement, the
slave will be able to `slow down or decelerate.
SYNTAX
Parametri:
VQ [Idx +0] = STEP [mm] Is the length of the product.
VQ [Idx +1] = There is more used.
VQ [Idx +2] = PACKAGE [mm] Is the distance between two packages
VQ [Idx +3] = Diameter [mm] Is the length of the shaft diameter
shear (slave) in case there is only a knife or cutting point.
VQ [Idx +4] = INI_RALL [degrees] with respect to the rotation value in degrees of
slave from which the stroke begins at linear speeds.
VQ [Idx +5] = END_RALL [degrees] with respect to the rotation value in degrees of
Slave where the line ends at linear speeds.
VQ [Idx +6] = PASSO_MASTER Length product or movement from the master
used to calculate the tracking table and for managing
access to the table during the movement.
VQ [Idx +7] = FASE_MASTER phase shift to be given to the master to synchronize the point
Cutting between the master and slave.
VQ [Idx +8] = FASE_SLAVE phase shift to be given to the slave in the case where
we do not want the zero of the slave corresponds with the point of cutting.
VQ [Idx +9] = Ratio Master / Slave shear zone: Allows you to change
the speeds between the master and slave in the area of linear tracking
VQ [Idx +10] = MIN_BD_SWAP. Starting point of banda useful for swap
of the table can be activated through the function 131.
VQ [Idx +11] = MAX_BD_SWAP. End point of the banda useful for swap
of the table can be activated through the function 131.
VQ [Idx = +12 DELTA_OUT_SL. Distance traveled by the slave during the exit
from the cutting area.
VQ [Idx = +13 DELTA_IN_SL. Distance traveled by the slave during entry
in the shear zone (currently = space for future developments in output).
VQ [Idx +14] = DELTA_OUT_MS. Distance traveled by the master while the output
from the cutting area.
VQ [Idx +15] = DELTA_IN_MS. Distance traveled by the master while the input
in the shear zone (currently = space for future developments in output).
EXAMPLES:
Example 1:
Suppose you want to enable a chase between a shaft coupling (the Master) and a Taglia_Cuci
(the Slave).
In our application will be the master and slave axis 1 will be the axis 2.
We want to pack a product along 350, we want the cut point corresponds with the point 0 of the
slave and overlock them not out of step with the master.
Linear zone for cutting the want equal to 60 degrees with respect to 360 of the entire movement
of the overlock around the zone of cut.
Our axis overlock has a diameter calculated by measuring from the tip of the knife at the center
of rotation point, and multiplying by 2 equal to 90mm.
Suppose we want to make a motion of 50 degrees of the slave input and output from the cutting
area while the package is advanced by 30 mm.
Without these assumptions we see how to set the parameters of the function.
We define as an index of the first VQ parameter value 100 => the first containing the parameters
VQ = Vq100.
`Will result:
14000
12000
10000
8000
Serie1
6000
4000
2000
0
105
113
121
129
137
145
153
161
169
177
185
193
201
209
217
225
233
241
249
1
9
17
25
33
41
49
57
65
73
81
89
97
C D
11 12 13 14 15
3 rows 6 7 8 9 10
1 2 3 4 5
5 columns
A B
Figure 1
SYNTAX
VN index parameter
VnIndx pallet number [1-2]
VnIndx+1 Index of first VQ with coordinates VQ index coordinate
of points A, B, C and D VqIndx XA
VnIndx+2 number of ROWS [1-1000] VqIndx+1 YA
VnIndx+3 number of COLUMNS [1-1000] VqIndx+2 XB
VnIndx+4 Operating Mode VqIndx+3 YB
VqIndx+4 XC
VqIndx+5 YC
VqIndx+6 XD
VqIndx+7 YD
The outcome code of the operation returned in the VN of the index VnResIdx:
Value Meaning
10001 Initialization correctly executed
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10005 number of rows wrong
10006 number of columns wrong
10007 operating mode wrong
Function 132 returns the coordinates of the current position of the pallet specified in the VQs
(automatic sequence); the current position will be incremented.
The pallet position index follows the order shown in Figure 1 of Function 131 (pallet
initialization)
SYNTAX
VN index parameter
VnIndx pallet number
VnIndx+1 index first VQ with coordinates of the current position (X,Y)
Value Meaning
[1 N] position index returned
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10009 pallet not initialized
10012 pallet finished (last pallet position exceeded)
Function 133 returns the coordinates of the specified position of the specified pallet.
SYNTAX
VN index parameter
VnIndx pallet number
VnIndx+1 index first VQ with coordinates of the requested position (X,Y)
VnIndx+2 number of ROWS of the requested position [1 - NR]
VnIndx+3 number of COLUMNS of the requested position [1 - NC]
Value Meaning
[1 N] position index returned (N = num. Rows * num. Columns)
10002 VN index parameters wrong
10003 pallet number wrong
10004 VQ index coordinates wrong
10009 pallet not initialized
10010 row number wrong
10011 column number wrong
Function 134 brings a pallet's current position back to the initial position; this function is used in
conjunction with Function 132.
SYNTAX
VN index parameter
VnIndx pallet number
Value Meaning
10002 VN index parameters wrong
10003 pallet number wrong
10009 pallet not initialized
10021 reset executed
Function 196 allows enabling the set or reset (depending on the mode) of a VB when the
specified encoder reaches the zero notch
SYNTAX
i Index of the VQ that will contain the return value of the function
VQ<i> = 0 All OK
= -1 Error: there is already another wait for zero notch in progress
(FUN196 has already been called and the zero notch has yet to be
reached).
= -2 Error encoder n. (encoder num not valid)
= -3 Error VbIdx parameter (index not valid)
= -4 Error: encoder doesn't support the function
Valid encoders: TPU GPC XLNX
= -5 Error: execution of FUN196 with Mode -1
when no wait for zero notch is pending
Num Enc Encoder number on which the zero notch is awaited when
FUN196 is launched. To determine which encoder is used, do an encoder
test.
Example
After the execution of the above instructions, the NC waits until the zero notch of encoder 5 is
reached. Upon reaching the zero notch of this encoder (5), the VB is set to 1.
NOTA this function can only be used for uncontrolled axes, i.e., for axes of
which only the encoder is read
SYNTAX
i Index of the VQ that will contain the return value of the function
Num IRQ [1-4] Channel number of the interrupt input whose zero notch is being
used.
Num Axis Number of the axis whose level is to be reset (the level of the Zero
Encoder of the axis parameters will be set)
RETURN VALUE:
VN268
Interrupt counter IRQ1
VN269
Interrupt counter IRQ2
VN270 Interrupt counter IRQ3
VN271Interrupt counter IRQ4
Example 1
Enabling the level reset of axis 1 on the interrupt of the zero notch of encoder 2;
NOTE: For the verification of End of Travels and the recalculation of the target level is
necessary that all 3 axes (X, Y and Z) have the End of Travels software active.
NOTE: Its necessary that leaning movement is already activated by FUN 116 of PLC.
SYNTAX
i Index of the VQ that will contain the return value of the function
The decimal part of the parameter Coord is the parameter Mode with the following meanings:
CorsaMm Race desired, if the race specified is excessive as would exceed some software
End of Travel, is automatically reduced
VqIndx index of the first of 3 consecutive VQ with the target level of the axes X, Y e Z;
calculated so as not to exceed End of Travel software
NOTE: the levels calculated are with ORIGIN (current origin)
RETURN VALUE:
Vq<i> Description
0 Calculation executed respecting the race specified
1 Levels recalculated to respect the software End of Travel
2 Movement null because of software End of Travel
3 Management not initialized (FUN116 PLC not executed)
4 Coordinated wrong (parameter <Coord>)
5 Function call with axes on the move
6 Parameter <Mode> wrong
EXAMPLES
EXAMPLE 1
:FINE
end
EXAMPLE 2
// coord calculated on VQ31 (axe 1), VQ32 (axe 2) and VQ33 (axe 3)
: VQ10 = FUN 216 1 1 500 31
: VQ41 = VQ31
VQ42 = VQ32
VQ43 = VQ33
SYNTAX
i Index of the VQ that will contain the return value of the function
RETURN VALUE:
The same function is also accessible from ISO language programs with the following syntax:
M801 P<ParIndx>=<ValQ>
PARAMETER DESCRIPTION
PARAMETER 10
In NC instructions of type LINEx, setting the parameter to 3 activates the execution of
synchronized movements (i.e., with the simultaneous departure and arrival of the axes
involved in the movement) in axis coordinates with connection of adjacent movements. If the
connection is not applicable because, for example, the section is too short or the speed too
high, a stop is forced on the point.
NOTA
Coordinated movements are only available with specific firmware.
PARAMETER 20
When connected movements are active (see parameter 10), the speed of executing
movements is calculated so as not to exceed the speed percentage set on the axes involved in
the movement and this can lead to accelerations or decelerations between one movement and
another to adapt the resulting speed; when the number of one specific axis is set in the
parameter, the speed is calculated only on the basis of the speed percentage set on that axis.
PARAMETER 25
In G1/G2/G3 type interpolations, it enables the verification of the acceleration of the added
axes (i.e., the axes that do not belong to the main interpolation group); if the acceleration
applied exceeds that of the axis, a recalculation is performed to make it compatible.
Setting the value 0 in the parameter disables verification (default).
SYNTAX
Vq<i> = FUN 255 <FunIndx> < Par1 > < Par2 > 0
i Index of the VQ that will contain the return value of the function
NOTE: its used the integer value of the parameters Par1 and Par2
RETURN VALUE:
EXAMPLE:
Loops
To manage loops, we can make recourse to conditional instructions that test the input or outpout
condition of the loop, such as, for example, if a certain input is high, if an axis is in position, etc.
In this case, the loop can be set in two distinct ways depending on whether you want to enter the
loop at least once and test the condition at the end or if you want to test the condition at the
beginning and then, in the case of failure, never enter the loop (what in many programming
languages are called DO - UNTIL and WHILE - DO loops).
The opportunity of using one or the other method is dictated by the needs of the specific
problem.
In the list of instructions, there are also 20 FOR's and 21 NEXT's that allow managing a loop in
which the number of times that the loop must be repeated is known. In practice, all the
instructions between a FOR and NEXT are repeated n times.
The use of this type of cycle is not available in programming on the PC.
However, it is also discouraged when programming from the keyboard.
Management of variables
The Numeric Variables (VN) allow the management of whole numbers such as, for example,
indexes of loops and numbers of inputs and outputs. They occupy 2 Bytes.
The Position Variables (VQ) manage numbers with 3 decimal places and are used for the
positioning positions of the axes and the setting of movement speeds. They occupy 4 Bytes.
The Binary Variables (VB) can only assume values of 0 and 1 and, in view of their nature, they
lend themselves well to managing the truthfullnes, or lack, of a determined condition and can,
therefore, be used to access loops or not. They occupy 1 Bytes. The Binary Variables (from 101
to 255) can be associated to alarms and are, therefore, useful in the case that you want to set a
precise alarm in correspondence to the verification of a certain action.
Usually, variables of all types are zeroed upon powering-up the machine but, if the program is
launched afer the execution of others, it is not know what value they may have assumed and, so,
it is the programmer's responsibility to initialize them to the correct value for the specific
application.
The exeception are the battery buffered variables (retentive), which allow preserving their
value even when the machine is powered-off.
For a complete summary of all the variables, see the chapter Variables.
Except in a few cases, the instruction parameters can be specified as constants or variables. Per
example the instruction:
AX 1 TO 100.000
AX 1 TO VQ35
positions axis 1 to the position contained in the VQ of index 35; thus, the instructions:
VQ35 = 100.000
AX 1 TO VQ35
AX 1 TO 100.000
N.B.: In the Instruction list all the values that can be recalled by variables are indicated as
ValB, ValN and ValQ.
In programming from the keyboard, at the time of setting a variable, you press the key sequence
[SHIFT] + [VAR] and VQ0, VN0 or VB0 will automatically appear, depending on the type of
instructions requested. Thus, one can set the number of the desired variable.
The two parameters of the addition or subtraction instructioins can be variables (as previously
said); it is therefore possible to write:
VQ72 = VQ80 + 12.200
VQ72 = 45.520 + VQ80
VQ72 = VQ80 + VQ53
VQ72 = VQ80 - 34.600
To increase the value of a variable, it is possible to write:
VQ72 = VQ72 + 1
IF VN32 < VN40 GOSUB 14 If the value contained in VN 32 is less than the value of
VN 40, jump to program 14, it executes it, so execution
resumes from the step following the one that contains the
conditional instruction.
Tracking management
Tracking consists in forcing the impulses of the slave axis (encoder impulses 4) in relation to
the impulses of a master axis. In other words, the impulses of the slave must be equal to those of
the master, multiplied by a constant called Tracking factor.
In practice, we have: Slave impulses = Master impulses Tracking factor
N.B.: when an axis is enabled or disabled for tracking an axis in motion, it performs starts and
stops with a ramp.
Tracking mode 0
Mode 0 is selected by setting VN324 to VN327 to 0.
VN276 to VN283 assume the meaning of Tracking factor to 3 fixed decimal places (Tracking
factor 1000).
N.B.: It is possible to vary the tracking ratio, even with axes in motion.
Tracking mode 1
Mode 1 is selected by setting VN324 to VN331 to 1.
The tracking factor is set in the form of numerator/denominator (32-bit value and, thus, more
precise with respect to mode 0).
The numerator, in whole number format, is set in VN276 to VN283.
The denominator, in whole number format, is set in VN316 to VN323.
N.B.: With axes in movement, it is possible to vary only the numerator of the tracking ratio; if
the denominator is changed, the Slave axis could lose synchronism with the Master axis.
If the denominator is set to 0, the control does not execute the division: it is as if you set
denominator = 1.
Desired slave impulses
Slave impulses = Master impulses
Master impulses of reference
Tracking mode 2
Mode 2 is personalized.
Tracking mode 3
Mode 3 allows the management of Twin Axes.
Tracking mode 4
Mode 4 is called thread guide. It uses the VBs and VNs from mode 1 (NUM/DEN). In addition,
a VB and two VQs have been introduced with the following meaning:
Tracking mode 5
Mode 5 is similar to mode 4 but with feed forward calculated as encoder position difference.
N.B. Available beginning from firmware version 3.77a with library version 2.24
Tracking mode 6
Mode 6 is similar to mode 0, but does not add the contribution of Feed Forward.
Tracking mode 7
Mode 7 is similar to mode 1, but does not add the contribution of Feed Forward.
Tracking mode 8
Mode 8 is similar to mode 0, but Feed Forward is always calculated as if the encoder to track
was not associated to an axis.
Tracking mode 9
Mode 9 is similar to mode 1, but Feed Forward is always calculated as if the encoder to track
was not associated to an axis.
Tracking mode 10
Mode 9 is similar to mode 1, but the tracking works following the teoric position of the
MASTER (only for real axis) and not the real one.
The numerator is a whole number set in a VQ whose index must be set in VN276 to VN283.
The denominator is a whole number set in a VQ whose index must be set in VN316 to VN323.
Note: With axes in movement, it is only possible to vary the numerator of the tracking ratio; if
the denominator is changed, the Slave axis could lose synchronism with the Master axis.
If the denominator is set to 0, the control does not execute the division: it is as if the
denominator were set = 1.
A) Settings:
Steps:
Perform the resetting of the master axis: the slave axis is automatically zeroed
B) Settings:
Steps:
At the beginning of resetting, set the VB of the zeroed slave axis to 0
Set the tracking mode for the slave axis to 0 with tracking factor 1:1
Zero the master
Disable the tracking of the slave axis
Zero the slave axis
When the axes are zeroed, enable tracking mode 3 for the slave axis
N.B. During the resetting of the slave axis, you can place the master axis to track the slave with
tracking factor 1:1 and tracking mode 0.
Barcode management
The Numerical Control manages reading barcodes if it is enabled in the firmware.
The elements to manage for the correct use of barcodes are:
VN390 indicates the user program to use (User program number) and any errors during
the initialization phase
VN391 indicates the serial port used in the initialization phase and the status of the
reading of the string in the barcode operation phase.
N.B. For further explanations of VN390 and VN391, see the chapter explaining Variables in
this manual.
B) The user program has the task of specifying which characters of the barcode string it is
interested in and how these characters are used. . The maximum anticipated length is 60
characters, of which the last two characters must be '\r' '\n' (carriage return - 13 and line feed
(10).
The base matrix of the user program has a fixed structure. In fact, it must consist of 4
consecutive VNs.
Example:
#prog 7000
#name Base Barcode Matrix
#include "Defvar.h"
:Start
VN70 =0
VN71 =0
VN72 =0
VN73 =0
:End
End
The user program must be created with this base matrix. Once the user program is created, you
go on to adding steps. The user program can have a maximum of 20 steps.
Following the structure of the base matrix, each step must contain the following information:
VN Meaning
First VN Specifies the index of the first character
of the string read from the barcode
(from 0)
Second VN Specifies the number of characters to
take
Third VN Specifies the destination variable type
Fourth VN Specifies the index of the destination
variable
So, each step of the user program indicates which characters of the string coming from the
barcode are considered (the information of the first two VNs of the step) and how to use these
characters (the information of the last two VNs of the step).
The third VN indicates the type of destination variable depending on this coding:
Example:
The barcode reads a string of 30 characters. Of these 30 characters, we are interested in the 5
characters starting from the 4th character placed in VQ100 and the 6 characters starting from the
15th character placed in VA10. So, the program will consist of two steps:
First step with VNs with the following values:
VN Value Comment
First VN 3 The numbering of the characters of the string
starts from 0. So, if I want to read from the
4th character, I must put 3
Second VN 5 The number of consecutive characters read is
5
Third VN 1 The destination variable is a VQ
Fourth VN 100 The index of the VQ is 100
VN Value Comment
First VN 14 The numbering of the characters of the string
starts from 0. So, if i want to read from the
15th character, I must put 14
Second VN 6 The number of consecutive characters read is
6
Third VN 20 The destination variable is a VN
Fourth VN 10 The index of the VQ is 10
After the creation of the user program, we must prepare the numeric control for managing the
barcode. We must, therefore, initialize the NC using VN390 and VN391. The initialization
procedure is the following:
In VN391 enter the number that specifies the serial (COM) port of the NC used by the
barcode.
In VN390, enter the number of the user program used for the interpretation of the string
coming from the barcode (user program whose creation was explained above)
If the initialization is successful, VN391 assumes the value 8192. From this moment on, every
time that a string is read, this information is used with the barcode and VN391 provides
information on the status of the management of the barcode. Each string read is managed on the
basis of the information given by the user program.
N.B. For further explanations of VN390 and VN391, see the chapter explaining Variables
in this manual.
If these conditions are not satisfied, the old password management continues in effect (456258).
In the case in which all the requirements are satisfied for defining a new password, you must
execute the following procedure:
Two programs must be created, 1 matrix program number 9880 and 1 user program 9881, in
which a VA is defined whose value will be the new password.
N.B. The password can only consist of numeric characters.
To create these two programs, it is possible to use SiaxED version 2.0.5 or higher.
In this case, it will be necessary to go to tools on the Siax pull-down menu and select Password
CN,
After reading the notice, click OK; at this point a window will appear in which it will be possible
to type the desired password (N.B. the program does not accept non-numeric characters)
After typing the password, click on the Send key or press Enter and the files will be created with
the desired password.
At this point, it will be sufficient to send the files to the control and the new password will be
active.
In the case in which all the conditions for password management are active on the numerical
control (User programs enabled, version equal to, or higher than, 4.18 and enabling VB TRUE),
but the programs are not present for defining the password when you attempt to access the
functions of the control limited by password, the words will appear, password not enabled press
a key and access will remain inhibited.
If you wish to create the management programs manually, it will be necessary to respect the
following conditions;
1. The user program must contain 1 single variable and this must be a VA,
2. The password, the value of the VA, must consist of only numeric characters.
Automatic Cycle
To execute an NC program in Single State it is necessary to set the number of the program to be
executed (main program) in VN402 and set VB428 to 1.
As in traditional operation, the condition of "automatic cycle in execution" (RUN) is signaled by
VB261 while execution is stopped by setting VB257 to 1 (VB_STOP).
NOTA to restart from program step 1 or each time that the number of the
main program is changed in VN402, it is necessary to set VB395 to
1 (VB_PRG_RESET)
Speed Test
To execute the axis speed test you must enable VB430 (VB_OM_START_TSTVEL); when
VN403 contains a valid axis number, the speed test for the specified axis begins; at the end of the
test, VN403 is returned to 0; to return to normal operation, set VB430 to 0.
NC Master Protocol
Note: NC Master protocol is available only on some firmware versions.
In the initialization phase, it is necessary to specify the communications port that you wish to use
in VN_CN_MASTER_STATO (VN394):
The correct initialization is signaled (when you insert the program number VN393) by the value
0x2000 (8192) + the Comand Number that will be exchanged between Master and Slave in
VN_CN_MASTER_STATO.
VALUE MEANING
-1 Data program number not valid (> 9999)
-2 Data program not present
-3 Is not a data program
-4 COM specified in VN_CN_MASTER_STATO (VN394)
not valid
-101-i Index variable error in step <i>
-151-i Unexpected variable type in step <i>
-201-i Wrong number of errors in step <i>
-251-i Wrong NC Identifier in step <i>
N.B. the NC idenifier must be other than 0 for all
commands or equal to 0 for all commands
-301 Max number of anticipated controls exceeded
(MAX_CN_CMD)
-302 Size of command buffer exceeded (BUF_CMD_SIZE)
VALUE MEANING
0x2000+NumCmd Initialization correctly executed
0x4000 The serial port is released and management disabled
-( 1 + (IdCn * 256) ) conversation timeout with NC IdCn
-( 2 + (IdCn * 256) ) Tx checksum error
-( 3 + (IdCn * 256) ) Rx checksum error
During the scan cyclic exchange variables between master and slave its possible to enter
protocol commands that run only once and with the highest priority.
Syntax FUN120:
VN Index Parameter
VnIdx CnId = address of CN ( 0 = not consider the address)
VnIdx+1 CmdCode = command code
VnIdx+2 CmdPar1 = parameter 1 of the command
VnIdx+3 CmdPar2 = parameter 2 of the command
CnId: is the address of NC which is sent to the command. 0 = not consider the address
(where there is only one Slave).
CmdCode: is the code of command protocol. Depending on the type of command there
may be some parameters, which specify the command.
CmdPar1: is the first parameter of the command
CmdPar2: is the second parameter of the command
StatusVnIdx index of VN that contains the state and / or outcome of the operation:
Value Meaning
3 Command successfully completed
2 Command sent: awaiting response
1 Request pending: awaiting sending command
0
-1 Protocol NC Master inactive
-2 Unrecognized command
-3 Reception error ( timeout and / or checksum error )
-4 Command not executed ( COM BUSY or COM NOT READY )
-5 Program nonexistent (deletions and / or send)
-6 Protocol error during response to a command
-7 Impossible to send the program because already exist in menu.
-8 COM BUSY during send a program
-9 Error during storage of a program sent
The VN state assumes the values of the table in the following situations:
Vn stato = 1
State of preparedness packet to be transmitted and wait for command.
Vn stato = 2
The transmission was made and is awaiting the response of the Slave.
NOTE: In this phase is prohibited to send other commands with FUN120.
Vn stato = 3
The command has been completed successfully.
Vn stato = -1
The command requested could not be sent because the protocol CN MASTER is not
active.
Vn stato = -2
The command requested could not be sent because it is an unrecognized code.
Vn stato = -3
Encountered a timeout or a checksum error.
Vn stato = -4
The command requested could not be sent because the Slave is in a state of COM BUSY
or COM NOT READY.
Vn stato = -5
Has been requested to send a program that is not present in the memory of the master.
Has been requested cancellation of a program that is not present in the memory of slave.
Vn stato = -6
There was an error in the frame of the response sent by the slave.
Vn stato = -7
You can not send the program because it's already in memory of slave.
Vn stato = -8
During send packets of a program the slave was mistakenly placed in a state of COM
BUSY.
Vn stato = -9
An error occurred during storage program in the memory of slave.
NOTE: Before you call FUN120 you must reset the VN status.
Commands implemented:
SEND A PROGRAM ( Fw ver. 5.64 24.01.2008 )
CmdCode = 415
CmdPar1 = n. program to send
You can activate the protocol NC MASTER without the cyclical exchange of variables.
In this mode on the transmission channel only transiting packets of individual commands.
where:
A = Com number; can be 1, 2 or 3
B = Device type; 0 = Slave, 1 = Master 2 = Slave Multi Point
C = Slave register type; 0 = Registers not Inverted, 1 = Registers Inverted
D = Protocol type; 0 = old, 1 = new
To have a SLAVE on com2 with new protocol without register inversion, set VN398 to:
Continuing with the last example, if you want to use the old protocol, the value to set in VN398
will be:
When management with the new protocol is enabled, it is possible to define a personalized
mapping of the variables exchanged between the two systems to make the identification of the
variables more intuitive. In fact, under the old protocol, the digital outputs immediately followed
the VB's and, for this reason, if you wanted to set output 10, you needed to set:
In this mode, a PLC written for an NC with 1024 VB's would not be compatible with an NC with
4096 VB's and vice versa.
The new protocol offers the option of establishing which is the first digital output with the new
FUN115 so that it can correspond to the relative coil on the Master.
The parameters of the serial line are set with VN 399 based on the following table:
IMPORTANT: VN 399 must be set before VN 398 so that the configuration of the serial line is
determined before activating the Modbus protocol.
Unlike the protocol SLAVE, the MASTER protocol activates with 1 second of delay by default
when VN398 is set to give the SLAVE nodes time to initialize. If more time is needed, program
the PLC to ensure that no Master transmission occurs before all the SLAVE nodes are active.
The MASTER protocol is entirely managed by the PLC using the 5 functions described above.
The PLC must call these functions in the following order:
If the functions are executed in the wrong order, the transmission will stop with error code 1 in
the VN indicated by FUN110 (see description of errors a little below).
FUN110 <PAR1>
Ex: FUN110 40 0 ; on the VN40 the protocol would write down the error code
o: VN10 = 40
FUN110 VN10 0 ; on the VN40 the protocol would write down the error code
o: VN30 = 2
VN31 = 1
FUN111 VN30 VN31
Ex: FUN113 70 2
o: VN 30 = 70
VN31 = 2
FUN113 VN30 VN31
The PLC software must be written so that no packet is begun before checking the protocol status
to make sure that it is Ready.
In the case of error, such as a TimeOut, the protocol status is set to 6 and the relative error code
is written in the error VN initialized with FUN110; all send data requests will be blocked as long
as the error VN is other than 0: this allows time to recognize the error and manage the reset
function that must, of necessity, terminate with a call to FUN110 to reset the error VN.
IMPORTANT:
The functions described must be executed in the indicated order (from 110 to 113); an incorrect
order of execution will set the error VN to the relative code and will block communication.
EXAMPLES
VB Number = 1024
VN Number = 1454
VQ Number = 304
DO Number = 16
DI Number = 16
Read the VB100 from node 1 and write in the VB300 MASTER
MASTER NODE 1
VB300 VB301 VB302 VB303 VB304 VB100 VB101 VB102 VB103 VB104
Read VB single
Read output 1 from the node 1 and write in the VB310 of the MASTER
MASTER NODE 1
VB310 VB311 VB312 VB313 VB314 DI1 DI2 DI3 DI4 DI5
To read the output 2, the first parameter of the FUN112 should be 1043, for the output 3 will be
1044, etc..
Read the VB from 1 to 10 from the node 1 and write from the VB60 of the MASTER
MASTER NODE 1
VB60 VB61 .......... VB68 VB69 VB1 VB2 ........... VB9 VB10
Copy 10 VB of the SLAVE, starting from VB1, on MASTER, starting from VB60 (to 69)
Read the inputs 5 and 6 from the node 1 and write them in the VB 75 and 76 of the
MASTER
MASTER NODE 1
Copy 2 digital inputs, starting from the input 5, on MASTER, starting from VB75
(to 76)
MASTER NODE 1
1
Set only VB20 to ON and no writing on MASTER
To reset the VB20 should execute FUN112 with the second parameter to 0.
Set VB 21 of the node 1 depending on the value of the VN90 of the MASTER
MASTER NODE 1
Set VB21 of the SLAVEON depending on the value of VN90 of the MASTER
Read the VN2 and VN3 from the SLAVE and write them on the VN70 and VN71 of the
MASTER
MASTER NODE 1
Copy 2 VN of the SLAVE, starting from VN2, and write them on the VN70 and 71 of the
MASTER
Write on the VN 200, 201, 202 of the SLAVE the value of the VN 100, 101, 102 of the
MASTER
MASTER NODE 1
of the
CopySLAVE
3 VN of the
the value of starting
MASTER, the VN 100
fromof the MASTER
VN100, on SLAVE, starting from VN200
MASTER NODE 1
Read the VQ3 and 4 of the SLAVE and write them on the VQ30 and 31 of the MASTER
MASTER NODE 1
Read VQ3 and 4 of the SLAVE and write them in VQ30 and 31of the MASTER
In the SIPRO MODBUS SLAVE protocol the VQ starting from the address 1456:
Address VQ
1456 1
1458 2
1460 3
1462 4
1464 5
.. ..
Write on VQ10 and 11 of the SLAVE the value of VQ150 and 151 of the MASTER
MASTER NODE 1
In the SIPRO MODBUS SLAVE protocol the VQ starting from the address 1456:
Address VQ
1456 1
1458 2
1460 3
1462 4
1464 5
1466 6
1468 7
1470 8
1472 9
1474 10
.. ..
In the SIPRO MODBUS SLAVE protocol the digital output starting from the address
1042:
Examples:
1. Read VBs from 1 to 16. In this case, it will be necessary to use a function code 01
defining number 1 as first coil and 16 as the number of coils to read.
2. Read digital outputs from 19 to 25. In this case, it will be necessary to use a function
code 01 defining the number 1043 at first coil and 7 as the number of coils to read.
3. Read inoputs from 5 to 12. In this case, it will be necessary to use a function code 02
defining the number 1 as first input and 16 as the number of coils to read.
4. Read the VNs from 5 to 18. Use a function code 03 with 5 as starting index and 3 as
number of registers to read.
5. Read the VQs from 200 to 202. Use a function code 03, in this case, ISO PLC is used
to define 864 as the starting index (464 + 200*2) and 6 as the number of registers to
read. If PLC LADDER is used, the starting address will be 1854.
6. Writing VB260. Use function code 05, coil index = 260, then write the value 0 or 1.
7. Write output 25, Use function code 05, coil index = 1049 then write the value 0 or 1.
8. Write VN256. Use function code 6 or 16, holding register index = 256, then write a
value between 32767 and 32767
9. Write VQ5. Use function 16, the holding register index varies depending on whether
you are using ISO PLC or PLC LADDER. In the first case, the index will be equal
to 474, in the second case to 1464. The settable value must be between -2147483.648
and 2147483.648.
Ex: FUN115 10 9
Mappatura variabili
VN Description
First VN First VB shared
+1 First coil shared
+2 First VB/Coil shared
+3 First Uscita Digitale shared
+4 First coil shared
+5 Number Outputs/Coil shared
+6 First Digital Input shared
+7 First coil shared
+8 Number Inputs/Coil shared
+9 First VN shared
+10 First Register shared
+11 Number VN/Register shared
+12 First VQ shared
+13 First Register shared
+14 Number VQ/Register shared
SLAVE
VB0 MASTER
COIL 1
VB499
VB500
COIL 199
100 VB COIL 200
VB599
VB600
COIL 299
COIL 300
COIL 399
Dig Out 1
COIL 400
COIL 415
DO 09
15 DO COIL 416
DO 10
DO 25
DO 26
INGRESSI
Dig In 1
INPUT
COIL 24
399
INPUT
COIL 25
400
DI 04
DI 05 5 DI INPUT
COIL 29
415
INPUT
COIL 30
416
DI 10
DI 11
SLAVE
VN0 MASTER
REGISTER
VN49
VN50
REG 19
200 VN REG 20
VN249
VVN250
REG 249
REG 250
REG 299
VQ0
REG 300, 301 = VQ15
REG 302, 303 = VQ16
VQ14
50 VQ
VQ15
To have the mapping represented above, on the PLC SLAVE will be executed the FUN115 after
setting its VN as follows:
Variables Mapping
VN Value Description
First VN 500 First VB shared
+1 200 First coil shared
+2 100 Number VB/Coil shared
+3 10 First Digital Output shared
+4 400 First coil shared
+5 15 Number Outputs/Coil shared
+6 5 First Digital Input shared
+7 25 First coil shared
+8 5 Number Inputs/Coil shared
+9 50 First VN shared
+10 20 First Register shared
+11 200 Number VN/Register shared
+12 15 First VQ shared
+13 300 First Register shared
+14 50 Number VQ/Register shared
For all other function codes, error code 01 is returned as in the Modbus specifications.
1. Movement optimized with automatic choice of the shortest route (eg from 10 degrees to 345
the movement happens anticlockwise via the 0 and 25 degrees along then move)
0 = classical movement
1 = optimized movement
2 = movement with specific direction
3 = optimized incremental movement
NOTE: Setting values not previewed make it impossible the movement of the axe and, if in
automatic cycle, causing the interruption of the execution of the program with an error code.
NOTE: For the axes type rotating table is required to specify in the parameters axes the
following values:
NOTE: the functions of special handling for rotating table are available only on particular
firmware.
Limitations
The special handling work with single placements (start and stop) and displacements < 360
degrees (ie it is not possible to program the execution of a displacement higher than a turn).
Details implementation
At the beginning of each movement the axe level is reported within the turn [0 - 360].
The target level specified is altered according to the needs of active handling (eg optimized
displacement from 10 to 345 degrees becomes a displacement from 10 to -15).
To view the level only in the interval [0 - 360] should be programming the variable PLC "display
module" (VN365 - VN_VIEW_MOD - variable bit).
18.10.2000
The functions for the Rotating Table are enabled by the VB421, also for each axe there is a VN,
starting from VN348, to specify the type of movement required.
Scale factor
VN333 contains the number of the first VQ used as Scale factor (0 = scale factor disabled).
E.g.: in a control that can manage up to 4 axes, by setting VN333 to a value of 251, you will
have variables VQ251 to VQ254 containing the scale factor applied to the axes:
Setting VN333 to 0 disables the scale factor; this is equivalent to using the scale factor with all
variables set to the value 1.000.
Specularity
By setting negative values for the scale factor, it is possible to obtain specular movements.
Example:
VN333 = 251
VQ251 = -1.000
VQ252 = 1.000
VQ253 = 1.000
VQ254 = 1.000
The positions of the axis 1 will change sign, thus obtaining specular movement.
ISO Programming
More advanced configurations of the Numerical Control provide instructions for linear and
circular interpolation with or without third tool orientation axis.
The Linear Interpolation instruction brings the X and Y axes from their current position to the
position specified following a straight line.
Circular Interpolation instructions move the X and Y axes along an arc of circumference (or
along a complete circumference) in a clockwise or counter-clockwise direction, given the
coordinates of the center and the final point.
To create user programs that provide linear or circular interpolation, it is necessary:
to have: a CAD/CAM program for the generation of the ISO file,
or by editing files, on NC or PC, through the specific instructions corresponding to the Gs
and, in that case, the generated files will have the extension *.eep. This second solution is
only possible if the firmware is interpolated and thus provides for its own internal ISO
interpreter.
% Begin program
{ Begin comment
G Movement instructions
G0 rapid movement
G1 linear movement
G2 arc of circumference in clockwise direction
G3 arc of circumference in counter-clockwise direction
Note: the G2 and G3 instructions can have 1 additional axis (helical interpolation).
G45 3rd axis of interpolation with angle of orientation parallel to the direction of
advancement
NOTE: the change plane of interpolation (instructions G17, G18 and G19)
set the external tool side mode (G43). For this reason, any instructions that
set the tool side, type G41, G42 and G45, are executed after the change
plane instruction.
G101 enables HA
G102 disables HA
G103 enables HA (without explicit angle).
G220 and G221 release the axes from the interpolation group
G311 and G312 set the Profile by Points (PPP) mode
G216 Personalization of the interpolation plane
G321, G322, G323 and G324 set the interpolation mode with G1, G2 and G3
The implicit call characteristics (G101, G102 and G103) are propagated forward and back in
calls to subroutines (i.e., if a G103 instruction is executed in a subroutine, the implicit call to a
subroutine remains active even in the calling program.
H Wait time
M Call to a subroutine
M0 gosub 9700
M1 gosub 9701
M3 gosub 9703
M4 gosub 9704
M5 gosub 9705
: :
M86 gosub 9786
M87 gosub 9787
M88 gosub 9788
M89 gosub 9789
The Mxx codes used as Gosub to subprogram are from M00 to M89 (excluding M02 and M30).
There is the possibility of executing the "M" functions (prog. 97xx) from the page in Multiple
Manual with the [PRG] key.
M2 end program
M30 end program
M93 VBi = ValB assigns the value ValB (constant or VB, even with index
greater than 255) to VBi
M94 VNi = ValN assigns the value ValN (constant or VN, even with index
greater than 255) to VNi
M95 VQi = ValQ assigns the value ValQ (constant of VQ) to VQi
M100 [J|B] [#|N] ValN jump to the inside of the program (GOTO)
unconditioned
M101 [VB|VN|VQ]i [<|<=|=|>=|>|!=] [ValB|ValN|ValQ] [J|B] [#|N] ValN
jump to the inside of the program (GOTO) with condition
where:
J = absolute jump
B = offset with respect to the current block
# = line number of the file
N = block number (label)(available from 5.09 version)
N Block number
S Sets VN254
T Sets VN255
The following example illustrates an ISO file that can be sent to the NC and interpreted and
executed by the Numeric Control.
instruction Comment
%12 program 12
G103P1000VQ0 enables ha:prg 1000 angle in vq0
G60 cont move
G45 3rd axis parallel to advancement
G55 N 0 origin 0
M93 VB49 = 1 VB 49 = 1
M95 VQ187 = 4 vq 187 = 4
M95 VQ223 = 50 vq 223 = 50
M94 VN110 = 1000 VN 110 = 1000
M97 VN137 = 4 VN 137 = 4 e gosub 9797
G55 N 2 origin 2
G0 X135.5175 Y213.2669 positions x y axes to position
G1 Z-10 F500 axis z to -10 at speed 500 mm/min
G1 Z10 F500 axis z to 10 at speed 500 mm/min
G3 X864.4825 Y213.2669 I500 J439.951 circum ctr-clock center in 500 439 and end 864 213
G2 X873.9338 Y220 I873.9338 J210 circum clock center in 873 210 and end 873 220
G1 X1490 Y220 linear interpolation final positions X=1490 Y=220
G3 X1500 Y230 I1490 J230 circumf ctr-clock center in 1490 230 and end 1500
230
G1 X1500 Y540 linear interpolation final positions X=1500 Y=540
G3 X1490 Y550 I1490 J540 circumf ctr-clock center in 1490 540 and end 1490
550
G1 X10 Y550 linear interpolation final positions X=10 Y=550
G3 X0 Y540 I10 J540 circumf ctr-clock center in 10 540 and end 0 540
G1 X0 Y230 linear interpolation final positions X=0 Y=230
G3 X10 Y220 I10 J230 circumf ctr-clock center in 10 230 and end 10 220
G1 X126.0662 Y220 linear interpolation final positions X=126 Y=220
G2 X135.5175 Y213.2669 I126.0662 J210 circonf clock center in 126 210 and end 135 213
G1 Z-10 F500 axis z at -10 at speed 500 mm/min
G55 N 0 origin 0
M02 end program
To better understand the instructions listed in the table, you can refer to the manual describing
the NC instructions.
The ISO instructions recognized by the compiler have a syntax that varies depending on the type
of programming done. If I program directly on the NC, the table instructions have a different
syntax from those when I program with the PC editor. The latter faithfully follows the ISO
syntax and is illustrated in the manual describing the NC instructions (for programming from the
keyboard of the control, see Chapter 1 of this manual).
In programming with systems that support interpolation, it is also possible to set the linear
advance speed and avoid the stopping of the axes in the intermediate point between two
consecutive interpolations . This can be obtained in two different ways: with the instruction NO
WAIT AX and with the instruction CONT MOVE.
CONT MOVE (code 38) Enables continuous interpolated movements
NO CONT MOVE (code 39) Disables continuous interpolated movements
Let's look at an example to explain the differences.
Suppose we want to realize the movement in figure 1 and find ourselves at point A.
Figure 1
One possible program is:
: FXY 20 // Set working speed
: NO WAIT AX //Disables waiting for axes in position
M0000464 Page 255
Chapter 2: General programming notes Programming manual
To avoid these problems, it is possible to use the 38 CONT MOVE obtaining continuous
interpolated movements but continuing to execute the program in step-by-step mode.
In order to give this instruction, you must be in normal mode (waiting for axes in position) and to
obtain continuous movements it is necessary that, in the current step, there are no time wait
instructions and that, in the next step, there are no operations on variables (because they are
evaluated before the movement).
In fact, after having given this instruction, if the program encounters an interpolated movement
instruction it checks if there is another one at the next step.
In this case, it places it in the buffer and waits for the first movement to finish and then executes
the next step.
If you wish to associate an action to a certain movement, you must enter the relative instruction
in the step of that movement, without creating a new step. In fact, if there is another step between
the two interpolated movement steps, you will not achieve continuity.
Circular Interpolation
By Circular Interpolation is meant the type of programming that provides for the use of ISO
instructions G1, G2 and G3. The Numerical Control manages this type of programming by
default. At the moment of power-on. i.e., the Numerical Control is enabled to manage this type
of programming. In the case in which the Numerical Control was set for another type of
programming to enable the NC to manage Circular Interpolation we must insert, at the
beginning of the listing, the ISO instruction
M753
At the moment of execution, the Numerical Control recognizes instruction M753 and enables the
movements executed with the ISO instructions G1, G2 and G3.
Circular Interpolation provides for working with a tool. I.e., with this type of programming, the
Numerical Control executes the work, taking into account tool correction and manages
instructions ISO G40, G41, G42, G43, G44 and G45.
Another characteristic of this type of programming is the possibility of performing movements
with non-standard geometries as well. In addition to movements within Cartesian orthogonal
systems, it provides the possibility of managing more complex systems of reference (such as
SCARA and Polari geometries, for firmware that provides for it).
Circular Interpolation provides the possibility of performing continuous movements (G60) or
with stop on the point. In the case in which we perform work with continuous movements, the
possibility is provided of controlling the angle of direction between two consecutive movements.
This is accomplished with instruction G103.
The following example illustrates the use of instruction G103.
Example:
%1 TEST1 {ISO program number 1}
G103P1000VQ0 {enabling stop work and jump to
{program 1000. In VQ0}
{there is the number that identifies the angle of direction }
{of the next movement}
G60 {enabling continuous movements}
G0 X0.000 Y100.000 {positioning axes before the work }
G42 {Tool to the left with respect to the direction of
advancement}
F2000 {setting working speed}
G1 X150.000 Y100.000 {linear interpolation. Moving axes to the positions}
{X=150 Y=100}
G3 X220.000 Y170.000 I150.000 J170.000 {circular interpolation.}
{Arc of circumference in counter-clockwise direction
{with center I=150 Y=170 and }
{final point X=220 Y=170}
G1 X245.000 Y170.000 {linear interpolation. Moving axes to the positions}
{X=245 Y=170}
M0000464 Page 257
Chapter 2: General programming notes Programming manual
The ISO program in the example performs continuous movements since it contains a G60
instruction. The instruction G103 P100 VQ0 is also present. This instruction enables control of
the angle of tangency between two contiguous movements. At the moment in which the angle
between the two continguous movements is greater than the value specified in the machine
parameter Tangency tolerance the NC performs the following operations:
Stops the continuous movement at the end of the section being executed.
Jumps to program 1000 in which NC instructions can be written for the correct
positioning of the tool.
The number that represents the angle of direction, in degrees of the movement after
the stop is placed in VQ0
In the ISO file example shown above, program 1000 is called after the execution of the G3
instruction and, after it has been executed, the work continues with the next G1 instruction.
The following work is performed:
C
D
A
The problem of stopping on the point doesn't exist in the passage from the rectilinear profile
(first G1 instruction) to the arc of circumference (G3 instruction) which is represented by point A
in the figure. In fact, in this case, the angle of tangency does not exceed the value of the machine
parameter Tangency tolerance. The same is also true for the points of tangency C and D.
N.B. ISO files must end with at least two empty lines.
N.B. The action of instruction G103 is cancelled by instruction G102.
#prog 1000
#name Program 1000
: TOOL ANGLE=VQ0
: END
#prog 1000
#name Program 1000
: AX 3 TO VQ0
: END
Profile by Points
By the term Profile by Points is meant the type of programming that provides for the use of
the ISO G1 instruction, while the G2 and G3 instructions are NOT enabled. In type of
programming, the profile is executed with a succession of brief linear movements composed of
ISO G1 instructions.
This type of programming does NOT provide for tool management and, therefore, ISO
instructions G40, G41, G42, G43, G44 and G45 are not enabled.
Since this is a type of programming that provides for contiguous linear movements, the use of
programming with continuous movements (G60) is recommended. Movements subsequent to the
one the Numerical Control is executing are loaded in a buffer which permits control of up to 30
future movements that the NC must execute in succession.
To enable the Numerical Control to execute this type of programming, we must set VB394 to 1.
N.B. Also see the documentation on VB394 in the NC programming manual.
The Profile by Points type of programming with continuous movements (G60) manages the
speed of the axes in the point of passage between one movement and the next. If, for example,
the NC must follow the following profile
A B D E
X
with the Profile by Points type of programming with continuous movement (G60), the speed
of the axes is managed at points B, C and D so as to obtain a fluid, non-jerky motion.
In general, the speed of the axes at the point of passage between two consecutive movements
depends:
On the speed F set by the program (expressed in [mm/min]). The higher the value of
speed F set, the greater the change of speed at the point of passage.
On the profile. The greater the angle, expressed in degrees, formed by the directions of
the two consecutive movements, the lower the speed between such movements.
On the value of the access parameters Acceleration time Tacc and Deceleration
time Tdec. The higher the value of Tacc and Tdec (low acceleration), the lower the
speed between two consecutive movements at the point of passage.
N.B.
The speed-time graph of an axis has the following shape:
Vx
Maximum speed
t
Tacc Tdec
The variation of the axes speeds of the NC is controlled by the speed of the Master axis. In the
case in which the NC carries out continuous movements (G60) in the Profile by Points type of
program, the following would be a representation of the speed-time graphic:
N.B. The Master axis is the fictitious axis inside the NC used for the calculation of the
trajectory.
Vmaster
P2
P1
t
T1 T2
The graphic shows the instants in which the passage between one movement and the next occurs
(T1 and T2). In these instants, the Numerical Control calculates the passage speed between two
consecutive movements so that the acceleration to which the axes are subjected due to the
change of the profile is compatible with the acceleration calculated on the basis of the parameters
listed previously. The sections in bold represent the changes of speed of the Master axis so as to
obtain the calculated speed at the points of passage between one movement and the next.
The following speed-time graphic shows how the speed rend of the Master axis changes in the
points of passage between two subsequent movements as a function of the machine parameter
Acceleration factor between two entities Kbtw.
Vmaster
P
S
R
t
T1 T2
As in the preceding example, T1 and T2 indicate the instants in which the passage occurs
between one movement and the next. In this case, the changes in speed for the two different
values of the parameter Ktwb are shown. In this example, the parameters are related in the
following manner:
where:
Kbtw1 Kbtw (section )
Kbtw2 Kbtw (section )
As can be seen in the case in which you uses Kbtw1, the value of the speed in instants T1 and T2
(points P and Q) is greater than with the use of Kbtw2 (points R and S).
During the calibration of the Numerical Control, you must evaluate the optimal value to attribute
to the machine parameter Acceleration factor between two bodies so as to obtain speeds in the
point of passage between two contiguous movements that are suitable to the work that you want
to execute.
Vmaster
T1 T2 t
The above graphic shows the speeds of the master axes for two different values of the parameter
Facc. In this example, the parameters are related in the following manner:
As you can see in the case in which we use Facc1, the speed value has a greater slope than with
the use of Facc2. This involves more brusque accelerations at the points of passage between two
movements and, therefore, greater stresses on the mechanics that carries out the work.
Even in this case, as for the parameter Kbtw, during the calibration of the Numerical Control,
you must evaluate the optimal value to attribute to the machine parameter Acceleration factor
so as to obtain a speed profile suitable for the work that you want to execute.
So, with Profile by Points programming with continuous movements (G60), the proper
calibration of machine parameters Acceleration factor between two entities and Acceleration
factor turns out to be essential, based on the considerations made above.
C
L I G F
A B D E
At the points of passage (A, B, C ), the Numerical Control makes a check of the speed of the
Master axis in conformity with what was said regarding machine parameter Acceleration factor
between two entities and Acceleration factor.
ISO instructions
G311 and G312
ISO instruction G311 sets the mode Profile by Points (PPP) and is equivalent to the following
sequence of instructions:
N.B: if the firmware does not provide for the Profile by Points mode (PPP), the G311 instruction
generates the error 311
Instruction G312; is like instruction G311, but activates the check of the mask of the axes that
must move and, between one movement and the other, the mask changes, a stop on point is
forced (equivalent to instruction M789).
G216
Instruction G216 allows personalizing and activating an interpolation plane for executing
circular interpolations with axes other than those anticipated by the standard planes (XY, ZX and
YZ activatable, respectively, by instructions G17, G18 and G19).
syntax:
the last parameter is optional and allows specifying any tangential axis (it will be activated only
if the machine parameter 'number tangential axes' is other than 0)
example:
G216 X A
sets axes X (1) and A (7) as the principal axes of the new interpolation plane
N.B.: the identifiers of the center of circumference in the configurable plane of interpolation are
'I' and 'J' associated, respectively to the first and second axis of the plane.
example of ISO file that uses the personalized plane of interpolation: (interpolation axes 1 - 6)
%40 Test XW
G0 X0 Y0 Z0 W0
G17
F500
G2 X100 Y100 I100 J0
H3
{change plane of interpolation
G216 X W
G3 X0 W100 I0 J0
H3
G1 X50 W50
M02
G225
Instruction G225 allows defining which axes must be checked to generate a possible stop on
point following the change of the movement mask. This instruction has effect only if combined
with instruction G312 (interpolation with only G1's and check of the movement mask).
example:
G312
G225 U
enables interpolations with only G1's with check of the mask; if in contiguous movements, the U
axis (4) intervenes and then stops or otherwise, a stop on point is generated; whether or not the
other axes are involved does not influence the generation of the stop on point. At any rate,
control of the change of direction remains enabled, parameterized by the machine parameter
'tangency tolerance' expressed in equivalent degrees, for which, independently of the axes
movement
mask, a change of equivalent direction that exceeds the value set generates a stop on point.
G220, G221
Instruction G220 and G221 are added to release the axes from the interpolation group
example:
Use of tools
The available instructions related to the management of tools are:
TOOL SN (code 41) Tool to the left of the path
TOOL DX (code 42) Tool to the right of the path
TOOL n (code 74) Sets tool number n
TOOL ANGLE = deg (code 75) Sets the tool angle (degrees)
They are indicated in the list of available instructions with the symbol .
In linear interpolation, it is necessary to specify the angle of the tool to identify its working point
(instruction 75). In circular interpolation, the angle is calculated and updated automatically to
allow the tool to remain tangential to the curve.
The angle is calculated with respect to the system of reference (see figure 2).
Starting from the edge or center of the tool, it considers the ideal vector that go towards the
working point: for the angle, it takes the one that forms this vector, oriented in the system of
reference.
For example, the first tool in the figure forms an angle of 0 and the second of -90.
Y
90
180 0 X
Figure 2
Y Y
-90
-90
X X
Instructions 41 and 42 allow setting the position of the tool with respect to the direction of
advancement.
Instruction 74 allows specifying the tool in use.
The length (or radius) of the tools is set in the Tool Parametes pages (option 7 of the Main
Menu). On power-up, tool number 1 is automatically set.
Attention!
In programs that use interpolation, do not modify Position Variable VQ98 (parameter Tool
length) and, if necessary, manage VQ99 (increment decrement tool).
Example 1
Now, let's look at a program that allows realizing the work in fig. 3.
Figure 3
: AX 1 TO 1150
AX 2 TO 900
: FXY 10 //Sets working speed: 10 mm/sec
: TOOL 2 // Use tool no. 2
: TOOL ANGLE = 90 //Tool angle = 90 degrees
: G41 //Tool to the left of the path
: G1 X 1150 Y 1200 //Brings tool to point A
: NO WAIT AX //Disables waiting for axes in position
: G1 X 450 Y 1200 //Brings the tool to point B
: G3 X150 Y900 I450 J900
: G1 X 150 Y 500.000
: G3 X450 Y200 I450 J500
: G1 X 1150 Y 200
: G3 X1450 Y500 I1150 J500
: G1 X 1450 Y 900
: G3 X1150 Y1200 I1150 J900
: WAIT AX //Enables waiting for axes in position
: WAIT AX 1 IN QUOTE //Waits for the completion of the work
WAIT AX 2 IN QUOTE
: G1 X 1150 Y 1100 //Distances the tool
: AX 1 TO 0.000 //Brings the axes to 0
AX 2 TO 0.000
As usual, to obtain continuous interpolted movements, instead of NO WAIT AX you could use
instruction CONT MOVE, inserting it at step 7. In that case, step 17, relative to waiting for the
completion of the work, would disappear and step 16 (WAIT AX) would become:
: NO CONT MOVE //Disables continuous interpolated movements
Example 2
M0000464 Page 269
Chapter 2: General programming notes Programming manual
50 A B
C X
0 100
Figure 4
In this case, you cannot use instruction NO WAIT AX,since the connections are not circular and
you cannot obtain continuous work.
Supposing that we are already positioned at A, the steps having to do with the work are:
As you can see from the program (at step 6), it is necessary to take into account the length of the
tool to position it at the correct position.
For example, for working section A-B, it is necessary to arrive not in position 100 (axis 1) but
100+VQ98, i.e., incrementing the section by the length of the tool for the purpose of, then,
allowing its correct positioning for working section B-C (as we said, Position Variable VQ98
contains the value relative to the length or radius of the tool).
Similarly, if the work were also to continue in section C-O, it would be necessary to take it into
account in the position of the second axis and make it arrive at 0 - VQ98.
The steps relative to this case would be:
When during the automatic cycle, the NC detects a request to execute a program not present in
memory, if the management of the transmission of programs from a PC is enabled
(VB_USE_TX_PRG to 1), set VB_WAIT_TX_PRG (VB393) to 1 and write the number of the
program being waited for in VN_TX_WAIT_ PRG_NUM (VN338).
A suitable PLC logic will have to transform the requests of the NC into requests to the PC
(management of variables VB_START_TX, VN_TX_PRG_NUM, VN_TX_STEP_H and
VN_TX_STEP_L).
The PC must read VB_START_TX (VB386) to detect the begin transmission request.
If VN_TX_PRG_NUM contains a valid program number (1-9999), the name of the file to send
will be <num>.ISO (e.g., 35.ISO); if VN_TX_PRG_NUM contains the value 0, the name of the
file to be sent will be contained in a descriptive file suitably updated by the PC during the
selection of the program by the operator.
If the number of the starting step is greater than 0, the PC will send the ISO program starting
from the line of the specified line of the file.
The program must be sent in 128-byte data packets preceded by 2 bytes that define the code for
sending a temporary program ('4' and 16); the second byte must also contain any flags of
First_Packet (bit 6) and Last_Packet (bit 5).
Each send by the PC that does not fill the exchange buffer receives the response COM_READY
('O').
If the exchange buffer is filled, the NC sets VB_TX_BUF_FULL (VB387) to 1 and responds
COM_BUSY ('o'); subsequent sends with buffer full will have a response of NC ERROR ('E')
with code -2.
The PC must read VB_TX_BUF_FULL at 0 before making new transmissions.
VB_TX_IN_PR (VB388) is at 1 during the entire transmission phase; the NC can set it to 0 to
request the interruption of the transmission; sending packets after the first with VB_TX_IN_PR
in the 0 state will have a response of ERROR ('E') with code -1.
At the completion of the transmission of the program (last packet) the NC sets VB_END_TX
(VB389) to 1.
N.B.: With this section we set the restart of the program from the beginning only in the cases of
Automatic Execution End and Selection of a new program to execute.
If we wish to restart with other conditions (keys, inputs, etc.) it is sufficient to add them to the
input of the OR function.
It is also necessary to add the following delays in the management of VB256 (START):
N.B. In this example, several support variables are used (VN200, VN201 and VB600, VB601,
603,604,605). In the event you use this example in your own PLC program, you need to check
that these variables are not already used for other purposes.
Programming examples
Examples of logical external decoding
Suppose we want to drive a determined Numerical Control program by means of external logic
(this is only one example of programming and, in fact, the PLC can drive the execution of the
program whose number is contained in VN257 by setting VB265 to 1), using a group of 5 inputs
(such as: inputs from 10 to 14).
Suppose that input 10 is assigned the lowest weight (weight = 20 = 1) and input 14, the highest
weight (weight = 24 = 16).
The number of the program is contained in Numeric Variable VN0, which is initially set to 31
and, for every input found low, the relative weight of the input is subtracted from this variable.
If all the inputs are low (the number 0 is passed), the program terminates without driving any
program 1, otherwise it jumps to program VN0.
#prog 1000
#name Pippo
: VN0 = 31
: IF IN 10 GOTO LB1
: VN0 = VN0 - 1
:LB1 IF IN 11 GOTO LB2
: VN0 = VN0 - 2
:LB2 IF IN 12 GOTO LB3
: VN0 = VN0 - 4
:LB3 IF IN 13 GOTO LB4
: VN0 = VN0 - 8
:LB4 IF IN 14 GOTO LB5
: VN0 = VN0 - 16
:LB5 IF VN0 = 0 GOTO End
: JMP PROG VN0
:End END
Example of palletization
Now, let's look at a program example having to do with palletization.
In the following program, first axis X is scanned, then Y and finally Z, i.e., it first moves in the
XY plane and, once access to this plane is exhausted, we move the higher (or lower) one.
Figure 5
Figure 6
Program no. 11 is a subroutine for defining palletization which is to say that it defines the
number of pieces to scan along the three axes, the initial levels of the three axes and the
increments between the two positions for each axes (for the meaning of the symbols, also see
fig.5 and fig.6).
#prog 11
#Name DEFINITIONS
Program no. 12 is a subroutine that resets the variables, i.e., the Numeric Variables used as
indexes of the movements made along the three axes, of the flag indicating the end of
palletization and the Position Variables indicating the current position of the three axes.
In our program the initialization is conditioned by the presence of input 1 OFF.
#prog 12
#Name INITIALIZATION
Program no. 13 is a subroutine for positioning at the current point. Suppose that we first want to
scan the pieces on the XY plane (first along X and then along Y) and then on the XY plane at an
incremented Position Z.
This subroutine then executes the suitable adjustements of the Positions of the three axes and the
control if work is finished along one or more axes. In the case of palletization terminated, it
returns the relative flag (VB159) set to 1.
#prog 13
#Name POSITIONINGS
What follows is the main, i.e., the main program that drives all the various subroutines.
At step 1, the variables are initialized, followed by the steps (not shown here) that manage the
suitable operations (the use of the tools, for example), then the positioning to the current point is
performed and other appropriate operations. If palletization is not finished, it resumes the cycle
again.
#prog 14
#name MAIN
Chapter 3
Variables
Variables are available in the Numerical Control that can be
used in programming the NC and PLC.
In particular, here we are will analyze in detail the Binary and
Numeric Variables managed by the PLC to dialogue
with/control the Numerical Control.
These variables allow directly managing several functions,
without having to make recourse to inputs, thus allowing
their use for other purposes.
Example:
VQ10 = VQ280 CORRECT
AX1 TO VQ280 WRONG
A part of the variables that already have predefined functions that can be very useful in
programming.
In other words, they are already dedicated to determined tasks and cannot be used as if they
were free support variables for programming.
Gradually, as new functions are implemented, contiguous variables to those already used are
dedicated to system purposes.
So, if you need free variables for programming the PLC, we recommend that you do not use
those close to the last ones used so that in the future you can be able to freely use new firmware
versions (for example, we recommend using VBs from 600 on and VNs from 600 on).
N.B. There are also three Position Variables dedicated to particular functions but that are only
used in the case in which you use tool management in the program.
The potential that these variables offer is significant and it will become clear in the pages that
follow; here, at any rate, it will be worth recalling that, if these variables are used to manage the
NC, the inputs remain free (and are thus useable for other purposes) that would otherwise have
served for those particular functions.
Here, below, we show all the Binary, Numeric and Position Variables available with
dedicated functions, giving a brief description of the functionality of each one.
N.B. In the event that the numerical control has less than 8 axes, the variables relative to the
axes that are not available are to be considered reserved and, therefore, cannot be used.
VB751
PLC only
Buffered
variables
VB1024
Numerical Variables
Index first VN shared betwenn CN and PLC =
VN0 50 from firmware version 3.41 of 10-12-97
NC only
(were 150)
VN50
Index first VN buffered =
100 from firmware version 3.41 of 10-12-97
VN100 NC-PLC (were 210)
Buffered
variables
N. total VN =
VN255 304 from firmware version 3.3 of 08-10-96
VN256 336 from firmware version 3.18 of 18-02-97
PLC only 352 from firmware version 3.28 of 14-05-97
368 from firmware version 3.32 of 08-07-97
VN464
432 from firmware version 3.41 of 10-12-97
464 from firmware version 3.58b of 07-07-99
Position Variables
VQ0
VQ98
VQ99 Riserved variables
NC only
VQ150
Buffered
variables
VQ255
VB79
VB80
VB100
Batt. buff. var.
VB101 If not associated to
Alarm Var. messages, VBs from 101 to
VB255 VB255 255 can be used as normal
VB256
Reserved variables.
VB600 N.B. they are not battery
buffered
VB750
VB751
Battery Buffered
Variables
VB1024
Numeric Variables
VN0
VN99
VN100
Battery Buffered
Variables
VN255
VN256
Reserved
VN600
VN1198
Battery Buffered
Variables
VN1454
Position Variables
VQ0
VQ97-VQ99
Reserved
VQ149
VQ150
VQ256VQ257
Battery Buffered
Reserved Variables
VQ303
Binary Variables
VB0
VB0
VB79
VB80
VB100 Batt. buff. var.
VB101
If not associated to
Alarm Var. messages, VBs from 101 to
VB255
VB255 255 can be used as normal
VB256
Reserved variables.
VB600 N.B. they are not battery
buffered
VB750
VB751
Battery Buffered
Variables
VB4095
Numeric Variables
VN0
VN99
VN100
Battery Buffered
Variables
VN255
VN256
Reserved
VN600
Position Variables
VQ0
VQ97VQ99 Reserved
VQ149
VQ150
VB79
VB80
VB100
Batt. buff. var.
VB101 If not associated to
Alarm Var. messages, VBs from 101 to
VB255 VB255 255 can be used as normal
VB256
Reserved variables.
VB600 N.B. they are not battery
buffered
VB750
VB751
Battery Buffered
Variables
VB4095
Numeric Variables
VN0
VN99
VN100
Battery Buffered
Variables
VN255
VN256
Reserved Variables
VN600
VN3840
Battery Buffered
Variables
VN4095
Position Variables
VQ0
VQ97-VQ99
Reserved
VQ149
VQ150
VB368 At each rising front: data inserted in input VB424 VB enabling non-standard password
VB369 At each rising front data extracted in output VB425 VB Emergency Reset
VB370 Data input: input value of the shift register VB426 VB initialization with Main errors in Single State
VB371 Data output: the output value of the shift register VB427 VB Single State output
VB372 If = 1, all shift register data is zeroed VB428 VB Start Automatic in Single State
VB373 1 = in F1 & auto. run access to all programs VB429 VB Start Test Status in Single State
VB374 Setting active origin (contained in VN306) VB430 VB Start Speed Test in Single State
VB375 Origin acquisition (contained in VN305) VB431 VB Start Semi-automatic in Single State
VB376 Acquisition position origin axis 1 VB432 VB Start resetting in Single State
VB377 Acquisition position origin axis 2 VB433 VB activation Single State
VB378 Acquisition position origin axis 3 VB434 VB disable Jog in Single State (if no jog active)
VB379 Acquisition position origin axis 4 VB435 VB disable Change page in Single State
VB380 Acquisition position origin axis 5 VB436 VB initializes objective position in Single State
VB381 Acquisition position origin axis 6 VB437 VB enable set Errors in multiple manual
VB382 Acquisition position origin axis 7 VB438 VB objective position in multiple manual
VB383 Acquisition position origin axis 8 VB439 VB automatic execution with CANopen errors
VB384 Enables continuous movements VB440 VB Profibus management disable
VB385 Program management from PC VB441
VB386 Program management from PC VB442
VB387 Program management from PC VB443
VB388 Program management from PC VB444
VB389 Program management from PC VB445
VB390 Enables F3 to see active processes VB446
VB391 If = 1 disables set program in F1 VB447
VB392 Reverses direction arcs VB448
VB393 Program management from PC VB449
VB394 Enables Profile by Points (G1) VB450
VB395 Restarts program from step 1 VB451
VB396 Disales speed setting in ISO file VB452
VB397 Signals program change by PC VB453
VB398 Value read in self-learning from F1-VB271 VB454
VB399 Allows setting automatic page VB455
VB400 Displays alarms on last line VB456
VB401 Disables display after Reserved VB457
VB402 In F1 sets current ax position VB458
VB403 In multiple manual sets incremental positions VB459
VB404 In F1 disables modify var VB460
VB405 Enables self-learning speed VB461
VB406 Enables modem management VB462
VB407 Enables movement storage VB463
VB408 Enables RETRACE backwards VB464
VB409 Enables RETRACE forward VB465
L VB410 RETRACE in progress VB466
L VB411 Next movement exists VB467
VB412 Enables rotation and translation VB468
VB413 Acquires origin angle VB469
VB414 Signals change program from NC VB470
VB415 NC selected in RS422 in multi-nc VB471
VB416 Centering point in self-learning Arc VB472
VB417 0 = no key pressed VB473
VB418 Axes phase in VN348-351 VB474
VB419 Disables output management by PLC VB475
VB420 Requests confirms data storage in F1 VB476
VB421 Enables functions for rotating table (dedicated FW) VB477
VB422 Axes positions with origins in self-learning VB478
VB423 Enables F6 for access parameters from automatic VB479
"L" indicates read-only variables.
VN256 Contains speed override (enabled by par = 1) VN306 No. origin to be set (with VB374 high)
VN257 Contains the number of the program to execute VN307 No. active (current) origin
VN258 Contains the code of the last key pressed VN308 No. main program
L VN259 Flags of axes in movement (bit 0 = axis1, bit 1= L VN309 No. current program
axis2)
L VN260 Contains position axis 1 (in mm) VN310 No. program to be transmitted
L VN261 Contains position axis 2 (in mm) VN311 Index 1st VN that contains the position error
L VN262 Contains position axis 3 (in mm) L VN312 Step number in execution (current) H
L VN263 Contains position axis 4 (in mm) L VN313 Step number in execution (current) L
L VN264 Contains position axis 5 (in mm) VN314 Step number begin TX (H)
L VN265 Contains position axis 6 (in mm) VN315 Step number begin TX (L)
L VN266 Contains position axis 7 (in mm) VN316 Axis 1 denomination tracking factor (if mode 1 and 4)
L VN267 Contains position axis 8 (in mm) VN317 Axis 2 denomination tracking factor (if mode 1 and 4)
VN268 Counter IRQ TPU encoder 1 VN318 Axis 3 denomination tracking factor (if mode 1 and 4)
VN269 Counter IRQ TPU encoder 2 VN319 Axis 4 denomination tracking factor (if mode 1 and 4)
VN270 Counter IRQ TPU encoder 3 VN320 Axis 5 denomination tracking factor (if mode 1 and 4)
VN271 Counter IRQ TPU encoder 4 VN321 Axis 6 denomination tracking factor (if mode 1 and 4)
VN272 Axes ON/OFF with play recovery disabled VN322 Axis 7 denomination tracking factor (if mode 1 and 4)
VN273 Axes ON/OFF with permanent intertia space VN323 Axis 8 denomination tracking factor (if mode 1 and 4)
VN274 Axes with Rollover enabled VN324 Axis 1: tracking mode [0-1]
VN275 Reserved VN325 Axis 2: tracking mode [0-1]
VN276 Trk.fact.(x1000 with sign) encoder VN284 (mode 0) VN326 Axis 3: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN277 Trk.fact.(x1000 with sign) encoder VN285 (mode 0) VN327 Axis 4: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN278 Trk.fact.(x1000 with sign) encoder VN286 (mode 0) VN328 Axis 5: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN279 Trk.fact.(x1000 with sign) encoder VN287 (mode 0) VN329 Axis 6: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN280 Trk.fact.(x1000 with sign) encoder VN288 (mode 0) VN330 Axis 7: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN281 Trk.fact.(x1000 with sign) encoder VN289 (mode 0) VN331 Axis 8: tracking mode [0-1]
Tracking factor numerator (mode 1 and 4)
VN282 Trk.fact.(x1000 with sign) encoder VN290 (mode 0) VN332 Contains the index of the 1st VQ offset origin
Tracking factor numerator (mode 1 and 4) acquisition
VN283 Trk.fact.(x1000 with sign) encoder VN291 (mode 0) VN333 Contains the index of the 1st VQ scale factor
Tracking factor numerator (mode 1 and 4)
VN284 No. of tracking encoder enabled by VB360 L VN334 Contains the index of the emergency error
VN285 No. of tracking encoder enabled by VB361 L VN335 Contains the parameter of the emergency error
VN286 No. of tracking encoder enabled by VB362 VN336 Contains the number of the active program in F1
VN287 No. of tracking encoder enabled by VB363 VN337 Contains VQ index last position (tool coord.)
VN288 No. of tracking encoder enabled by VB364 VN338 Program number waiting to be received
VN289 No. of tracking encoder enabled by VB365 VN339 Contains the number of the selected axis
VN290 No. of tracking encoder enabled by VB366 VN340 VQ index speed set-VB396
VN291 No. of tracking encoder enabled by VB367 VN341 Value read learning by F1-VB271
VN292 Override independent axis 1 (enabled by param.=2) VN342 Starting program numer in F1
VN293 Override independent axis 2 (enabled by param.=2) L VN343 Page displayed in Automatic
VN294 Override independent axis 3 (enabled by param.=2) VN344 For setting page in Automatic
VN295 Override independent axis 4 (enabled by param.=2) L VN345 NC error index
VN296 Override independent axis 5 (enabled by param.=2) L VN346 NC error parameter
VN297 Override independent axis 6 (enabled by param.=2) VN347 Zeros only the specified axis
VN298 Override independent axis 7 (enabled by param.=2) VN348 Self-learning speed axis 1 Phase axis1
VN299 Override independent axis 8 (enabled by param.=2) VN349 Self-learning speed axis 2 Phase axis2
VN300 No. data present in shift register VN350 Self-learning speed axis 3 Phase axis3
VN301 No. START program VN351 Self-learning speed axis 4 Phase axis4
VN302 VQ index axis positions in emergency VN352 Self-learning speed axis 5 Phase axis5
VN303 VQ index interpolation speed set (10 mm/min) VN353 Self-learning speed axis 6 Phase axis6
VN304 VQ index last position reached with stop VN354 Self-learning speed axis 7 Phase axis7
VN305 No. origin to acquire (with VB375 high) VN355 Self-learning speed axis 8 Phase axis8
Notations
read only variables (its is possible to write a value in these variables but it has no
effect).
VB256 VB_START
If set to 1, starts the execution of the Automatic cycle.
N.B. See the explanation of the Automatic cycle in chapter 6 of the programming manual.
The transition on VB256 is performed by the PLC.
N.B. See documentation paragraph Key Codes and paragraph Automatic in the
programming manual.
VB257 VB_STOP
1 = STOP
If set to 1, causes a stop of the Automatic cycle or the movement in progress (such as the test
positioning function).
To stop the execution of the program in Automtic, just provide an impulse (transition 0-1) in
VB257. In this way, the execution program is interrupted at the step at which it is found.
N.B. See the explanation of the Automatic cycle in chapter 7 of the programming manual. .
The transition on VB257 is performed by the PLC.
In some controls (Siax 300 and Siax 150) digital input 2 is associated to the [Stop] key of the
Numerical Control. So, using the PLC logic, it is easy to associate the event of pressing the
[Stop] key to VB257 (as explained in chapter 7 of the programming manual).
VB258 VB_JOG_P
1 = JOG+.
If set to 1, VB258 forces the manual movement of the selected axis. The management of the 0-1
transition on VB258 is performed by the PLC.
The Numerical Control allows the manual movement of the axes. Normally, the movement is
associated to the keys [JOG+], forward axis movement, and [JOG-], backward axis movement.
N.B. See the explanation of the Manual cycle in chapter 6 of the programming manual. . The
transition on VB258 is performed by the PLC.
In some controls (Siax 300 and Siax 150) digital input 3 is associated to the [JOG+] key of the
Numerical Control. So, using the PLC logic, it is easy to associate the event of pressing the
[JOG+] key to VB258 (as explained in chapter 6 of the programming manual).
VB259 VB_JOG_M
1 = JOG-.
If set to 1, VB259 forces the manual movement of the selected axis. The management of the 0-1
transition on VB259 is performed by the PLC.
The Numerical Control allows the manual movement of the axes. Normally, the movement is
associated to the keys [JOG+], forward axis movement, and [JOG-], backward axis movement.
N.B. See the explanation of the Manual cycle in chapter 6 of the programming manual.
In some controls (Siax 300 and Siax 150) digital input 4 is associated to the [JOG-] key of the
Numerical Control. So, using the PLC logic, it is easy to associate the event of pressing the
[JOG-] key to VB259 (as explained in chapter 6 of the programming manual).
VB260 VB_EMERG
Causes the NC to go to a state of emergency (has the same behavior as the EMERGENCY input).
The message EMERGENCY FROM PLC is displayed.
When you set VB260 to 1, the numerical control goes in a state of emergency. The resetting of
the variable must be performed by the PLC. I.e., VB260 must be set to 0 from the PLC to cause
the NC to exit from the state of emergency.
The effects of the state of emergency on the Numerical Control depend on the value assumed by
the parameter Emergency Type. In fact, at the moment the emergency occurs, i.e., when the
variable VB260 is set to 1, the control performs all the operations necessary to block the
operation of the system (such as blocking the movement of the axes).
For this reason, it is advisable to read the description of the parameter Emergency Type in the
installation manual of the Numerical Control in chapter 3.
N.B. For an example of the PLC logic for managing variable VB260, we recommend you
read chapter 7 of the programming manual.
VB261 VB_PRG_RUN
Indicates that a program is running in the Automatic cycle of the NC.
When you enter the Automatic page (Automatic Cycle item on the Main Menu of the NC) of the
Numerical Control, you can launch a program in automatic execution (see chapter 7 of the
programming manual). When the program is running, and only in this situation, variable VB261
is set to 1 from the control. The value of VB261 can only be read by the PLC.
VB262 VB_STEP_STAND_BY
If set to 1, it suspends the execution of the Automatic cycle at the beginning of the step after the
current one. In this case the status number is 1. When the value is brought back to 0, execution
resumes.
Together with variables VB263 and VB264, it constitutes a set of variables for executing a
program in Automatic with step-by-step control.
VB263 VB_NO_MOVE_AX
If set to 1, it suspends execution of the Automatic cycle before executing the movement
instructions in the first step that contains them (it disables axis movement).
In this case the status number is 8.
When the value is brought back to 0, execution resumes.
Together with variables VB262 and VB264, it constitutes a set of variables for executing a
program in Automatic with step-by-step control.
VB264 VB_EDGE_STEP
If set to 1, it executes a step of the Automatic cycle at each negative transition of VB262 (i.e.,
each time that the step is reenabled).
Together with variables VB262 and VB263, it constitutes a set of variables for executing a
program in Automatic with step-by-step control.
VB265 VB_SET_PRG_NUM
If set to 1, the number of the program to execute is set to that contained in VN257. When set to
1, the effect of VB265 differs depending on the whether the Numerical Control is in Multiple
Manual (see VB266) or in Automatic.
VB265=1 in Automatic
VB265 set to 1 by the PLC when the control is in Automatic has the effect of setting
the program to be executed (item Prog in the Automatic display) equal to the number of
the program specified in VN257. In this case, only the number of the program to
execute is set, but execution does not start. To begin execution, you must set VB256 to
one as is normally done.
VB266 VB_MAN_MULTI
If set to 1, it enables the possibility of moving several axes at the same time.
JOG+ and JOG- (VB258 and 259) lose their meaning, while the VBs from 296 to 303 assume
the meaning of JOG+ for the respective axes, and those from 336 to 343 that of JOG-.
Sipro Numerical Controls provide two modes of Manual operation: manual and multiple manual
(see chapter 5 of the programming manual) . To activate the Multiple Manual you must set
VB266 to 1 from the PLC.
In multiple manual mode, the Numerical Control allows movement of the axes in automatic
mode. I.e., each axis can be moved autonomously using the VBs from VB296 to VB303 and
from VB336 to VB343.
N.B. See the VBs from VB296 to VB303 and from VB336 to VB343
VB267 VB_END_PRG
If set to 1, it signals the end of the execution of the program of the Automatic cycle of the NC.
When you enter the Automatic page (Automatic Cycle item on the Main Menu of the NC) of the
Numerical Control, you can launch a program in automatic execution (see chapter 6 of the
programming manual). When the program terminates, the control sets VB267 to 1. The value of
VB261 can only be read by the PLC. It remains 0 if the program is interrupted by a stop.
VB268 VB_ACCESS_KEY
If set to 1, it allows access to all the functions that require the key.
The Program Management menu (Program Management on the Main Menu of the NC) lists all
the operations that can be carried out on NC programs. Some of these operations are allowed
only if VB268 is set to 1 by the PLC. The following table lists the operations that can be
performed on programs from the Program Management menu and those that are only accessible
if VB268 is set to 1 (the operations on programs correspond to the items on the Program
Management menu).
VB269 VB_NO_SETVAR
If set to 1, blocks access to the Variable Setting menu (F1).
It is possible to set VB269 to 1 from the PLC so that the F1 key functions are disabled. This is to
say:
N.B. See chapter 2 of the programming manual for information about setting variables using
the F1 key.
VB270 VB_TOOL_COORD
If set to 1, the movements are carried out in tool coordinates.
In the case in which checks are made on jobs that use the tools, the Numerical Control knows
how the tool itself is made. To communicate the shape of the tool to the Numerical Control, you
must specify the parameters that define it. To set the tool parameters, select the item Tool
Parameters from the Main Menu of the NC (see chapter 7 of the programming manual).
During the work, the control must take into account the shape of the tool to calculate the right
trajectory coordinates. Setting VB270 to 1 enables the Numerical Control to also take the
dimensions of the tool into account when calculating the trajectory.
N.B. See NC instructions 40 G40, 41 G41 and 42 G42 in the instructions chapter.
VB271 VB_TEACH
If set to 1 and the NC is in Self-learning, it generates a program step depending on the self-
learning mode.
The Sipro Numerical Control provides an operating mode called Self-learning (see chapter 2 of
the programming manual). In this mode, the Numerical Control generates the NC instructions
automatically, depending on the type of self-learning used, by setting VB271 to 1 from the PLC.
VB272 VB_TEACH_LINE
If set to 1, allows interpolated self-learning.
If set to 0, allows single-axis self-learning.
The meaning of VB272 depends on whether the firmware of the Numerical Control is
interpolated (and, thus, enabled to execute interpolated instructions) or not, on whether you use
the F2 or F3 key and on the value of VN362. For the explanation of the various meanings of
VB272, you must read the relative paragraph in chapter 2 of the programming manual.
VB273 VB_CN_IN_SETVAR
If set to 1, it signals that I am in Variable Setting (F1).
N.B. See VB269 and the paragraph on setting variables from F1 in chapter 2 of the
programming manual.
VB274 VB_LOC_REM
The Numerical Control can find itself in a Remote or Local state. The letters LOC or REM on
the upper left of the display, inside the Main Menu functions of the NC, indicates in what state
the Numerical Control is found.
VB274 is used to establish in which of the two states we want the control to operate.
If VB274 is set to 1, the SIAX is in REMOTE control mode.
If VB274 is set to 0, the SIAX is in LOCAL control mode .
N.B. Also see VB275 and the paragraph on REMOTE/LOCAL mode in chapter 6 of the
programming manual.
VB275 VB_MAN_AUTO
In the case in which the NC is controlled in REMOTE mode (VB274=1), it can only be found in
a state of Automatic or Manual. VB275 is used to determine in which of these two latter states
we will make the NC operate.
If VB275 is set to 1, the SIAX is set to Automatic (this is valid only if the SIAX is in REMOTE
control mode). If one or more axes are not zeroed, it proposes the resetting function, after which
automatic mode itself is reproposed.
If VB275 is set to 0, the SIAX is placed in Manual mode.
N.B. Also see VB274 and the paragraph on REMOTE/LOCAL mode in chapter 6 of the
programming manual.
VB276 VB_ST_MENU
If equal to 1, it indicates that the SIAX is found in the Main Menu.
VB277 VB_ST_AUTO
If equal to 1, it indicates that the SIAX is found in Automatic.
VB278 VB_ST_MANU
If equal to 1, it indicates that the SIAX is found in Manual.
VB279 VB_ST_ACQ_PAR
If equal to 1, it indicates that the SIAX is found in the Parameter Acquisition.
VB280 VB_ST_TEST
If equal to 1, it indicates that the SIAX is found in Test.
VB281 VB_ST_TEST_VEL
If equal to 1, it indicates that the SIAX is found in Speed Test.
VB282 VB_ST_SEMI_AUTO
If equal to 1, it indicates that the SIAX is found in Semi-automatic.
VB283 VB_ST_OMNI
If equal to 1, it indicates that the SIAX is found in Single State.
VB284 VB_ST_AZZ
If equal to 1, it indicates that the SIAX is found in Resetting.
VB285 VB_ST_EDIT
If equal to 1, it indicates that the SIAX is found in the Editor.
VB286 VB_ST_EME
If equal to 1, it indicates that the SIAX is found in Emergency.
VB287 VB_AX_ENABLE
Normally, the Numerical Control uses digital output 1 to enable operations. Operations can be
enabled (output 1 =1) or disabled (output 1=0). This information can also be read on VB287,
which is 1 when digital output 1 is 1 and 0 when digital output 1 is 0.
VB287 is useful when you want to use digital output 1, which is usually used to enable
operations, in a different way (for example, to power-on or power-off a switch). In fact, in this
case, information about enabling operations is always reported VN287 while it is NOT reported
on digital output 1. To free digital output 1, you must set the parameter Emergency Type in a
certain way. More precisely, you must set this parameter with values from 3 to 5 seconds based
on the table shown in the explanation of the parameter in the paragraph Machine Parameters in
the installation manual.
N.B. Digital output 1 is 1 (operations enabled) when NOT in Test and when all the NC
parameters are correct (i.e., NOT in a state of Emergency).
N.B. The documentation on VB288-VB295 and the description of the parameter
Emergency Type in chapter 3 of the installation manual.
VB288295 VB_FIRST_AX_DIS
If set to 1, disables axis movement (from 1 to 8).
If VB288 is set to 1, the control cannot carry out axis movement instructions. For example, if a
program must execute instruction 80 AX n TO m and VB288 is 1, then the control does not
carry out the movement and displays an axis movement error (see paragraph Automatic Cycle
Error Codes in chapter 6 of the programming manual).
This behavior of the system is valid both for VB288, associated to axis 1, and for the VBs from
VB289 to VB295, associated to the axes from 2 to 8.
N.B. Also see the documentation for VN375.
VB296303 VB_FIRST_AX_SEL
If set to 1, in manual the PLC selects (and it is also possible to select from the keyboard) the
number of the axis (from 1 to 8) to move, while in Multiple Manual, it has the function of JOG+
for the axis itself. In this latter case, setting one of the variables of the interval VB296-VB303 to
1 performs a movement of the axis corresponding to the increase of the position. I.e., in Multiple
Manual movement, an axis can be moved forward or backward in a manner independent from
the other axes. For example, to move axis 1 forward, I set VB296 to 1 from the PLC (even
associating it with a key on the keyboard).
So long as VB296 remains 1, the axis continues to move forward.
Each variable corresponds to an axis. VB296 corresponds to axis 1, VB297 to axis 2, and so on,
until VB303, which corresponds to axis 8.
N.B. See VB266 and chapter 5 of the programming manual.
VB304311 VB_FIRST_AX_IN_QUO
If 1, it indicates that the axis (from 1 to 8) has arrived in position.
During movement, the Numerical Control moves the axes to the position specified by the
executing program. To know whether the axes have arrived at the position preset in each
instruction, you use the VBs from VB304 to VB311. Each variable corresponds to an axis.
VB304 corresponds to axis 1, VB305 to axis 2, and so on, until VB311, which corresponds to
axis 8.
VB312319 VB_FIRST_AX_ZERO
If 1, it indicates that the axis (from 1 to 8) is zeroed.
Before carrying out the axis movement, you must always set the system of reference used for
calculating trajectories. To set the system of reference, you must perform a so-called Resetting
Axes. I.e., all the positions of the axes are fixed that will then be taken as the origin of the
system of reference (see chapter 8 of the programming manual and chapter 4 of the installation
manual). A VB from VB312 to VB319 is associated to each axis, by means of which you can tell
if the axis has been zeroed. If the VB of the axis that you are interested in moving is zeroed, then
its value will be 1. Each variable corresponds to an axis. VB312 corresponds to axis 1, VB313 to
axis 2, and so on, until VB319, which corresponds to axis 8.
VB320327 VB_FIRST_PID_DIS
If set to 1, disables the axis servo (from 1 to 8).
Sipro S.r.l. numerical controls provide a PID-type controller stage within the axis position
control system. The programmer is given the possibility of enabling the control stage or not by
using the VBs from VB320 to VB327. For example, by setting VB320 to 1, the PID control
stage is disabled for axis 1. Each variable corresponds to an axis. VB320 corresponds to axis 1,
VB321 to axis 2 and so on up to VB327, which corresponds to axis 8. If the servo is disabled, so
is the servo error alarm (see). When the variable is once again set to 0, its target axis is
assumed to be the current one, cancelling any difference with respect to its original position.
VB328335 VB_FIRST_SET_ZERO
If set to 1, its sets the zero encoder to the axis (from 1 to 8).
The correct operation of axis movement presupposes the presence of a system of reference. For
this reason, on power-up the Zero Axes procedure is executed, which is explained in chapter 4
of the installation manual. The position to which the resetting refers, i.e., the position that is
assigned to the axes at the end of the resetting procedure, is the Encoder Zero that is a parameter
of the axis, illustrated in chapter 3 of the installation manual.
In addition to the resetting procedure, you can attribute the encoder zero position to the axis in a
desired position by loading the value 1 in one of the VBs from VB328 to VB335. I.e., in manual
movement, for example, I can position the axis that interests me in a desired position and, in that
position, make it assume the encoder zero position. From that moment on, the movements
associated to that axis will make reference to the new reference system set with encoder zero.
For example, if you want to change the system of reference on axis 1, you position axis 1 in the
desired position in manual and set VB328 to 1. In this way, that position is the encoder zero
position and all subsequent movements of axis 1 will refer to it. Each variable corresponds to an
axis. VB328 corresponds to axis 1, VB329 to axis 2, and so on, until VB335, which corresponds
to axis 8.
VB336343 VB_FIRST_AX_JOG_M
In Multiple Manual it has the function of JOG- for the corresponding axis (from 1 to 8).
By setting one of the variables in the interval VB336-VB343 to 1, you perform a movement of
the axis corresponding to a decrease of the position. I.e., in Multiple Manual, an axis can be
moved forward or backward in a manner independent from the other axes. For example, to move
axis 1 backward, you set VB336 to 1 from the PLC (even associating it with a key on the
keyboard). So long as VB296 remains 1, the axis continues to move backward. Each variable
corresponds to an axis. VB336 corresponds to axis 1, VB337 to axis 2, and so on, until VB343,
which corresponds to axis 8.
VB344351 VB_FIRST_AX_HOLD_S
If set to 1, it delays the start of the axis (from 1 to 8) as lock as it doesn't turn back to 0.
If VB344 is set to 1, the Numerical Control cannot begin moving axis 1. For example, if VB344
is 1 and the NC must execute instruction 80 AX 1 TO 100, axis 1 does not begin the movement.
Only when VB344 is set to 0 does axis 1 execute instruction 80.
VB352355 VB_FIRST_IRQ_EN
If set to 1, it enables IRQ TPU of the encoder (from 1 to 4).
Among the Numerical Control's encoder inputs, there is an input (Z) that can be used as an
interrupt input (see encoder input diagrams in chapter 7 of the installation manual). This input is
usually used to signal the zero notch of the encoder with an interrupt, especially in the zero
cycle, but can also be used as an external interrupt input for other devices (such as piece-
counting photocells, for example).
The VBs from VB352 to VB355 are used to enable these interrupts. Each variable corresponds
to an axis. VB352 corresponds to axis 1, VB353 to axis 2, and so on, until VB355, which
corresponds to axis 4.
At the time in which I enable one of the 4 interrupts by setting the corresponding VB to 1, each
impulse on incoming signal Z increments a counter. Each input Z is associated to an enabling
VB that, in its turn, is associated to a VN, from VN268 to VN271, that contains the number of
impulses that occurred from the moment of enabling on.
VB360367 VB_FIRST_FOLL_EN
If set to 1, it enables the axis (from 1 to 8) to track the encoder of the VN (from 284 to 291).
The axes of the Numerical Control are normally moved following a trajectory calculated entirely
by the control itself. However, by acting on the VBs from VB360 to VB367, it is possible to
enable the axes to move with tracking (see paragraph Tracking Management in chapter 2 of
the programming manual ). In this case, the axes enabled for this function, called SLAVES,
track the movement of an encoder specified by the VNs from VN284 to VN291.
For example, if I want axis 1 to follow the trajectory of encoder 3, I place the value 3 in VN284,
I put 1 in VB360 and in VN276-283 and 316-323, the desired tracking ratio. Movement with
axis tracking can be done using various methods. These methods are explained in paragraph
Tracking Management in chapter 2 of the programming manual.
N.B. Also see the documentation for VN276-VN283, VN284-VN291, VN316-VN323 and
VN324-VN331
VB368 VB_SH_REG_LATCH_IN
The Numerical Control expects a PLC that has a shift register of variable size. The size of the
shift register has a maximum value of 1023 elements.
VB368 is used as a latch for the Data Entry and Reset functions.
N.B. For an explanation of the operation of the shift register, see the documentation in the
paragraph Use of the shift register in the Appendix of the programming manual.
N.B. Operations on the shift register are only enabled for dedicated firmware.
VB369 VB_SH_REG_LATCH_OUT
The Numerical Control expects a PLC that has a shift register of variable size. The size of the
shift register has a maximum value of 1023 elements.
VB369 is used as a latch for the Data Extraction and Reset functions.
N.B. For an explanation of the operation of the shift register, see the documentation in the
paragraph Use of the shift register in the Appendix of the programming manual.
N.B. Operations on the shift register are only enabled for dedicated firmware.
VB370 VB_SH_REG_IN
The Numerical Control expects a PLC that has a shift register of variable size. The size of the
shift register has a maximum value of 1023 elements.
VB370 is used as input data to the shift register for the Data Entry function.
N.B. For an explanation of the operation of the shift register, see the documentation in the
paragraph Use of the shift register in the Appendix of the programming manual.
N.B. Operations on the shift register are only enabled for dedicated firmware.
VB371VB_SH_REG_OUT
The Numerical Control expects a PLC that has a shift register of variable size. The size of the
shift register has a maximum value of 1023 elements.
VB371 is used as output data from the shift register for the Data Extraction function.
N.B. For an explanation of the operation of the shift register, see the documentation in the
paragraph Use of the shift register in the Appendix of the programming manual.
N.B. Operations on the shift register are only enabled for dedicated firmware.
VB372 VB_SH_REG_CLEAR
The Numerical Control expects a PLC that has a shift register of variable size. The size of the
shift register has a maximum value of 1023 elements.
VB372 is used to enable the Reset shift register function. I.e., the resetting of the shift register
only occurs if VB372 is 1.
N.B. For an explanation of the operation of the shift register, see the documentation in the
paragraph Use of the shift register in the Appendix of the programming manual.
N.B. Operations on the shift register are only enabled for dedicated firmware.
VB373 VB_DINAM_SETVAR
If set to 1, when you are in F1 and Automatic is running, you have access to all the programs
(not just to Main).
Pressing the F1 key has different effects depending on the settings of several VNs and VBs (to
see the various functions, see paragraph Variable Setting F1 key in chapter 2 of the programming
manual). VB273 is one of these variables used for managing the functioning of the F1 key. In the
case in which I press the F1 key and no starting program is set in F1 (VN342=0) and a program 1
is running (VB261=1), then:
If VB373=1, then, the variable setting instructions of program 9800 are managed.
If VB373=0, then the variable setting instructions of the Main program, whose number is
specified in VN308, are managed.
VB374 VB_SET_ORG
If set to 1, it sets as the active origin the one whose number is contained in VN306.
VB375 VB_GET_ORG
If set to 1, it enables the acquisition of the origin whose number is contained in VN305. The
positions acquired are those relative to the axes that have the corresponding VBs from VB376 to
VB383 active.
N.B. For additional explanations, consult the documentation for VN306, VB376-383 and
chapter 8 of the programming manual.
VB376383 VB_FIRST_AX_SET_ORG
If set to 1, it enables the acquisition of the origin positions of the axis (from 1 to 8).
To enable the acquisition of the origin, you must set VB375 to 1 from the PLC. The origin
acquired is that relative to the number specified in VN305. At this point, the positions are
acquired of those axes that have the VBs from VB376 to VB383 set to 1. Each variable
corresponds to an axis. VB376 corresponds to axis 1, VB377 to axis 2, and so on, until VB383,
which corresponds to axis 8.
N.B. In chapter 8 of the programming manual, there is a PLC example for the acquisition
of the origin for axes 1, 2 and 3. Also see the documentation for VB375 and VB374.
VB384 VB_CONT_MOVE
If set to 1, it enables continuous movement.
In programming with systems that support interpolation, it is also possible to set the linear
advance speed and avoid the stopping of the axes in the intermediate point between two
consecutive interpolations. If I set VB384 to 1 from the PLC, I enable the Numerical Control to
perform continuous movements when moving with interpolation.
VB385 VB_USE_TX_PRG
If set to 1, indicates the transmission of the program from a serial port (used for managing
programs from a PC).
VB385 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
N.B. For a better description of the utility of VB385, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.
VB386 VB_START_TX
It is set to 1 by the SIAX to ask the PC to begin sending the program (used for the management
of programs from a PC).
VB386 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
N.B. For a better description of the utility of VB386, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.
VB387 VB_TX_BUF_FULL
It is set to 1 when the exchange buffer is full (used for the management of programs from a PC).
VB387 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
N.B. For a better description of the utility of VB387, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.
VB388 VB_TX_IN_PR
If set to 1, indicates that the transmission of the program is in progress (used for the management
of programs from a PC).
VB388 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
N.B. For a better description of the utility of VB388, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.
VB389 VB_END_TX
If set to 1, signals the end of transmission (used for the management of programs from a PC).
VB389 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
N.B. For a better description of the utility of VB389, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.
VB390 VB_ENAB_F3
If set to 1, it enables the F3 function for viewing active processes.
In the automatic cycle, it is possible to display the active processes. To see the list of such
processes, with their relative number, name, step and status, you must press the F3 key. This
function of the Numerical Control is enabled by setting VB390 to 1.
VB391 VB_DISAB_F1_SET_PRG
If set to 1, when you enter F1, the current program is not set as the program to be executed.
Variable setting through the F1 key expects that the number of the program that is activated
using F1 is set as the number of the program to be executed; i.e., it is placed in the variable
VN308. However, in some cases, you can access a program to set variables by means of F1
without it becoming the program to be executed. VB391 is used to allow this. By setting it to 1,
the variable setting program called with the F1 key does not become the program executed with
a Start (i.e., it does not become the program 1 whose number is set in VN308).
For example, if before entering into variable setting mode with F1, the program to be executed
(displayed above in the Automatic screen after the word Prog.) is the one with number 13, while
the variable setting program that is called from F1 has the number 102, then:
If before pressing the F1 key to set the values of the variables, I set VB391 to 1 from the
PLC, then, when I return to the Automatic screen, the program that is executed following
a Start is program 13
If before pressing the F1 key to set the values of the variables, I set VB391 to 0 from the
PLC, then, when I return to the Automatic screen, the program that is executed following
a Start is program 102
N.B. Also see the documentation in paragraph Variable Setting F1 Key in the programming
manual and for VN336, VN342, VN308 and VB373.
VB392 VB_REV_ARC_DIR
If set to 1, it allows reversing the direction of the arcs and circumferences, i.e., it changes the
direction of travel from clockwise to counter-clockwise and vice versa.
The Numerical Control is able to carry out movements of the axes following arc of
circumference trajectories in a clockwise or counter-clockwise direction. The instructions for
carrying out such movements are 62 (G2) and 63 (G3). VB392 allows the control to change the
direction of movement of such instructions by setting them from clockwise to counter-clockwise
and vice versa. If, for example, the program that is being executed contains an instruction 62
(G2), then:
If VB392=0, then the control interprets the instruction in the usual way as a clockwise arc
of circumference
If VB392=1, then the control interprets the instruction in the reverse way and that is as a
counter-clockwise arc of circumference.
VB393 VB_WAIT_TX_PRG
It is set to 1 at the beginning of the wait for the start of program transmission and is set to 0 when
the transmission begins (used for managing programs from a PC).
VB393 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
VB394 VB_PROF_PER_PNT
If set to 1, it enables the execution of profile by points (G1), only for the firmware versions that
allow for it.
Some profiles that the control must follow consist of curves that are so complex they cannot be
executed by the Numerical Control with just instructions 62 (G2) and 63 (G3). The problem is
solved by allowing the control to follow the profile using only instruction 61 (G1), which only
executes linear movements. In executing a profile by points, the control executes straight
sections of variable length that follow the profile set. To enable this mode, set VB394 to 1.
N.B. Also see the documentation for instructions 61 (G1), 62 (G2) and 63 (G3)
VB395 VB_PRG_RESET
If set to 1, with the SIAX in Automatic and the Automatic cycle in stop, it restarts the execution
of the set program from step 1.
VB396 VB_DIS_SET_F
If set to 1, it disables the speed setting in ISO files (instruction F) in relation to what is contained
in VN340.
In ISO files, instruction F allows changing the speed of axis movement. If I set VB396 to 1, I
disable all the F instructions present in the ISO file that I want to execute. The new speed set is
that contained in the VQ whose index is specified in VN340. If VN340 is not >0, no speed is set.
VB397 VB_PC_CHG_PRG
It is set to 1 by the SIAX when the program to be executed is changed from the PC.
VB397 is used to manage the transmission of .ISO files from a PC to the NC without the file
being saved in memory (temporary file).
VB398 VB_APPR_F1
Contains the value that is read when VB271 is used as Enter in F1.
In the self-learning phase from F1, it is possible to self-learn the value of a VB. When in self-
learning by F1 and VB271 is set to 1 while the cursor is on a VB, the latter is loaded with the
value contained in VB398.
VB399 VB_CN_SET_PAGE
Allows setting the page displayed in Automatic from the PLC; when an impulse is given to this
VB, the page relative to what is contained in VN344 is displayed.
VB400 VB_VIEW_ALRM
Reserves the last line of the screen for the display of PLC alarms in F1 and F2.
Normally, alarms are displayed with the F4 key. However, by using the function keys
F1 and F2, it is possible to reserve the last line of the screen for the display of the alarm message
with the highest priority. To enable this display, you must set VB400 to 1.
VB401 VB_ENABL_RES_F1
If set to 1, in F1 the fields (variables and instructions) after the instruction RESERVED are
displayed, unlike when it is left as 0.
VB402 VB_QUO_AX_F1
During self-learning with F1 on VQ, the Numerical Control allows the acquisition of an axis
position. At the moment the F1 key is pressed, the screen displays the message associated to the
VQ by self-learning and its current value (as explained in instruction 218). The Numerical
Control provides the possibility of displaying the position at which the axis associated to the
message is found instead of the value of the VQ associated to the message. VB402 is used to
allow this.
When F1 is pressed
If VB402=0
Then the current value of the VQ to be self-learned is displayed with the associated
message
If VB402=1
Then the current position of the axis associated to the message is displayed with the
message associated to the VQ to be self-learned as described in instruction 218.
VB403 VB_SEMI_INCR
In Multiple Manual (VB266=1), if set to 1 the positions set are incremental and not absolute.
When moving in multiple manual mode, it is possible to move the axes in an incremental
manner. I.e., if, for example, I initially set the objective position of axis 1 to 10, at the first Start,
the axis goes to position 10, at the second Start to position 20, at the third, 30 and so on. I.e., the
position is always incremented by a fixed value.
VB404 VB_DISABIL_F1_SET_VAR
In F1, if set to 1, it disables changing the values of variables.
With F1, it is possible to set the values of the variables to which the message is associated using
the appropriate instructions. If I set VB404 to 1, I disable the possibility of changing those
values.
VB405 VB_TEACH_EL
If set to 1, in Self-learning and in the F2 Editor, when the self-learning impulse (VB271) is
generated, in addition to instruction AX n TO q, the instruction VEL AX n = v% is also
generated; the speed is read from VN348355 (one for each axis). The speed is expressed as %
10 (1000 = 100%).
VB406 VB_MODEM_EN
If set to 1, enables modem management.
VB407 VB_RETR_ENAB
If set to 1, enables the storage of movements.
Variable relative to the RETRACE function.
RETRACE only works on dedicated firmware, i.e., that specifically provides for that function.
The RETRACE function allows retracing the movement of the axes in the last 16 movement
instructions and is only active for the main interpolation axes WITHOUT tangential axes. The
RETRACE function is ONLY active on the MAIN PROCESS and NOT on any parallel
processes (FORKs). The storage of the path for a possible retrace is enabled by setting VB407 to
1.
VB408 VB_RETR_IND
If set to 1, enables RETRACE backwards.
RETRACE only works on dedicated firmware, i.e., that specifically provides for that function.
The RETRACE function allows retracing the movement of the axes in the last 16 movement
instructions and is only active for the main interpolation axes WITHOUT tangential axes. The
RETRACE function is ONLY active on the MAIN PROCESS and NOT on any parallel
processes (FORKs).
It is possible to activate retrace during normal axis movement by setting VB408
(VB_RETR_IND) to 1; a stop of the current movement is generated and the axes begin the
opposite motion; the axes move backward as long as VB408 remains 1 or until all the stored
movements have been executed. When VB408 is set to 0 the axes stop; if VB408 is reset to 1,
reverse movement resumes.
VB409 VB_RETR_AVA
If set to 1, enables forward RETRACE.
RETRACE only works on dedicated firmware, i.e., that specifically provides for that function.
The RETRACE function allows retracing the movement of the axes in the last 16 movement
instructions and is only active for the main interpolation axes WITHOUT tangential axes. The
RETRACE function is ONLY active on the MAIN PROCESS and NOT on any parallel
processes (FORKs).
It is possible to activate retrace during normal axis movement by setting VB408
(VB_RETR_IND) to 1; a stop of the current movement is generated and the axes begin the
opposite motion; the axes move backward as long as VB408 remains 1 or until all the stored
movements have been executed. When VB408 is set to 0 the axes stop; if VB408 is reset to 1,
reverse movement resumes. If, VB409 (VB_RETR_AVA) is set to 1 instead, the axes resume
forward motion from the position at which they had arrived with backward retrace; in this case
also, the forward movement (as a function of retrace) continues so long as VB409 remains 1 or
until all the stored movements have been executed; in this latter case, it resumes normal
movement and execution proceeds normally.
VB410 VB_RETR_IN_PR
If set to 1, signals RETRACE in progress.
RETRACE only works on dedicated firmware, i.e., that specifically provides for that function.
The RETRACE function allows retracing the movement of the axes in the last 16 movement
instructions and is only active for the main interpolation axes WITHOUT tangential axes. The
RETRACE function is ONLY active on the MAIN PROCESS and NOT on any parallel
processes (FORKs).
So long as the retrace function is active (forward, back or with axes stopped on a retrace
movement) VB410 (VB_RETR_IN_PR) assumes the value of 1.
VB411 VB_NEXT_MOVE
During an interpolated movement, while a movement is in progress, if set to 1 it indicates that
there is a next movement.
VB412 VB_ROTAT_ENAB
If set to 1, enables rotation management.
In addition to the translation of axes through the imposition of the origin, it is possible to
perform a rotation of the axes with respect to an absolute initial system of reference. To enable
axis rotation management you must set VB412 to 1.
When rotation is enabled, G0 (AX TO) instructions relative to the principal axes of interpolation
are executed as G1 instructions at maximum speed (Rapid).
VB413 VB_GET_ANGLE
If set to 1, acquires the angle of origin contained in VN305 (origin to be acquired).
If rotation is enabled (VB412), it is possible to acquire the angle of origin whose number is
specified in VN305. To enable this acquisition, you must set VB413 to 1.
VB414 VB_CN_CHG_PRG
It is set to 1 by the SIAX when the program to be executed is changed with the [PRG] key.
In the Automatic cycle, you can change the program to be executed by selecting from among
those present on the NC. To access this function, you must press the [PRG] key on the
Numerical Control. Once the number of the program to be executed has been selected, it is
confirmed with the [ENTER] key. Upon confirmation, VB414 is set to a value of 1 to indicate
that the program to be executed has been changed.
VB415 VB_CN_SEL
In the case in which more than one NC is accessed, forming a network of controls, it becomes
useful to know which NC is selected. This information is provided by VB415. This latter is set to
1 if the number of the currently selected NC coincides with the identifier of the NC itself (useful
in RS422 multicn).
VB416 VB_MIDDLE_PNT
It is set to 1 if the mid-point for self-learning of an arc by 3 points has been acquired.
The Numerical Control is capable of self-learning particular profiles. Each profile is associated
to an index and, at the time of self-learning, this index is specified in VN362. In the case in
which self-learning is performed for a profile of an arc of circumference passing through 3
points, VB416 indicates whether or not the mid-point was acquired. If the mid-point was
acquired, VB416 is set to 1, otherwise it is set to 0.
VB417 VB_TASTO_PREMUTO
VB417 is set to 1 when any key on the NC is pressed. When the key is released, it is set back to
0.
VB418 VB_EN_FASE_AX
The VNs from VN348 to VN355 have two meanings depending on the value assumed by
VB418.
In the case in which VB418 is set to 0, the VNs from VN348 to VN355 contain the speeds of the
axes in the self-learning phase (see documentation in the paragraph Self-learning in Program
Editor in chapter 2 of the Programming Manual).
In the case in which VB418 is set to 1, the VNs from VN348 to VN355 contain the value that
identifies the phase in which the axis is found during movement.
VB419 VB_DISAB_PC_OUT
In some cases (for example when you are in TEST) it is useful to have total control of the digital
and analog outputs without any influence of the PLC on execution. The Numerical Control
makes available VB419, which, if set to 1, disables the actuation of the digital and analog
outputs managed by the PLC. It is normally connected directly to VB280.
VB420 VB_REQ_CONF_MEMO
NC program in execution (running), operator in F1 page; any changes will be stored when the
cycle stops (stop or end); VB420 was added which, if set to 1, asks for confirmation of the
storage through the SAVE (MEMO) key. This prevent the NC, in the case of a voltage drop
during an automatic cycle in which changes were made in page F1, from beginning the storage
phase (which would be interrupted when the voltage is below the operating threshold with
consequent loss of programs); the storage phase begins in the passage of the automatic cycle
from run to stop, something that could occur if, during a drop in voltage, some input is read in a
state that would cause a stop.
VB421 VB_EN_TAV_ROT
Setting VB421 to 1 enables the special rotating table functions. This functions are only available
with dedicated firmware.
VB422 VB_APP_WITH_ORG
In self-learning instructions (Program Editor/Self-learning), if VB422 is 1, the self-learned axis
positions are acquired taking into account the active origin.
VB423 VB_ENAB_F6
When the Numerical Control is stopped in Automatic or in Multiple Manual, you can enable the
F6 to enter the parameter pages. To enable this function, you must set VB423 to 1.
VB424 VB_ENAB_OTHER_PSW
VB424 allows the user to set a different password than the standard one (456258) in the passage
from here to the NC menus/functions in which it is necessary to type one (such as entering the
NC parameters menu). The use of VB424 is explained in the paragraph Dedicated password
management in this manual
VB425 VB_RESET_EMERG
VB425 allows the user to reset the active emergency. The NC resets it to 0 after use. I.e., if the
user wants to reset the emergency, VB425 is set to 1; once the emergency is reset, the NC zeroes
VB425. This VB is zeroed when going into emergency.
N.B. VB425 is the only way to reset the emergency when using Single State.
N.B. Also see variable VN370.
N.B. Variable available from firmware version 4.28 on.
VB427 VB_OM_EXIT
VB427 allows exiting from Single State. VB427 must be used together with VB433. The
procedure for exiting from Single State is as follows:
1. Set VB433 to 0
2. Set VB427 to 1
VB428 VB_OM_START_AUTO
In Single State the Automatic cycle is started by setting VB428 to 1 and no longer VB256. To
execute the Automatic cycle in Single State, you must:
1. Verify that the axes are zeroed (there is no check for zeroed axes and, thus, it is the
programmer's responsibility to inhibit the start under the axes have been zeroed by means
of VB312-VB319)
2. Set the number of the program to be executed in VN402
3. Set VB428 to 1 (start)
VB429 VB_OM_START_TEST
In Single State it is possible to force the Test state of the NC. I.e., the NC is placed in standard
Test status. To force the passage from Single State to Test State, you must set VB429 to 1. It
should be noted that in the Test State called from Single State, no standard page is displayed, but
only user pages implemented by the programmer. It is thus the programmer's responsibility to
construct the test pages according to his own needs.
VB430 VB_OM_START_TSTVEL
In Single State, there is the possibility of performing a speed test of the axes. VB430 allows
beginning the speed test. Before starting a speed test with VB430, you must:
VB431 VB_OM_START_SEMI
In Single State, there is the possibility of working in semi-automatic. To start semi-automatic,
you must set VB431 to 1. Before starting semi-automatic, you must:
1. Prepare a user page in which you can set the objective positions. To do this, the page
must contain objects of objective variable type with index equal to the number of the axis
that you wish to move in semi-automatic. These objects must be readable and writable. In
the objective positions, you set the position to which the axis must go.
VB432 VB_OM_START_ZERO
In Single State, there is the possibility of resetting the axes. To start resetting, you must set
VB432 to 1.
VB433 VB_OMNI_MODE
Single State is available on Sipro NCs from firmware version 4.33 on (if enabled). To make the
NC function in Single State, you must set VB433 to 1.
VB434 VB_OM_DIS_MAN
In Single State, there is the possibility of disabling the jog axis function. To do this, you must set
VB434 to 1. Jog axis is only disabled if there is no jog active at the moment when VB434 is set
to 1.
VB435 VB_OM_DIS_PAGE_STATE
In Single State, the pages displayed are associated to the state of the NC. For example, if an
emergency occurs while I am in Single State, the emergency user page is called. So, there is an
automatic change of page based on a change in the state of the NC. VB435 allows disabling this
function. I.e., when VB435 is set to 1, the change of page upon change of state no longer occurs.
So, returning to the example mentioned above, if an emergency occurs while I am in Single
State, the NC goes into a state of emergency but the relative emergency page is not displayed
(the NC continues to display the page associated to Single State)
VB436 VB_OM_INIT_QUOTE
In Single State there is the possibility of initializing the value of the objective positions. The
objective positions are initialized using VB436. At the moment in which I set VB436 to 1, the
objective positions acquire the value of the current position of the axes.
VB437 VB_SET_AUTO_ERR
Sipro systems allow the execution of the Automatic cycle when the NC is in Multiple Manual
(see paragraph Multiple Manual). If an Automatic cycle in Multiple Manual terminates due to
an error, you can display the error codes in the standard variables (VN345, VN346 and VN375
). To enable writing a possible error code on standard variables, you must set VB437 to 1.
VB438 VB_NO_SET_SER_QUO
In systems with firmware versions higher than 4.46, this VB must be set to 1 for a correct
exchange of information by serial port in the event you are using an operator interface such as
palm computer, TO 5.7 or PC.
VB439 VB_DIS_COP_CHK_START
In Sipro systems with CANopen modules, it allows executing the automatic cycle even in the
presence of CANopen errors (for example, Life Time Node Guarding error).
VB440 VB_DIS_PROFI
In system with ProfiBus interface, setting VB440 to 1 disables reading and writing ProfiBus
variables.
Numeric Variables
Following are describe Numeric Variables with dedicated functions.
Notations
read only variables (its is possible to write a value in these variables but it has no
effect).
VN256 VN_OVERRIDE_VEL
Contains the speed Override value from 0.0 to 100.0% (and thus values from 0 to 1000).
During axis movement, the Numerical Control can limit the speed of the axes with VN256. This
VN specifies the percentage of speed with respect to the speed set through the instruction set vel
(or with respect to the maximum if the instruction itself is not used). In Automatic or Manual, the
NC always displays the override percentage above to the right. The value in VN256 is valid for
all axes. If you want to differentiate the override value for each axis, you must use VN292-
VN299.
The choice of setting a single override value with VN256 or an override value for each axis with
VN292-VN299 is determined with the axis parameter Enable speed override .
VN257 VN_PRG_NUM
Contains the number of the program to execute; it is active when VB265 is set to 1.
In Automatic or Multiple Manual, it is possible to select the program to be executed in two ways:
directly from the keyboard of the NC or by PLC logic using VB265 and VN257. In the second
case, you must first set the number of the program to be executed in VN257 and then give an
impulse to VB265. In Automatic, the number of the program specified in VN257 is set in VN308
and VN309 and is only executed after a [START] from the keyboard of the NC. In Multiple
Manual, the number of the program specified in VN257 is transferred to VN308 and VN309 and
is immediately executed.
N.B. Also see the documentation for VN265, VN308 and VN309.
VN258 VN_KEY_CODE
Contains the code of the last key pressed.
A recognition code is associated to each key of the Numerical Control that can be used by the
PLC. The key codes are shown in the paragraph Key Codes in the Appendix of the Programming
Manual.
N.B. See documentation paragraph Key Codes in the Appendix of the Programming Manual.
VN259 VN_MOVING_AXES
Axes in movement flags: an axis corresponds to each bit according to the scheme shown below.
If the bit is 1, the corresponding axis is in movement.
Axis 1
Axis 2
Axis 3
Axis 4
Axis 5
Axis 6
Axis 7
Axis 8
VN260267 VN_FIRST_POS_AX_MM
Contains the position of the axis (from 1 to 8), expressed in millimeters.
VN268271 VN_FIRST_IRQ_CNT
IRQ TPU encoder counter (from 1 to 8).
In the case in which the Z signal of the encoders is used as counting input, the VNs from VN268
to VN271 are counters associated to each encoder. The first encoder is associated to VN268, the
second to VN269 and so on.
VN272 VN_AX_ONOFF_REC_GC
In the case in which the axes to be controlled are of the ON/OFF type, you can set an Axis
parameter called Play Recovery. The Numerical Control provides the possibility of enabling this
function or not for each axis using VN272. This VN contains the flags that indicate whether an
axis has play recovery or not. An axis corresponds to each bit. Axis 1 corresponds to bit 0, axis 2
corresponds to bit 1 and so on. If the bit is set to 1, play recovery is disabled for the
corresponding axis.
N.B. See documentation reltive to ON/OFF type axis parameters in chapter 3 of the
installation manual.
VN273 VN_AX_ONOFF_DEC
When the Numerical Control manages axis ON/OFF, the axis parameters contain a parameter
called inertia. VN273 manages this parameter. An axis corresponds to each bit of VN273. Axis 1
corresponds to bit 1, axis 2 corresponds to bit 2 and so on. If the bit corresponding to the axis
(axis ON/OFF) is 1, a stop of that axis always sets the inertia space as the deceleration space
independently of the rapid output state.
VN274 VN_EN_ROLLOVER
The rollover function for an axis, allows resetting the count and resuming from 0 when that axis
reaches a preset position. With this function, the restart of the count is performed intelligently,
i.e., without the loss of encoder impulses during the resetting of the axis position. The Numerical
Control allows enabling this function or not, through the use of VN274, and setting at what
position to perform the resetting for each axis by using the axis parameter Proximity threshold.
In fact, this latter parameter has two meanings, as explained in the paragraph Parameters in the
Installation Manual.
VN274, on the other hand, has the function of enabling the rollover of each axis, or not. An axis
corresponds to each bit of VN274. Axis 1 corresponds to bit 1, axis 2 to bit 2 and so on, up to
axis 8, which corresponds to bit 8. When a bit of VN274 is set to 1, the rollover function is
enabled for the corresponding axis.
N.B. Also see documentation of the axis parameter Proximity threshold in the paragraph
Axis Parameters in the Installation Manual.
VN276283 VN_FIRST_FOLL_FACT
Contains the tracking factor (1000 with sign)
The VNs from VN276 to VN283 contain numeric values that are used when the operation of
axes in tracking is enabled (see VB360-VB367). The meaning of the value contained changes
depending on the tracking mode used by each axis. These methods are explained in paragraph
Tracking Management in chapter 2 of the Programming Manual.
The table that follows shows the meanings assumed by the value of VN276-VN283 depending
on the mode selected (VN324-VN331).
In operation with tracking, each axis is assigned an encoder to track, i.e., an encoder that acts as
master. The encoders associated with each axis are specified in VN284-VN291. VN284 contains
the number of the encoder for axis 1, VN285 the one for axis 2, and so on. The values contained
in VN276-VN283 are relative to the encoders specified in VN284-VN391, according to the
following table:
N.B. Also see the documentation for VN360-VN367, VN284-VN291, VN316-VN323 and
VN324-VN331
VN284291 VN_FIRST_FOLL_ENC
Contains the number of the tracking encoder enabled by VN (from 360 to 367).
In operation with tracking, each axis is assigned an encoder to track, i.e., an encoder that acts as
master. The encoders associated with each axis are specified in VN284-VN291. VN284 contains
the number of the encoder for axis 1, VN285 the one for axis 2, and so on.
N.B. Also see the documentation for VN360-VN367, VN276-VN283, VN316-VN323 and
VN324-VN331. These methods are explained in paragraph Tracking Management in chapter
2 of the Programming Manual.
VN292299 VN_FIRST_AX_OVD
Contains the independent override of the axis (from 1 to 8).
Enabled by parameter 2.
In Automatic or Manual, the NC always displays the speed override percentage above to the
right. The override value specifies the percentage of speed at which the axis must move with
respect to that set. The Numerical Control provides the possibility of setting a different override
value for each axis using VN292-VN299. An axis corresponds to each VN. Axis 1 corresponds
to VN292, axis 2 corresponds to VN293 and so on, up to axis 8, which is associated to VN299.
N.B. See also documentation for VN256 and the axis parameters in the Installation
Manual.
VN300 VN_SH_REG_DELAY
Indicates the number of elements present in the Shift Register.
The PLC has a Shift Register available, in those firmware versions that provide for it. Its size is
variable and depends on the elements that are inserted or deleted through VB368-VB372.
VN300 contains the value that indicates the number of elements in the Shift Register.
N.B. Also see documentation of VN368-VN372 and the paragraph Use of the Shift Register
in the Appendix to the Programming Manual.
VN301 VN_NUM_PRG_START
Contains the number of the program that is executed (if the number is other than 0) at each start
of Automatic.
N.B. During program execution launched from VN301, FORK programs are not active.
In the case in which:
VN301 0
At the Start, the number of the program present in VN301 is displayed in VN309 and
then executed. At the end of the execution, the program whose number is specified in
VN308 is displayed in VN309 and then it also is executed. In this way, the two programs
are executed in sequence; the first specified by the number in VN301 and the second
specified by the number in VN308.
This turns out to be useful, for example, when you want to execute an initialization
program before the main program.
VN301 = 0
At the Start, the number of the program to execute in VN301 is ignored and only the
program whose number is in VN308 is executed.
N.B. Also see the documentation for VN257, VN265, VN308 and VN309.
VN302 VN_VQ_INDX_EMERG
Upon the occurrence of an emergency, the Numerical Control ends the movement of the axes in
the position in which they are found. VN302 is used to find out what position the axes stopped
at. This VN contains the index of the first of the consecutive VQs that contain the values of the
axis positions when an emergency occurs. If VN302 is 0, the function of saving the axis
positions when an emergency occurs is disabled.
VN303 VN_VQ_INDX_FEED
The instruction 57 F ValQ sets the interpolation speed expressed in [mm/min]. The Numerical
Control allows selecting a VQ to measure the value of this speed, expressed in [mm/min].
VN303 contains the index of the VQ that contains the set interpolation speed expressed in
[mm/min]
N.B. Also see documentation in the paragraph Linear and circular interpolation in chapter 2
of the Programming Manual and for VN340 and VN356.
VN304 VN_VQ_INDX_IN_POS
During movement, the axes reach positions that are called objective positions. At the moment in
which the axes reach these positions, they stop. The Numerical Control allows saving the
positions at the time in which the axes stop due to reaching the objective.
VB304 is used to do this. This VN contains the index of the first of the consecutive VQs that
contain the position values at the time the axes stop due to reaching the objective.
VN305 VN_GET_ORG_NUM
Contains the number of the origin to acquire (it will be acquired when VB375 is set).
The Resetting procedure is used to set the system of reference used for moving the axes. The
origin of this system of reference is called ORIGIN 0 to identify it as the absolute system of
reference. Other origins can be set in addition, up to a maximum of 20 (see chapter 8 of the
Programming Manual), and it is only necessary to make them active once (origin 0 is active by
default and this is displayed on the screen of the control above to the left near the word LOC or
REM). For example, the word LOC N0 indicates that the control is in LOCAL and that the active
origin is number 0.
Changing the number of the active origin means translating the system of reference from the
previous origin to the current one and simultaneously involves the translation of all movements
subsequent to the change of origin; for this reason, the change of origin is useful when you want
to execute a path identical to the preceding, but translated in the plane. Using the NC
instructions, this is achieved by using instruction 55 ORG n, in which you specify the number of
the origin that you want to activate.
VN305 contains the number of the origin that you wish to acquire through self-learning. After
having moved the axes until they reach the positions of the new origin, you give an impulse to
VB375. In this way, the origin whose number is specified in VN305 is stored with the positions
of the self-learned axes.
N.B. Also see documentation for VB374, VB375 and VN306 and in chapter 8 (Origins) of
the Programming Manual.
VN306 VN_SET_ORG_NUM
Contains the number of the origin to be set (it will be set when VB374 is set).
The Resetting procedure is used to set the system of reference used for moving the axes. The
orgin of this system of reference is called ORIGIN 0 to identify it as the absolute system of
reference. Other origins can be set in addition, up to a maximum of 20 (see chapter 8 of the
Programming Manual), and it is only necessary to make them active once (origin 0 is active by
default and this is displayed on the screen of the control above to the left near the word LOC or
REM). For example, the word LOC N0 indicates that the control is in LOCAL and that the active
origin is number 0.
Changing the number of the active origin means translating the system of reference from the
previous origin to the current one and simultaneously involves the translation of all movements
subsequent to the change of origin; for this reason, the change of origin is useful when you want
to execute a path identical to the preceding, but translated in the plane. Using the NC
instructions, this is achieved by using instruction 55 ORG n, in which you specify the number of
the origin that you want to activate.
VN306 contains the number that specifies the origin that you want to make active for movement.
To make the origin whose number is specified in VN306 active, you must give an impulse to
VB374. For example, if I want to make the origin identified by number 3 active, I set this value
in VN306 and I give an impulse to VB374.
N.B. Also see documentation for VB374, VB375, VN305 and VN307 and in chapter 8
(Origins) of the Programming Manual.
VN307 VN_CUR_ORG_NUM
Contains the number of the active (current) origin.
The choice of the orgin to activate can be made using NC instruction 55 ORG n or appropriately
setting the VB and VN (VB 374 and VN306). Once one of the available origins (up to a
maximum of 20) has been made active, the number that identifies the origin active at that
moment is contained in VN307.
N.B. Also see documentation for VB374, VB375, VN305 and VN306 and in chapter 8
(Origins) of the Programming Manual.
VN308 VN_MAIN_PRG_NUM
Contains the number of the main program.
At the Start, the Numerical Control executes the program whose number is specified in VN308.
However, in the case in which VN301 is 0, the program whose number is specified in VN301
is executed first and only at its completion is the program whose number is specified in VN308
executed.
N.B. Also see the documentation for VN257, VN265, VN301 and VN309.
VN309 VN_CUR_PRG_NUM
Contains the number of the current program.
The number of the program that the Numerical Control is executing is contained in VN309.
N.B. Also see the documentation for VN257, VN265, VN301 and VN308.
VN310 VN_TX_PRG_NUM
Contains the number of the program to transmit (used for the management of programs from a
PC).
In transmitting .ISO files from a PC to the NC in temporary mode, VN310 contains the number
of the .ISO program whose code must be transferred from the PC to the NC.
N.B. For a better description of the utility of VB310, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
Programming Manual.
VN311 VN_INDX_POS_ERR
Contains the index of the first VN that contains the position error.
During movement, the axes follow a trajectory calculated by the Numerical Control. However,
the axes commit positioning errors in following trajectories. The Numerical Control permits
displaying the positioning errors dynamically using VN311. In fact, this VN contains the index
of the first of the consecutive VNs that contain the positioning errors of the axes during
movement, in impulses.
VN312 VN_CUR_STEP_NUM_H
Contains the number of the step being executed (current) H.
The Numerical Control executes the steps of the program. The number that identifies the step
that is executing is specified on the display of the control above to the right when in Automatic.
This number is also specified by VN312 and VN313. VN312 is used to contain the high part and
VN313 to contain the low part of the number that identifies the step.
VN313 VN_CUR_STEP_NUM_L
Contains the number of the step being executed (current) L.
VN314 VN_TX_STEP_H
Contains the number of the begin transmission step H (used for the management of programs
from a PC).
In transmitting .ISO files from a PC to the NC in temporary mode, VN312 contains the number
that identifies the high part of the number of the step from which the transfer begins.
N.B. For a better description of the utility of VB312, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
Programming Manual.
VN315 VN_TX_STEP_L
Contains the number of the begin transmission step L (used for the management of programs
from a PC).
In transmitting .ISO files from a PC to the NC in temporary mode, VN313 contains the number
that identifies the low part of the number of the step from which the transfer begins.
N.B. For a better description of the utility of VB313, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
Programming Manual.
VN316323 VN_FIRST_FOLL_DEN
The VNs from VN316 to VN323 contain numeric values that are used when the operation of
axes in tracking is enabled (see VB360-VB367). The meaning of the value contained changes
depending on the tracking mode used by each axis. These methods are explained in paragraph
Tracking Management in chapter 2 of the Programming Manual.
The table that follows shows the meanings assumed by the value of VN316-VN323 depending
on the mode selected (VN324-VN331).
In operation with tracking, each axis is assigned an encoder to track, i.e., an encoder that acts as
master. The encoders associated with each axis are specified in VN284-VN291. VN284 contains
the number of the encoder for axis 1, VN285 the one for axis 2, and so on. The values contained
in VN316-VN323 are relative to the encoders specified in VN284-VN391, according to the
following table:
N.B. Also see the documentation for VB360-VB367, VN284-VN291, VN276-VN283 and
VN324-VN331.
VN324331 VN_FIRST_FOLL_MODE
The movement of the axes in tracking mode provides several operating modes. The choice of the
tracking mode can be specified for each axis using the VNs from VN324 to VN331. An axis
corresponds to each VN. Axis 1 is associated to VN324, axis 2 to VN325 and so on, until axis 8,
which is associated to VN331. The various modes, from 0 to 9, are explained in the paragraph
Tracking Managment in chapter 2 of the Programming Manual.
VN332 VN_FIRST_ORG_OFFS
Contains the index of the first VQ for the management of the offset in origin acquisition.
VN333 VN_FIRST_SCALE_FCT
Contains the index of the first VQ for the management of the scale factor.
It is possible to associate a scale factor to each axis of the Numerical Control. In this way,
without changing the values of the working positions, I can work a new piece of larger or smaller
dimensions by setting the scale factor. If, for example, I want to repeat a work to obtain a piece
of double size of the preceding piece, I just set the scale factor of the axes that perform the
movement to a value of 2.
VN333 contains the number of the first VQ used as the Scale Factor (0 = scale factor disabled).
E.g.: in a control that can manage up to 4 axes, by setting VN333 to a value of 251, you will
have variables VQ251 to VQ254 containing the scale factor applied to the axes:
Setting VN333 to 0 disables the scale factor; this is equivalent to using the scale factor with all
variables set to the value 1.000.
VN334 VN_EMERG_ERR_NUM
When an emergency error occurs, the Numerical Control generates codes that identify what type
of error occurred. The number that identifies the error that occurred is set in VN344. The number
is VN344 identifies the emergency error according to the following table.
N.B. Also see the documentation relative to error codes in chapter 6 of the Programming
Manual and for VN335.
VN335 VN_EMERG_ERR_PAR
When an emergency error occurs, the Numerical Control generates codes that identify what type
of error occurred. In addition to the number that identifies what type of emergency occurred
(VN334), the Numerical Control also specifies the number of the parameter associated to the
error that occurred in VN335. The values and the meaning of the paramters are explained in the
following table
So, if there was an emergency error due to the triggering of the Max end of travel limit switch of
axis 4, we would have a value of 3 in VN334 and a value of 128 in VN335.
N.B. Also see the documentation relative to error codes in chapter 6 of the Programming
Manual and for VN334.
VN336 VN_PRG_IN_F1
Contains the number of the active program in F1.
Using the Variable Setting method of the F1 key, you access programms that use instructions
suitable for setting variables. The program that begins execution depends on the value of several
VNs and VBs as specified in the flowchart in the paragraph Variable Setting - F1 key in the
Programming Manual. The number of the executing program in the mode of Variable Setting
using the F1 key is specified in VN336.
VN337 VN_VQ_TOOL_COORD
Contains the index of the first VQ in which the positions reached with a stop without a forced
STOP are stored in tool coordinates.
VN338 VN_TX_WAIT_PRG_NUM
In transmitting .ISO files from a PC to the NC in temporary mode, VN338 contains the number
of the .ISO program whose code the NC is waiting for.
VN339 VN_SEL_AX_NUM
Contains the number of the selected axis.
In moving axes in Single Manual, there is the possibility of selecting which axis to move with
the JOG+ and JOG- keys. To select the axis that you want to move, just enter the axis number in
question in the bottom right of the screen in Manual and confirm with [ENTER]. The number of
the selected axis is specified in VN339.
N.B. Also see documentation in the paragraph Manual Movement in the Programming
Manual.
VN340 VN_VQ_INDX_SET_F
If it is > 0, when you disable the speed setting in ISO files using VB396, speed set is contained
in the VQ whose index is specified in this VN; otherwise, no speed is set.
In ISO files, instruction F allows changing the speed of axis movement. It is possible to disable
all F instructions in an .ISO file by means of VB396. In the case in which the F instructions of an
.ISO file are disabled, the new speed of reference for movement is contained in the VQ whose
index is specified in VN340. If VN340 is not >0, no speed is set.
VN341 VN_APPR_F1
Contains the value that is read when VB271 is used as Enter in F1.
In Variable Setting with the F1 key, it is possible to self-learn the value VBs, VNs and VQs. In
the case of the VNs, the value that is self-learned is that contained in VN341.
VN342 VN_START_F1_PRG
Allows setting the starting program number in F1.
When F1 is pressed, the Numerical Control executes an NC program, if it is present. The
program that is executed is set by following the logic illustrated in the flowchart in the paragraph
Variable Setting - F1 key in the Programming Manual. In the case in which VN342 is other than
0, pressing the F1 key executes the program whose number is specified by VN342.
VN343 VN_CN_ACT_PAGE
When the Numerical Control is in Automatic, there can be different ways of displaying on the
screen depending on the function keys pressed (F1, F2, F4).
VN343 contains the index that specifies the page displayed in Automatic according to the
following coding:
VN343 Value Page activated
0 normal page (position);
1 page F1 (variable setting);
2 page F2 (Editor display);
4 page F4 (active alarms).
VN344 VN_CN_SET_PAGE
Allows setting the page displayed in Automatic from the PLC; VN344 contains the value that
specifies the display settings of the page in Automatic. The values of VN344 have the following
meanings:
The number relative to the desired page is placed in this VN. The change of page occurs when an
impulse is given to VB399.
The function described above is valid for the NC systems except for the Palm computer. For this
latter system, the page displayed in Automatic is set at the time in which I place the code (one of
those in the table above) in VN344. I.e., with the Palm computer, activating VB399 with an
impulse has NO effect.
N.B. It is advisable to use VN383 to set the various display pages in Automatic.
N.B. Variable available from firmware version 3.31a on.
N.B. Also see the documentation for VN343 and VB399.
VN345 VN_MAIN_ERR_NUM
When an error occurs in the Automatic cycle or in the Resetting phase, the Numerical Control
generates codes that identify what type of error occurred. The value of the code that identifies the
error is set in VN345. The values associated to the errors are as follows:
VN346 VN_MAIN_ERR_PAR
When an error occurs in the Automatic cycle or in the Resetting phase, the Numerical Control
generates codes that identify what type of error occurred. In addition to this value, a parameter is
specified that identifies which event generated that type of error (for example, instructions
executed in an erroneous manner). The value of the parameter is specified in VN346. For
example, if an error occurred in the Automatic cycle during the execution of instruction 4
GOSUB, a value of 17 will be placed in VN345, while a value of 100 will be placed in VN346.
The values that specify the parameter associated to the error are coded in the paragraph
Automatic Cycle Error Codes in chapter 6 of the Programming Manual.
VN347 VN_ZERO_AX_NUM
Allows resetting only the specified axis.
When the axes are zeroed (item Resetting Axes on the Main Menu of the Numerical Control), all
the axes are zeroed according to the sequence set in machine parameter Sequence of axes to be
zeroed. The Numerical Control also permits resetting just one axis. To do this, we use VN347 in
which the number of axis that is to be zeroed by itself is specified.
VN348355 VN_FIRST_TEACH_VEL
The contents of the VN variables from VN348 to VN355 assume two different meanings
depending on the value of VB418. In the case in which VB418 is 0, the VNs from VN348 to
VN355 contain the speed of the axis (from 1 to 8) in % 10 (i.e., 1000 = 100%), which is read
in self-learning in EDITOR - F2. When the self-learning impulse (VB271) is generated with
VB405 = 1. In addition to the instruction AX n TO m, the instruction VEL AX n = v % is
generated. In the case in which: VB418 is 1, the VNs from VN348 to VN355 contain the
numeric value that identifies the phase of the axis. In this case, the values have the following
meaning:
Value Meaning
0 Axis stopped
1 Acceleration phase
2 Linear phase (V=constant)
3 Deceleration phase
4 Movement phase
5 Phase of Master axis enslavement
6 Phase of Slave axis enslavement
7 Phase of Slave axis enslavement 2
8 User phase
10 Number phases
VN356 VN_VQ_FEED
When the Numerical Control sets the speed of movement with instruction 57 F ValQ, the value
that represents the speed of the axis is set in VN303. This value represents the maximum axis
speed. However, the maximum speed is not reached instantaneously, but following a precise
dynamic. VN356 contains precisely the index of the VQ that contains the calculation of the
instantaneous real interpolation speed in [mm/min].
VN357 VN_MODEM_STAT
Shows the status of the Modem initialization and connection procedure.
The meaning of the value contained in VN357 is specified in the following coding:
VN358 VN_MODEM_CDM
VN358 specifies the command [low byte (L)] and the serial line used [high byte (H)].
The values assumed by VN358 and their meaning are the following.
VN359 VN_VB_INDX_MSG
The Numerical Control allows the management of alarm messages as explained in the paragraph
Messages in chapter 2 of the Programming Manual. Moreover, by using .ISO files, it is possible
to generate messages using VN359. To do this, you must first enter a line in the listing of the
.ISO program that contains the message that you want to display, between round parentheses.
For example, the message
(OIL FINISHED)
To display the message from the .ISO file, you must write, from the PLC, the index of the VB to
which you want to associate the message in VN359. For example, if I want the message (OIL
FINISHED) to be displayed when VB120 goes to 1, I must place the value 120 in VN359.
N.B. Also see documentation in the paragraph Messages in chapter 2 of the Programming
Manual.
VN360 VN_SOGL_PROX_AX
Bit variable with flags of axes at proximity threshold.
The bits of this variable indicate if the axes are in proximity of the objecive position (i.e., are at a
distance less than the relative proximity threshold).
The theshold values of the real axes are only settable through instructions of the type SETP AX n
P 20 VAL m. The threshold value of the virtual axis can be set with instruction SETMAC P 7
VAL <Val> or directly from the machine parameter Virtual axis proximity threshold.
Remember that the virtual axis is the one after the last real axis managed by the NC (for
example, if we have a system of up to 4 axes, the virtual axis is axis 5).
VN361 VN_TYPE_MOVE
With dedicated firmware, the Numerical Control permits movements in interpolated mode.
VN361 allows knowing which interpolated movement the Numerical Control is executing. A
movement corresponds to each bit according to the following table. If a bit is 1, it means that the
associated movement is being executed.
VN362 VN_TYPE_AUTOAPP
The Numerical Control is capable of self-learning particular profiles. Each profile is associated
to an index and, at the time of self-learning, this index is specified in VN362.
The codes of the profiles that can be self-learned are shown below.
APP_INIT 0 Initialization
APP_LINEA 1 Line
APP_ARC_TG 2 Tangential arc of circumference
APP_ARC_3P 3 Arc of circumference by 3 points
VN363 VN_TIMER_SEC_RES
Contains the number of residual seconds in the "awaiting timer" state (state 13).
The Numerical Control provides the possibility of inserting await timer instructions (such as,
instruction 17 TIME ValQ). VN363 indicates the number of seconds that are left until the end of
the count.
VN364 VN_VQ_POS_AX
Contains the index of the first of the VQs in which the axis positions are written.
The positions are absolute with 3 decimal places.
After specifying the index of the first of the VQs that contain the axis positions, the Numerical
Control reserves as many consecutive VQs as there are active axes. If, for example, there are 3
axes active and a value of 8 is specified in VN364, then VQ8, VQ9 and VQ10 will be reserved.
VN365 VN_VIEW_MOD
The Numerical Control allows displaying the positions in MmRif modulous format. VN365 is
used to enable this mode of display. An axis corresponds to each bit of VN365. Axis 1
corresponds to bit 1, axis 2 to bit 2 and so on, up to axis 8, which corresponds to bit 8. By setting
one or more bits of VN365 to 1, I enable the corresponding axes for a display in modulus
MmRif.
To explain the meaning of the display in modulus MmRif format, we provide the following
example.
Example.
If axis 4 is a rotating axis with the following parameters:
then:
If I set a value of 8 in VN365 (bit 4 enabled for axis 4), then the current position of axis 4
is displayed in the interval 0.0 359.9. I.e., when it reaches 360 the display, and only that,
of the position of axis 4 restarts from 0.
If no value is set in VN365 (i.e., I set it to 0), then the current position of axis 4 is
displayed without zerooing when it reaches the value 360 and continues the count for
values even greater than 360.
VN366 VN_INS_ISTR
In Self-learning the Numerical Control provides the ability to self-learn instructions with a
parameter, in addition to those explained in the paragraph Self-learning from the Program Editor
in chapter 2 of the Programming Manual. VN366 and VN367 are used to perform this type of
self-learning. Once you have entered self-learning with F2 or F3, you set the number of the
instruction code that you want to self-learn in VN366 and the value of its parameter in VN367.
If, for example, VN366 contains the value 4 and VN367 contains 1200, it generates the
instruction:
4 GOSUB 1200
VN367 VN_INS_PAR1
Also see the documentation for VN366.
VN368 VN_RW_VQ
The Numerical Control provides the possibility of reading or writing a VQ using two VNs of
which one contains the whole part and the other the fractional part. VN368 contains the index of
the VN that contains the whole part; the VN following that whose index is specified in VN368,
contains the fractional part. VN369 contains the index of the VQ.
The VQ is read or written depending on whether VN368 is positive or negative.
If VN368 = 0
Then, reading or writing a VQ using two VNs is disabled
If VN368>0
Then the content of the two VNs is copied to the VQ
If VN368<0
Then the content of the VQ is copied to the two VNs. The whole part is copied
into one and the fractional part into the other.
For example, if VN368 contains the value 101 and VN369 contains the value 2, then the contents
of VN101 (the whole part) and VN102 (the fractional part) are copied to VQ2.
N.B. The copying of the VNs into the VQ and of the VQ into the VNs occurs until VN 368 is
OTHER than 0.
N.B. Variable available from firmware version 3.56h on.
VN369 VN_VQ_RW_VQ
Also see the documentation for VN368.
VN370 VN_DIS_FN_KEY
The Numerical Control provides the possibility of disabling the function keys using VN370. A
function key corresponds to each bit. If the corresponding bit is 1, the key is disabled.
An NC emergency can be reset by pressing a key or with a STOP. From firmware version 4.28
on, the possibility has been added of disabling the emergency reset with a key or STOP by
setting bits 10 and 11, respectively, of VN370 to 1.
The bits of the Byte self-managed in VN370 are the following:
LOW BYTE:
PAGE Key
F1 key
F2 key
F3 key
F4 key
F5 key
F6 key
HIGH BYTE:
65536 32768 16384 8192 4096 2048 1024 512 256 Value to be set
Key disabled
STOP disabled
N.B. Variable available from firmware version 3.58 on and in version: 4.28 (for bits 10 and
11).
M0000464 Page 345
Chapter 3: Variables Programming Manual
VN371 VN_SLG_EXE_ISO
The execution of an ISO file transmitted by a PC begins either upon the completion of the
transmission of the entire file or with the filling of the transmission butter (6 Kbyte -
VB_TX_BUFF_FULL, i.e., VB387); now, if VN371 is > 0, the value set represents the threshold
for beginning execution of the ISO file; i.e., it is possible to begin execution before the complete
filling of the transmission buffer, thus reducing wait time.
VN372 VN_FMT_DATE
Numeric Variable for managing the format of the date and time in Numerical Controls with
dedicated firmware.
VN373 VN_WAKE_FUN
Numeric Variable for managing the date and time in Numerical Controls with dedicated
firmware.
VN374 VN_TIPO_RACCORDO
In working with tools, the Numerical Control allows selecting the type of circular connector to
use to connect two linear trajectories. The value that identifies the type of connector used is set
in VN374 according to the following table.
When the connector is enabled, VQ97 contains the value, in [mm], of the distance from the point
of transition (mode 1) or the radius of the connector (mode 2).
VN376 VN_PAGE_ID
With dedicated firmware, the Numerical Control is able to manage the user pages described in
the relative chapter of the SiaxEd manual. Each page is assigned a unique identification number
that allows the control to recognize which of the pages is displayed on the screen. This number is
also set in VN376 for any logic implementation by the PLC.
N.B. In firmware version 4.36, VN376 is also writable. I.e., in addition to containing the ID
of the current page, if forced to a valid page ID, this latter is loaded as the current page.
N.B. VN376 is only managed in firmware that provides for the management of graphic
User Pages.
N.B. Also see documentation in the paragraphs Page Settings and Transmission of User
Pages to the NC in chapter 3 of the SiaxEd Manual (in particular the Cod parameter).
VN377 VN_PAGE_BASE_ADDR
For firmware that supports it, the Numerical Control allows managing the User Pages explained
in the SiaxED Manual. The management of the User Pages requires the use of several VNs.
VN377 is one of these. After compilation, the User Pages are saved in memory. The Numerical
Control allows saving them in various areas of memory. VN377 is used to specify which
memory area to use for saving the User Pages. VN377 has the following values (also called
memory LAYOUT).
N.B. In the case in which VN377 = 0, the NC provides for management of the F2 key (only
in the case where there are no user pages saved in memory)
N.B. VN377 is only managed in firmware that provides for the management of graphic
User Pages.
N.B. Variable available from firmware version 3.72a on.
N.B. Also see documentation in the paragraph Transmission of User Pages to the NC in
chapter 3 of the SiaxEd Manual (in particular the Cod parameter).
VN378 VN_VQ_OBJ_AX
When in the Multiple Manual state (VB266=1), the Numerical Control allows setting the
objective positions of the axes from the keyboard. Once set, these positions can be placed in the
VQs. VB378 is used to do this. This VN contains the index of the first of the VQs that contain
the value of the axes objective positions set in Multiple Manual mode.
VN379 VN_OBJ_ID
Each User Page (VN376) is identified by a unique indentification number. However, inside each
User Page, there are objects (Object Number, Object Switch, etc.). Each object of the User Page
is identified by a unique indentification number. At the time of the selection of an object, this
number is contained in VN379. This Object Code is unique within a page, while it is NOT
unique in the context of the Project, since there can be various objects in different pages that
have the same identification code. So, within a project, the objects are uniquely identified by the
pair of values specified by VN376 and VN379.
N.B. In firmware version 4.36, VN379 is also writable. So, it is possible to force the object
to be placed in input; if the ID of the specified object is < 0, the ID of the current object in
input is restored.
N.B. VN379 is only managed in firmware that provides for the management of graphic
User Pages.
N.B. Variable available from firmware version 3.72a on.
N.B. N.B. Also see documentation in the paragraph Transmission of User Pages to the NC in
chapter 3 of the SiaxEd Manual.
VN379 contains the IDENTIFIER of the object currently in input (valid only for the LCD pages
configurable by the user)
VN380 VN_AX_QUO_MODE
The Numerical Control allows acquiring the positions of the axes depending on the mode
specified by a code. VN380 and VN381 are the VNs used to manage this acquisition.
VN380 contains:
the number of the axis whose position to acquire, in the LOW byte. If VN380= 0, the
positions of all the NC's active axes are acquired and their values are set in consecutive
VQs. The first of these has an index equal to the value contained in VN381, acquisition
of the position of all axes in consecutive VQs
the type of acquisition, conforming to the following codes, in the HIGH byte:
You must enter the hexadecimal value in VN380 (see the following example).
Value Coding
0 Real Position with its own decimals (with origins)
1 Real Position with 3 decimals (with origins)
2 Real Absolute Position with 3 decimals
3 Theoretical Absolute Position with 3 decimals
4 Objective Position with its own decimals
5 Objective Position with its own decimals
6 Real Absolute Position with its own decimals
7 Cartesian Axes
Example:
If the following VNs are set with:
Then in VQ200 (VQ index specified in VN381) will be updated with the position of axis 1 (low
bytes VN380) with mode 3, theoretical absolute position with 3 decimals (see previous table).
VN381 VN_QUO_VQ_INDX
The Numerical Control allows acquiring the positions of the axes depending on the mode
specified by a code. VN380 and VN381 are the VNs used to manage this acquisition.
If VN381 contains a number > 0 and < 255, this represents a request to acquire position and
index of the destination VQ.
VN382 VN_DATA_ENAB
When the SiaxED development tool is used, there is an object called User Program Manager.
The Numerical Control must reserve 11 consecutive VNs to manage this object. VN382 is used
to reserve these VNs. In fact, VN382 contains the index of the first of the consecutive VNs to be
reserved for the management of the User Program Manager object.
VN383 VN_PUT_KEY
The Numerical Control is able to simulate the pressing of a key through the use of VN383. The
code of the key whose pressing you want to simulate is entered in VN383 using suitable PLC
logic. The Numerical Control interprets it and behaves as if the key, with the recognized code,
had been pressed on the keyboard.
For example, if I want the alarms page (activated with function key F4) to appear when an alarm
occurs, I write a PLC logic that places the number 68 (F4) in VN383.
VN384 VN_VAR_VIEW_TICK
The values of the variables displayed on the screen in the graphic control pages are updated with
a certain period. The Numerical Control provides the possibility of changing the value of this
period (expressed in [ticks]) by using VN384.
VN385 VN_MODE_PRG_LIST
In the GOSUB instruction (for the time being only on the palm computer) of the Program Editor
on the NC, it is possible to select the program using a list rather than entering the number; by
pressing the PROG key, a list of programs will appear from which it is possible to select the
program to enter; the format of the list, i.e., the type of programs displayed, can be configured:
the bit coding of the program requested is passed in VN_MODE_PRG_LIST (VN385):
NC Prg.
ISO Prg.
Data Prg.
With Range
With Specification
Also hidden
The following table shows the description of the bit and the other VNs that must be managed to
correctly implement the list of programs using VN385.
VN385 also contains several bits for the management of I/O descriptors for the Program Editor.
The bits used are shown below. As regards their description, we refer you to the paragraph I/O
Descriptors in this manual.
32768 16384 8192 4096 2048 1024 512 256 Value to be set
DIG IN ON
DIG IN OFF
DIG OUT ON
DIG OUT OFF
N.B. Variable available from firmware version 4.08 on for the management of I/O bits,
while from firmware version 4.35 on for the management of bits for the display of
programs.
N.B. Also see documentation in the paragraph I/O Descriptors in this manual.
N.B. Also see variables VN406, VN407 and VN408.
VN386 VN_CUR_CN_LANG
The variable (VN386) contains the code of the current language of NC messages. The numeric
value of VN386 corresponds to the machine parameter LINGUA increased by 1.
VN387 VN_DISAB_STD_VIEW
The variable (VN387) allows disabling the standard displays; each bit represents a machine state
conforming to the coding shown below; if the bit corresponding to the current machine state is 1,
standard displays are not executed.
E.g.: by writing the value 7 (bit 2, 1 and 0) in VN387, the standard displays relative to the Main
Menu (bit 0), Automatic (bit 1) and Manual (bit 2) states will not be executed; the User Pages
will be displayed for the Manual and Automatic states
VN388 VN_LAST_PRG_REC
Variable VN388 contains the number of the last program sent to the NC and correctly stored.
VN389 VN_TIME_DATE_IDX
Variable VN389 contains the index of the first of 7 consecutive VNs that contain the current date
and time, in the following order:
N.B. Variable available from firmware version 4.08 on in systems in which an internal
clock is available or in systems in which the date and time information is sent from the PC.
VN390 VN_DATA_BARC_NUM
VN390, together with VN391, is used for managing the barcode. VN390 specifies the data
program number that manages the strings acquired by the barcode reader.
If the initialization of the barcode is not successful, VN391 contains the error code conforming
to the following coding:
VN391 VN_BARC_STATO
VN391, together with VN390, is used for managing the barcode. In the initialization phase, it is
necessary to specify the serial port that you want to use for the barcode in VN391, according to
the following coding:
If the reading of the barcode is successful, VN391 contains the following coding:
Example: If the string received from the serial port is 14 characters long and 3 steps were
processed (i.e., the user program for managing the barcode consists of 3 steps), in VN391 you
will have the value:
(3 * 256) + 14 = 782
VN391 can assume the following values with the following coding:
VN392 VN_COPY_VA
VN392 (VN_COPY_VA) allows copying a VA t another VA. VN392 contains:
BYTE BYTE
HIGH LOW
VA destination index
VA source index
Example:
If you want to copy VA2 to VA10, VN392 is set to:
N.B. VN392 returns to 0 after the copy of the source VA to the destination VA.
N.B. Variable available from firmware version 4.19 on.
VN393 VN_DATA_CN_MASTER_NUM
VN393 is used in managing the NC Master Protocol. VN393 specifies the data program number
that manages the sending of commands by the NC Master. In addition, VN293 contains the error
for managing the NC Master Protocol. The error codes are explained in paragraph NC Master
Protocol.
N.B. Variable available with dedicated firmware.
N.B. Also see paragraph NC Master Protocol in this manual.
VN394 VN_CN_MASTER_STATO
VN394 is used in managing the NC Master Protocol. During the intialization phase, VN394
specifies the communications serial port according to the codes explained in paragraph NC
Master Protocol.
VN395 VN_CN_MASTER_NUM_SENT
VN395 contains the number of packets successfully transmitted (send request + return response)
in managing the NC Master Protocol.
VN396 VN_FASE_AZZERAMENTO
In Sipro systems, it is possible to find out what phase axis resetting is in. VN396 contains the
coding of the state of the procedure for resetting an axis. VN396 can assume the following
values:
VALUE MEANING
1 SEEK ZERO MICRO
2 ZERO MICRO FOUND
3 AWAITING ZERO MICRO RELEASE
4 ZERO MICRO RELEASED
5 AWAITING ZERO NOTCH INTERRUPT
6 ZERO NOTCH INTERRUPT ARRIVED
VN397 VN_DISAB_NG_COP
In NC systems that provide Can Open, VN397 allows disabling the NodeGuarding messages.
N.B. Also see Can Open specifications for the NodeGuarding messages function.
VN398 VN_MODBUS_COM
VN398 contains the number that identifies the serial port to be used for communications using
the MODBUS protocol. The ModBus protocol is enabled when VN398 has a value other than 0.
N.B. Also see paragraph MODBUS "Slave" Protocol Management in this manual.
N.B. Variable available from firmware version 4.30 on.
VN399 VN_MODBUS_COM_MODE
VN399 contains the number that identifies the configuration parameters of the serial port for
communications using the MODBUS protocol.
N.B. Also see paragraph MODBUS "Slave" Protocol Management in this manual.
N.B. Variable available from firmware version 4.30 on.
VN400 VN_STD_STATE_NUM
VN400 contains the number that identifies the state of the excuting NC program. The state codes
for the executing program are described in the paragraph Instruction Priorities.
VN401 VN_OMNI_OPER
VN401 contains the number that identifies the operations in progress in Single State. VN401 is a
bit variable. There is a meaning for each bit. When the bit is 1, it means that the operation
associated to that bit is active in Single State. The following table shows the bits of VN401 and
the associated Single State operation.
VN402 VN_OM_PRG_NUM
In Single State, VN402 contains the number of the program to execute in Automatic. In Single
State the Automatic is started by setting VB428 to 1.
VN403 VN_OM_TSTVEL_AX_NUM
In Single State, VN403 contains the number of the axis on which to perform the speed test.
VN404 VN_EDIT2
VN404 allows enabling the new editor with multi-step on the NC. To enable the multi-step
editor, you must set VN404 to 1.
VN405 VN_PRG_NUM_TO_EDIT
VN405 allows the user to specify the number of the program to edit with the editor on the NC.
When the editor starts, if the value contained is greater than 0, it does not ask for the entry of the
number of the program to edit and the NC sets VN405 back to 0. On the other hand, if VN405 is
equal to 0, it requests the number of the program to edit.
VN406 VN_FIRST_PRG_LIST
In the GOSUB instruction in the program editor (for the time being only on the palm computer),
it is possible to select the program from a list rather than entering the number; by pressing the
PROG key, a list of programs will appear from which it is possible to select the program to enter;
the format of the list, i.e., the type of programs displayed, can be configured: the bit coding of
the program requested is passed in VN385. If bit 6 is active (user programs with specification),
VN408 specifies the number of the base matrix associated to the user programs requested.
If bit 5 of VN385 is active, VN406 (lower limit) and VN407 (upper limit) define the search
interval (LIMITS INCLUDED) of the programs to display in the GOSUB instruction.
VN407 VN_LAST_PRG_LIST
See description VN406.
VN408 VN_PRG_BASE_LIST
See description VN406.
VN409 VN_COP_WARN_ERR
VN409 contains the warning number on a Can Bus network.
VN410 VN_OBJ_DATA_LIST
VN410 allows configuring the list of programs displayed by the User Program Manager. VN410
is a bit variable whose bits have the same functionality as those of VN385. The description of the
bits of VN410 is shown below.
NC Prg.
ISO Prg.
Data Prg.
With Range
With Specification
Also hidden
The following table shows the description of the bit and the other VNs that must be managed to
correctly implement the list of programs using VN410.
VN411 VN_PAGE_MODE
Not yet available.
VN412 VN_PALM_PUT_KEY
VN412 is used to simulate the pressing of a key on a palm computer.
The code of the key whose pressing you want to simulate is entered in VN412 using suitable
PLC logic. The Numerical Control interprets it and behaves as if the key, with the recognized
code, had been pressed on the keyboard.
For example, if I want the alarms page (activated with function key F4) to appear when an alarm
occurs, I write a PLC logic that places the number 68 (F4) in VN412.
VN413 VN_CONF_ISTR
VN_CONF_ISTR (VN413) is added which, in bits 0 and 1, allows configuring the behavior of
the NC change speed instruction (instruction code 85): the instruction's standard behavior
provides for the change of speed to BEGING at the position specified; now it is possible to
change the behavior so that the position specified corresponds to the END of the speed change;
this is useful when, for example, you slow down (NewVel < CurVel where NewVel is the new
speed, i.e., the speed that you want to set and CurVel is the current speed) and you want to arrive
at a certain position already at the low speed.
Value Meaning
0 usual behavior: QuoAx = begin speed change position
1 if NewVel < CurVel => QuoAx = position of end speed change
2 if NewVel < CurVel => QuoAx = position of end speed change
3 QuoAx = begin speed change position
VN414 VN_EMRG_ERR_COD
In Sipro systems with CANopen interface, it displays the number of the network that generated
the error.
VN415 VN_EMRG_ERR_AX
In Sipro systems with CANopen interface and with type network: In the case of a node (drive)
error, Driver displays the error code in decimal format.
VN415 = 1 Fault Drive (drive generating the error)
VN415 = 2 Drive not enabled
VN416 VN_CONF_EDIT
Using VN_CONF_EDIT (VN416), it is possible to configure some of the functions of the NC
program editor:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
+
| | | | | | | | | | | |WNm| VaPrgName
|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
+
VN417 VN_DATA_EDIT_NUM
VN417 allows defining a user program for configuring the alternative editor to 9876.
VN418 VN_MENU_FUN_CODE
The variable VN418 allows activating, from the user pages, several predefined pages (and thus
not modifiable) internal to the firmware.
When you write the code corresponding to the page, it will be activated; so long as a predefined
page is active, management of the user pages is suspended and the value 1 is present in the VN;
when you exit from the predefined page the VN will return to the value 0.
If the code entered in the VN doesn't correspond to any predefined page, the value 16 will be
written in the VN.
At the moment, firmware version 5.09 contains the following predefined pages:
CODE DESCRIPTION
1 axis parameters and machine parameters
3 CANopen parameters (if managed by the tool)
VN419 VN_PRESET_CN_PASSW
The NC Presets functions, active in SiaxED for the initialization of the NC (parameters,
programs, RAM, PLC, etc.), are only executed if the automatic cycle is stopped and if VN419
has the value 1234.
VN420 VN_CNT_RTC_FULL
Counter closing routine interrupt system (RTC).
VN421 VN_FLOPPY_STATE
The VN421 contains the Floppy state.
Position Variables
Following are describe Position Variables with dedicated functions.
Notations
read only variables (its is possible to write a value in these variables but it has no
effect).
VQ97 VQ_VAL_RACCORDO
This VQ is used only with management of the tools in the program, for use call Sipro technical
office.
VQ97 contains the value [mm] for the circular connection specified in VN374. Depending on the
type of connector active (VN374), the value in VQ97 assumes the following meaning:
Variable available only on dedicated firmware
VQ98
This VQ is used only with management of the tools in the program, for use call Sipro technical
office.
With dedicated firmware, the Numerical Control allows tool compensation when working with
tools. The Numerical Control must know the dimensions of the tool to perform compensation.
VQ98 contains the tool length for tool compensation
VQ99
This VQ is used only with management of the tools in the program, for use call Sipro technical
office.
With dedicated firmware, the Numerical Control allows tool compensation when working with
tools. VQ98 specifies the dimension of the tool for tool compensation. However, during work,
the tool can be subject to wear and, thus, its dimensions will vary. The Numerical Control
provides VQ99 where you can set the increment value (in the case of the replacement of a worn
tool with a new one) or the decrement value (in the case of a worn tool during work) of the
dimension of the tool with respect to the intitial specification in VQ98. In this way, the
Numerical Control is able to compensate for the tool correctly, also taking into account tool
wear.
VQ256 VQ_MENU_LEVEL
VQ256 is used by the PLC to select functions from the standard menu.
VQ257 VQ_MENU_LEVEL_PALM
VQ257 is used by the PLC to select functions from the standard menu on the palm computer.
Chapter 4
Program Management
In the Program Management menu on the NC, in addition to
the Editor, which allows writing programs from the
keyboard, there are also other functions that are useful for
managing programs.
By activating the function [2] from the Program Management menu it is possible to display
information about the programs present in memory.
It displays the number of programs, the free memory and, for each program, the number of steps
it contains and its size in bytes. If the number of programs is such as to occupy more than one
video page, you can move with [PAGE]; to exit, use the [MENU] key.
Delete Program
It is possible to delete an entire program by using the function provided on the Program
Management menu (key [3]).
PROGRAM DELETION
Delete Program No.: 0
MENU to exit
It asks the number of the program to delete, so you must type the number and confirm it with
[ENTER]. It then asks for an additional confirmation: if you press [ENTER], the program is
deleted, if you press [MENU], you exit without deleting it.
Copy programs
It is possible to copy a program, i.e., automatically transfer a source program to a destination
program.
This operation could be necessary when you wish to modify part of a program while maintaining
the original program at the same time.
This function is activated with key [4] from the Program Management menu:
COPY PROGRAMS
Source Program:
MENU to exit
It asks the number of the source program, i.e., the one to copy, and you must type the number
and confirm it with [ENTER].
It then asks for the destination program, i.e., where to copy the program and, similar to the first,
you must type the number that you want to give the copy of the program.
If there is no other program with that number, the copy is performed and the message "Copy
completed; press any key" appears, otherwise:
At this point, if you want to overwrite the program copy on the one that already exists, with the
loss of the latter, you must press [ENTER], otherwise, you must press [MENU].
If you call a non-existent source program by mistake, the following phrase appears:
Talk with PC
By activating function [5] from the Program Management menu, you access Talk with PC, i.e.,
the SIAX is ready to receive/transmit programs and/or data and/or parameters to the PC over an
RS232 serial line using the TXP or SiaxED programs.
The following screen will appear:
TX/RX PROGRAMS
MENU to exit
To exit from the talk with PC menu, you must use the [MENU] key.
Display Editor
With the Display Editor, activated with key [7] from the Program Management menu, it is
possible to set a page to display messages (see paragraph Messages), connect them with
variables and see their values in Automatic.
To set the display, just type the number of the desired message and confirm your selection with
[ENTER]. The text associated with the message will appear on the monitor.
Then, using the [] key, you move to the right on the monitor and the variables that you want to
associate to the message are displayed.
To select the type of variables, you must use the [+/-] key and then confirm with [ENTER]:
The following displays are available:
VB = Binary Variables indexes from 0 to 255
VN = Numeric Variables with indexes from 0 to 255
VQ = Position Variables
AI = Analog Inputs
AO = Analog Outputs
VI = Position Variables without decimals
DT = Position Variables in data and time format (only with special firmware)
You must then type the number of the variable that you wish to confirm, again with [ENTER].
Using the [] key, you can select another message number to display and so on.
After having set the page as desired, you must store it with the [MEMO] key.
Finally, you exit by pressing [MENU].
If, during the selection of the number, you make an error typing a digit, you can correct it with
the [] key by deleting the last number typed.
As described in the paragraph relative to Messages, with the [F2] key, it is possible to display
what has been set using the Display Editor just described.
Chapter 5
Manual Movement
We analyze the manual movement function which permits
moving the axes directly from the keyboard or from the axis
inputs.
The Manual Movement of the axes function is activated with key [2] from the Main Menu and
allows positioning the axes using the relative commands programmed by the PLC (they can be
inputs or keys).
The following screen appears:
MANUAL MOVEMENT
LOC N0 Current Ovd 100.0 %
AX 1 -0.67
Speed: 30.0 Axis: 1
By acting on the manual controls, you can vary the position of the axis itself and you can observe
the effects directly on the display.
Manual movement allows move one axis at a time.
Information is also provided about the control mode of the NC (local or remote) with words in
the upper left (LOC or REM), the speed override and the tool set, which in our example is number
1 (T: 1).
ATTENTION!
Until resetting is executed, Manual movements do not take into account the software
end of travels set in the parameters.
In practice, for the SIAX150 and SIAX300C, it is sufficient to associate inputs 3 and 4 (and,
therefore, also the JOG+ and JOG- keys) to VB258 (JOG+) and VB259 (JOG-), respectively.
In this section, the selection of the axes is set in Automatic every time that the arrow keys are
pressed.
Upon the pressing of the keys and (codes 60 and 62), axis 1 is selected.
Upon the pressing of the keys and (codes 58 and 59), axis 2 is selected.
N.B. For the correct operation of JOG+ and JOG- of the two axes, in addition to the PLC
sections listed above, you must set the value 128 in VN370 from the PLC. This setting must
only be enabled in manual.
Multiple Manual
By setting VB266 to 1, there is also the possibility of executing Multiple Manual Movement.
The following screen appears:
MANUAL MOVEMENT
LOC N0 Current Ovd 100.0 %
AX 1 0.00 -0.67 *
<MENU> exit, change axis arrows
This function allows moving several axes at the same time in Manual by setting the following
VBs to 1:
Example:
By setting VB296 = 1 and VB237 = 1, you will have the simultaneous positive movement of axis
1 and the negative movement of axis 2, at the speed set in the respective Manual Speed
parameters.
The VBs are usually activated using external buttons. It is, therefore, necessary to connect to the
inputs relative to Variables just described from the PLC.
In Multiple Manual, movement is always continuous and, for this reason, the Increment in
Manual parameter is not considered.
N.B.: In addition, with Multiple Manual Movement it is possible to carry fixed position
movements as described in the paragraph Semi-automatic (Chapter Test).
If VB403 is set to 1, it is possible to execute movements in Semi-automatic with
incremental rather than absolute positions.
In Multiple Manual it is possible to launch the execution of a program directly from the
PLC: by setting VB265 to 1, the program is executed whose number is contained in
VN257.
You must, therefore, pay attention to the state of VB265 when you enter Multiple Manual
to avoid the inadvertant launch of a program.
Chapter 6
Automatic
We analyze the Automatic function, which allows the
execution of programs.
The Automatic function is accessed by selecting key [6] from the Main Menu and access is only
allowed after resetting the axes (see the Chapter Resetting Axes), in fact, in this way the zero
point is established from which all axis movements are then calculated.
In the event that you enter Automatic without having performed the resetting, the following error
message appears:
ATTENTION!
The axes have not been ZEROED
ACCESS NOT ALLOWED
Use the "Zero Axes" function
The last program executed is always proposed as the program to start from (except the first time
when "Prog:0"). If you wish to execute another, to choose the program, just press the [PRG]
key (the words "Execute Program No. X" will appear) and type the number
corresponding to the program and use [ENTER] to confirm.
It is also possible to select the step from which you wish to begin the execution of the program.
To do this, just move on the monitor with the [ENTER] key and type the number of the step
(always using [ENTER] to confirm). If you begin a program from a step other than the first, you
must be careful because variable initializations in the preceding steps will not be executed and
there may be steps skipped that are fundamental for the correct functioning of the program.
The monitor also provides another indication of the state in which the machine is found (for the
interpretation of the codes see the relative table in the Chapter General Programming Notes) and
it is a useful indication in the diagnostics phase since you can see, for example, if the program is
waiting for an input to be set or that an axis is arriving in position, etc.
The asterisk that you see alongside the current position indicates that the axis is in position.
If you wish to see the values assumed by the inputs and outputs, just press the [PAGE] key and
the screen with the values of all the inputs and outputs will appear. To exit from this screen, you
must use the [MENU] key.
To begin Automatic execution, just give an impulse to the START command (VB256).
The cycle can be interrupted with the STOP command (VB257). If, at this point, you give a new
START command, the cycle restarts from the point in which it was interrupted.
With [MENU], you exit from Automatic. Once you have abandoned the Automatic cycle, it is
no longer possible to resume direct execution of the program: it is, therefore, necessary to restart
from the first step.
In practice, for the SIAX150 and SIAX300C, it is sufficient to associate inputs 1 and 2 (and,
therefore, also the START and STOP keys) to VB256 (START) and VB257 (STOP),
respectively.
Here, emergency is connected to not input 5.
In this section the START, STOP and EMERGENCY commands are defined.
Pressing the START key or activating input 1 corresponds to the START command.
Pressing the Stop key or activating input 2 corresponds to the command Stop.
Here, emergency is connected to not input 5.
Program name
It is possible to select the program to execute by its associated NAME and display that name in a
dedicated page.
The "List Programs in memory" function (item 2 on the Program Management menu) displays
the Number, Name, Number of Steps and Size in bytes for each program.
When the NC is controlled in REMOTE, it can only be found in Automatic or Manual (Manual if
VB275 = 0, Automatic if VB275 = 1) and, if necessary, the first START given in Automatic
causes axis resetting to start.
In practice, in REMOTE it is not possible to go to the main menu and, therefore, to all the relative
submenus, but it is only possible to go from the automatic menu to the manual menu and vice
versa, by acting on VB275.
When you go from REMOTE to LOCAL, the NC remains in the state in which it is found
(Automatic or Manual), i.e., it does not return to the Main Menu.
When the NC is in LOCAL in Automatic or Manual or at the Main Menu and you go to REMOTE,
the NC is found in the state given by VB275 (Manual if VB275 = 0, Automatic if VB275 = 1).
The passage from REMOTE to LOCAL and vice versa, is managed by the PLC: usually a coding is
used given by the key sequence [SHIFT] + [CODE] and you will change the text in the upper left
of the display.
N.B.: In REMOTE, the selection of the axes for manual movement must be performed by setting
the relative axis selection VBs (VB296-VB299) from the PLC.
In the first line of the first Mathematical Block, the state of VB274 is changed so as to go from
local to remote and vice versa. The second line resets the value contained in VN258.
In the first line of the second Mathematical Block, the state of VB275 is changed so as to go
from automatic to manual and vice versa. The second line resets the value contained in VN258.
Chapter 7
Tool Parameters
The Tool Parameters function is analyzed, which allows
setting the values of interest for the tools used.
With the Tool Parameters function, it is possible to set the parameters of the tools used by the
machine in the various applications driven by the programs.
N.B.: IT IS only present in the case that interpolation is provided for.
To access Tool Parameters, you must select key [7] from the Main Menu and then type the
requested password, which consists of the numbers 4 - 5 - 6 - 2 - 5 - 8.
The following screen will appear:
Tool No.:
To select the tool to set parameters for, type the number that identifies it and press [ENTER] to
confirm. You will see:
Tool No.:
To set the length of the tool, just type the value and confirm with [ENTER]. To go to other tools,
you need to use the [PAGE] key.
Once you are finished entering or changing the values of interest, you need to use the [MEMO]
function to store the new data. If, on the other hand, you wish to exit without storing it, you must
use the [MENU] function.
It should be noted that, on power-up, the tool is automatically set to number 1, so if you want to
use another tool, it must be specified in the program using the appropriate instruction (TOOL
no; see Use of Tools in the chapter General Programming Notes).
Chapter 8
Origins
The Origins function is analyzed, which allows setting
several origins of reference with respect to the absolute
origin.
The positions that are displayed on the screen always refer to an origin. If resetting has not been
performed, this origin is set on power-up in the point at which the axes are found.
With the execution of Resetting, this origin is changed and taken as the machine zero (absolute)
origin.
This origin is identified as ORIGIN 0 and cannot be changed without performing another
resetting.
ORIGIN 1
1 - AX1 0.000
2 - AX2 0.000
3 - AX3 0.000
4 - AX4 0.000
Once the origins are set, you can make the desired origin active by using the following
instructions in NC or ISO programs:
55 ORG n for NC programs
G55N n for ISO programs
n is the number of the origin that is made active.
To return to the absolute origin, you must set the active origin to 0.
To execute Self-learning of the origins, it is necessary to dedicate several sections of the PLC to
setting several dedicated variables (see the example shown further below).
With suitable conditions (keys, inputs, etc.) you must set the VBs for acquiring axis origins
(VB375 to VB379) to 1.
You must then set VN305 (number of the origin to acquire) and VN306 (number of the origin to
set).
At this point, you must give an impulse to VB375 (Origin Acquisition) so that the origin
contained in VN305 is acquired.
If you also give an impulse to VB374 (Setting Active Origin) the origin contained in VN306 is
made active.
N.B.: If VN305 and VN306 coincide, by setting VB375 and VB374, you acquire the new origin
and make it active.
It is, thus, possible to set the positions of the origins directly from a program.
Chapter 9
User programs
The Numerical Control allows the management of Data
Setting programs, called User Programs.
USER PROGRAMS
The Numerical Control allows the management of Data Setting programs, called User
Programs. These programs serve to set a data table that can be used by the NC in the
Automatic phase. For example, suppose we have to cut slabs from a block of marble; the slabs of
the block are of different widths: 3 slabs of 15 cm, 4 slabs of 20 cm and 2 slabs of 25 cm. As you
will note, the work consists in repeating the same setting (number of slabs and slab width) for 3
times (3 steps). In the user programs, all the steps use the same supporting variables. In this
example, the supporting variables, which constitute the basic step, are:
So, each step consists of 2 variables, a VQ and a VN, and all the steps are supported by the same
2 variables (VQ100 and VN120).
The composition (structure) of the step is defined by the so-called "base matrix." The base
matrix is a standard NC program that lists which, and how many, variables comprise a single
programming step; in our example, the base matrix is the following:
: VN120 = 3
VQ100 = 50
You will note that each time a new step is created, the value of its variables is, by default, the
value specified in the "base matrix" program: in our example, 3 for VN120 and 50 for VQ100.
So, in short, the "base matrix" program specifies the composition of the single programming step
and allows defining a default value for its variables.
NOTE In defining the base matrix, the VBs must be contiguous and an even
number.
NOTE In defining the base matrix, you can use VNs with index greater than
50
If the programming step also contains Alphanumeric Variables (VAs) it is necessary to specify
the length of these variables in the manner that we will see further on; this is necessary because
the Alphanumeric variables have a settable length.
A User Program formed from steps that are equal is defined a "Single Header" program (data
coding = 1). To manage this type of program, the Numerical Control uses 11 consecutive VNs
that the programmer must indicate during the programming phase. To indicate which VNs are
reserved for the management of user programs, we use VN382, which contains the index of the
first of the consecutive VNs. If, for example, we set VN382 to 50, the VNs reserved for
managing user programs are the following (and we also show the function of each variable):
H Byte L Byte
H Byte: Contains the maximum number of characters of the user program type
VAs that you wish to construct.
L Byte: Contains the number that identifies the type of data coding:
1. Single Header: The data program consists of a series of equal steps
described by the base matrix
2. With Step Header: The program is similar to type 1 but, in addition to the
series of steps corresponding to the base matrix, it also contains a step of a
different format, which is described by the Specified Header matrix in
VN61
H Byte = 19H
L Byte = 01H
Thus, the length of the VAs is equal to 1916 = 2510 , while the coding type is 1
VN53 no. of the user program on which to work
The Numerical Control requires that you specify the number of the user program
on which you wish to perform certain operations. In VN53, you enter the number
of the user program on which you wish to perform the operations indicated in
Table 2, which include those of creating, renaming and deleting, copying and
saving.
NOTE
Writing the program number in VN54 is equivalent to writing the program number
in VN53 together with writing the LOAD command in VN58.
NOTE
Writing the number of the step of the active program in VN55 has the effect of
loading that step.
Table 1
NOTE There are two modes for loading a step of a user program.
The basic operations that must be performed to create user programs are:
Write the base matrix (Operation performed with any editor, including the SiaxED
editor)
Reserve the 11 consecutive VNs for managing user programs with VN382 (operation
performed using the PLC program)
At this point, you can perform all the operations on the user program whose base step is defined
by the programmed base matrix.
NOTE The name of the new program is specified in the 0 index Alphanumeric
Variable (VA0), (a variable reserved for the user program name).
At the time of creating a new user program, 0 is written in VN54, and just the terminator (\0) is
written in VA0.
Figure 3-59
The User Program Manager object allows managing user programs in a flexible manner.
User Pages are the most suitable tool for creating and managing user programs.
To explain the operation of the User Program Manager, we will illustrate the following
example.
Example 1
Suppose we wish to create a data editor page with the user page tool in which data for 4
parameters (4 VQs) and the work type (VN) can be entered. We thus create a graphic page in
which we display the 5 parameters and their associated values that we can modify from the
keyboard of the NC.
Figure 3-60
As you can see in the graphic page above, 5 parameters have been introduced called Work Type
(VN) and Param1, 2, 3 and 4 (the 4 VQs). To do this, we have inserted the text objects, Work
Type and Param. 1, Param. 2, Param. 3 and Param. 4. At their side, we have inserted a number
object associated to VN100 (Work Type) and 4 number objects associated to VQ1, VQ2, VQ3
and VQ4.
The graphic page provides the user the possibility of changing these parameters.
At times, however, there is the need to be able to enter more types of work, with their relative
associated parameters. For this reason, the User Program Manager is used.
The User Program Manager is a graphic page object and refers to a base matrix that was
illustrated in the User Programs paragraph.
The base matrix for the example is as follows:
Figure 3-61
As can be noted, we inserted 4 VQs (VQ1, VQ2, VQ3 and VQ4) and one VN (VN100) with
indices equal to those of the number objects inserted in the graphic page illustrated above.
At this point, we have to insert the User Program Manager in the graphic page. Below, we
show the settings window relative to the User Program Manager object in the example.
Figure 3-62
The first thing to do is to enter the number of the base matrix to which this User Program
Manager makes reference. In the example that we are illustrating, the number of the base matrix
is 9001 and, you will see from the figure, this number was entered in the Base Programs box.
Since there is no need to edit several steps at the same time, we did not create an edit matrix and
we entered the same number of the base matrix (9001) in the corresponding Edit Programs box.
To know how many steps the user program has and in which step we find ourselves, we insert a
Step text object accompanied by two number objects in the graphic page: one is associated to
VN55 (the current step), while the other is associated to VN56 (total steps).
NOTE: These VNs are those for managing user programs. In the User Programs
paragraph in this manual, we explain all the VNs for managing user programs.
Figure 3-63
In the same manner, we insert in the graphic page, the number and name of the user program in
which we will be inserting the values of the parameters. To do this, we insert a Prof. text object
accompanied by a number object associated to VN54 (if the program already exists) or to VN53
(if the program does not exist, i.e., it must be saved for the first time) and a number object
associated to the VA0 in which the name of the user program is placed.
Figure 3-64
Figure 3-65
Having set this parameter and sent the page to the control, we note that when the PROG key is
pressed, the steps of the user program go to the value 1/1 (in the graphic page, STEP 1/1).
Pressing the PROG key has the effect of creating, in RAM memory, the first step of the user
program that we want to create. At this point, we have the possibility of entering the data for the
parameters and the work type (three types have been provided) and of adding new steps. To do
this, we use the boxes in the Step Management HotKey section of the User Program Manager
object. As you will see in the following figure, in the example we set the Append HotKey by
entering the INS key that, when pressed, has the function of adding a new step to the bottom of
the list of steps present.
Figure 3-66
Still in the Step Management HotKey section, as you can see in the figure above, the PAGE and
HELP keys are entered in the boxes, Step +1 and Step 1. Pressing these keys allows scrolling
through the steps of the program that you are creating or changing (PAGE scrolls forward one
step and HELP scrolls backwards one step)
Once all the desired steps have been entered, to save the program permanently, you must save it
in Flash memory. The program is saved by entering the number and name of the user program.
To set the User Program Manager object so that it is saved with the number and name, you
must select the items from the sections Display Options and List Options, as in the
following figure.
Figure 3-67
The first time, a new user program is saved with the "Save with" function of the Program
Management HotKey section of the User Program Manager object. In this box, we entered the
VAR key. When the VAR key is pressed, the program is only saved in Flash memory if the
number and name of the user program that you are creating have been entered. To enter the user
program number and name, refer to the VN53 associated to the number object near the word
PROG., as shown in the figure.
Figure 3-68
Figure 3-69
As you can see, this object is associated to concealment bit 2 of VN80 set in the General Data of
the graphic page. This happens because the saving of the user program refers to VN53 on upon
creation, i.e., when it is written to Flash memory for the first time. Successive savings, i.e., when
you make changes to already existing user programs, are made with reference to VN54. For this
reason, another number object, associated to VN54, has been inserted in the graphic page near
the world PROG., as shown in the figure.
Figure 3-70
Figure 3-71
The same concealment logic is used for the link objects [SAVE] and [STORE]. In fact, there are
two link objects in the graphic page with the same text, as can be seen from the following figure.
Figure 3-72
The difference between the two objects is in the setting of the return HotKey when the [STORE]
key of the Numerical Control is pressed and in the concealment mask associated to the two
objects. The first [STORE] [SAVE] link object of the list is hidden when bit 1 of VN80 is 1 and,
thus, has the same behavior as the number object associated to VN54, as can be seen from the
following figure.
Figure 3-73
As you can see from the figure above, this link object is activated by pressing the [STORE] key
of the NC and returns (return HotKey) to the page the return code of the [CODE] key. This code
is managed by the User Program Manager and has the effect of activating the Save operation of
the user program, as can be seen from the following figure.
Figure 3-74
In this case, the operation is saving a user program already present in memory and with the
number in VN54.
The second [STORE] [SAVE] link object of the list is hidden when bit 2 of VN80 is 1 and, thus,
has the same behavior as the number object associated to VN53, as can be seen from the
following figure.
Figure 3-75
As you can see from the figure above, this link object is activated by pressing the [STORE] key
of the NC and returns (return HotKey) to the page the return code of the [VAR] key. This code
is managed by the User Program Manager and has the effect of activating the Save with
operation of the user program, as can be seen from the following figure.
Figure 3-76
In this case, the operation is saving a user program that is NOT yet present in memory and with
the number in VN53.
So, as you can see in the figure above, the operations on the user program are:
Creation of a new program by pressing the [PROG] key of the NC. This
operation creates a new user program in RAM memory.
Saving a user program with two modes:
Save with by pressing the [VAR] key of the control. This operation saves a
user program in Flash memory that is not yet present in memory. In this case,
you must enter the program number in VN53.
Save by pressing the [CODE] key of NC. This operation saves a user program
in Flash memory that already exists in memory and whose number is in VN54.
Figure 3-77
When the [INS] key on the NC keyboard is pressed, a new step is added at the end of the list of
steps already present in the user program.
The example implemented provides for three types of work (WORK TYPE parameter associated
to VN100). In the case in which the work type is 1 or 2, there are 4 parameters to enter for each
step (parameters 1..4 associated to VQ1..VQ4). In the case where the work type is 3, there are
only 2 parameters to enter (parameters 1..2) and the other two (parameters 3..4) are hidden. In
fact, text objects Param. 1 and Param. 2 and the number objects near them, associated to VQ3
and VQ4, have a concealment mask with bit0 active. In other words, when bit 1 of VN80 is 1,
these objects are hidden and the step associated to work type 3 only allows the entry of data for
the first two parameters Param.1 and Param. 2.
In the PLC of the Example paragraph, we implement the PLC for the management of this
concealment.
Implementing the Step Scrolling Function
The User Program Manager allows access to all the steps of the user program that you are
creating/editing. These functions are activated by entering the activation keys in the Step +1 and
Step 1 boxes of the Step Management HotKey section of the User Program Manager, as can be
seen in the preceding figure.
Program Archive
At the time of saving, user programs are saved in Flash memory. The User Program Manager
allows managing the list of these programs that are already stored. In fact, in the example that we
are illustrating, there is a link object, [F4] [ARCHIVE] in the graphic page that allows going to a
new graphic page:
Figure 3-78
Figure 3-79
As can be seen from the figure above, the link object [F4] [ARCHIVE] is associated to the F4
key of the NC. When this key is pressed, you go to the next graphic page.
Figure 3-80
This page displays the user programs in memory on which you can perform the listed operations:
Edit
Delete
The list of user programs is managed by the User Program Manager object in this page. In this
case, the User Program Manager is set in this way:
Figure 3-81
In this case, we only set the program management HotKeys Select and Delete, associated,
respectively, to the [CODE] and [DEL] keys of the NC.
In the List Options and Display Options sections, we selected the items, Prg Number and Prg
Name. In this way, the list of programs will consist of both the program number and program
name. In addition, the item Visible was selected in the Display Options section. This allows
making the list of user programs visible in the graphic page.
As can be seen in the figure above, even this User Program Manager is associated to base matrix
#9001. In this page, we inserted the link object [ENTER] [EDIT], which has been set in the
following manner:
Figure 3-82
As you can see, it is associated to the [ENTER] key of the NC and returns the code of the
[CODE] key (return HotKey) to the User Program Manager. In addition, when the [ENTER] key
is pressed, this object takes you back to graphic page Auto_1, which is the one for entering the
steps of the user programs. So, pressing the [ENTER] key has two effects:
It sends you back to page Auto_1 to edit the selected user program.
It returns the code of the [CODE] key to the page and it is interpreted by the
User Program Manager, which selects the user program from the list in which the
cursor is located.
There is another link object on the page, [MENU] [EXIT], which has the effect of closing this
graphic page and returning to the step editing page.
The last object on the page is the text object [DEL] [ELIMINATE]. This object only displays the
key that must be pressed to delete the selected user program from the list. In fact, as can be seen
above, the [DEL] key is associated to the Delete function of the User Program Manager.
PLC of the Example
The user program management example explained in the preceding paragraph presupposes that
the NC variables have been set for the correct operation of the user pages and the User Program
Manager.
For the purposes of the correct operation of the example, it is necessary that VN53 and VN54 be
alternatively hidden, on the basis of a precise logic. This is handled by the PLC, which will hide
the two fields, by means of two concealment mask bits on the page, according to the following
logic:
If VN54 = 0, it is hidden
If VN54 <> 0 or VN56=0, VN53 is hidden
If the user program is not saved in Flash memory, the number object associated to VN54 is
hidden and the number object associated to VN53 remains active. Likewise, if VN54<>0, i.e.,
the user program is already saved in Flash memory, the number object associated to VN53 is
hidden and the number object associated to VN54 remains active.
Example 2
To explain the functioning of the User Program Manager object, below we provide a new slab
cutting example, implemented with user pages.
We want to cut a block of marble with slabs of different thicknesses: 3 slabs 15 cm thick, 4 slabs
20 cm thick and 2 slabs 25 cm thick. As we have seen in the preceding paragraph, there are 2
variables that identify the step:
Slab thickness
Specifies the thickness of the slab and a VQ is used to implement it
Number Pieces
Specifies the number of pieces to cut and we use a VN to implement it.
Another variable is also used, which indicates whether or not the cut needs water on the blade.
Water Jet
Serves to indicate whether or not there is water on the blade during cutting and we use a VB to
implement it.
The first operation, according to what was said in the preceding paragraph, is to write the base
matrix.
The matrix associated to this application can be the one in Figure 3-89. The structure of the base
matrix is that of the NC programs and it can be written with any editor. The base matrix in
Figure 3-89 was written with the SiaxED editor.
Figure 3-88
As you can see, pressing the [PAGE] key on the NC allows advancing to the step following the
current one, while the [HELP] key allows accessing the step preceding the current one.
Figure 3-89
After defining the base matrix (user program step), we have to reserve the 11 consecutive VNs
that are used by the Numerical Control to manage the user programs. The index of the first of the
consecutive VNs is written to VN382 by the PLC.
VN382 usually has a value of 50, which represents the index of the first of the consecutive VNs
of the table in the preceding paragraph.
At this point, we create the user program management pages whose base matrix is defined in
Figure 3-89. The initial page, which contains a User Program Manager object, lists the
operations that can be performed on user programs. The setting of operations on user programs is
carried out with the Program Management HotKey drop-down menus in the User
Program Manager object.
Program Management HotKey Options
These options allow managing the operations of saving, creating and deleting user programs
associated to the base matrix initially defined.
Select
Choice of the key that allows selecting one of the user programs present in memory.
Delete
Choice of the key that allows deleting a selected user program.
Save
Choice of the key that allows saving the program entered.
New
Choice of the key that allows the creation of a new user program on the associated base matrix.
M0000464 Page 417
Chapter 9: User Programs Programming Manual
Rename
Choice of the key that allows renaming an already existing program.
Copy
Choice of the key that allows making a copy of an already existing program.
Inside the drop-down windows, you select the NC keys that perform the associated operation
when pressed. If, for example, you select the F1 key in the drop-down menu entitled New, when
you press F1 on the NC its effect will be to create a new user program containing just one step.
In the case of the cutting a block of marble example, as described in the User Pages Editor
paragraph, the following page was created:
Figure 3-91
F1 New : a link object to the page for setting the data of the steps of a user program
when you are creating a new user program.
F2 Edit: a link object to the page for setting the data of the steps of a user program that
you want to edit.
F3 Delete: a text object that indicates the key (F3) used for deleting a user program
Menu: a link object for returning to the preceding page to exit from the user program
management page.
0000 Program Name: a User Program Manager object in which the Program
Management HotKeys are set as follows:
Figure 3-92
As you can see, the operations of creating a new, editing and deleting a user program have been
associated, respectively, to the NC F1, F2 and F3 keys.
For example, pressing F1 on the NC, when you are in the page in Figure 3-91, will have the
effect of creating a new user program with a first step whose base matrix is the one whose
number is indicated in the Base window (#9001) . In our example, the number 9001 is written,
because this is the number associated to the base matrix defined in Figure 3-89.
Pressing the F1 key also has another effect. In fact, it is also associated to the F1 New link
object. When F1 is pressed, you access the page for setting the values of the step variables (the
variables of the base matrix). The page for entering the values of the variables is the following:
NOTE The user programs also provide for the use of the alphanumeric VA
variables. These variables have dimensions that can be set by the
user. VN52 is used to specify the number of characters being used.
The number of characters specified must be odd.
Figure 3-93
WithWater: a text object. Alongside this object, there is a number object associated to
VB1
SlabNumber: a text object. Alongside this object, there is a number object associated to
VN120
Thickness: a text object. Alongside this object, there is a number object associated to
VQ 100
As you can see, the three number objects are precisely the variables (VB1, VN120 and VQ100)
of the base matrix. In fact, the step of the user program that is being created is the one with the
variables defined in base matrix #9001.
The following information is available during the entry of data into the user program:
Total Steps
Information present in VN56
Current Step
Information present in VN55
This information can be displayed in the data entry page, allowing the operator to know in which
step he is in and how many steps there are in the program he is creating or editing. The example
illustrated in Figure 3-93 has the text objects, Total Steps and Current Step. Near these objects,
NUMBER objects have been inserted that are associated, respectively, to VN56 and VN55.
The creation of a user program allows for the entry of the program number and name. In the first
case, VN53 is used to write the number of the user program that you want to create. In the
example, the data entry page (Figure 3-93) contains a text object.
User PRG Number. Under this object, there is another number object associated to
VN53. When it is accessed for the first time for the creation of a new user program, the
number of the program created in VN53 must be entered.
The page in Figure 3-93 also contains a User Program Manager object whose Program
Management HotKey Options are the following:
Figure 3-94
Page 420 M0000464
Programming Manual Chapter 9: User Programs
As you can see, the only operation set is that of Save with. This operation requires the entry of
the number of the new user program that is being created. In fact, first you enter the number of
the user program and then you save the user program with the [STORE] key associated to the
Save with operation. In the case where you press the [STORE] key without having entered the
user program number, the User Program Manager generates an error.
The single steps of a user program are managed in the page in Figure 3-93. The User Program
Manager object provides the possibility of entering the keys to be associated to the operations
on the single steps. This association is made in the Step Management HotKey Options section.
Step Management HotKey Options
These options allow managing the operations of adding and deleting steps of the user program by
using the base matrix (in the example, #9001) as a reference.
There are options that allow managing the display of the various steps in the list.
Step +1 - Step -1
You enter the keys associated to scrolling through the various program steps. In Step -1, you
enter the key for accessing the preceding step while, in Step +1 you enter the key for accessing
the next step.
Step +N - Step -N
Like the Step +1- Step -1 options, but for moving N steps (N specified in the N window).
Insert
Choice of the key that allows inserting a new step in the current position inside the list of steps
associated to the program.
Append
Choice of the key that allows inserting a new step at the end of the list.
Delete
Choice of the key that allows deleting the current step from the list.
Relative to the example to which we are referring, the Step Management HotKey Options have
been set as follows:
Figure 3-95
As you can see, to append a new step, we use the NC's [PAGE] key, while to move within the
steps of the user program, we use the [LEFT] and [RIGHT] keys.
After the creation and saving of the new user program, the possibility is provided of returning to
the page in Figure 3-62. There is a link object to allow the return to this page.
Menu: a link object associated to the [MENU] key of the NC. When the [MENU] key
of the NC is pressed, you return to the user program list page (Figure 3-91).
In addition to operations on steps using the Step Management HotKey Options or on user
programs using the Program Management HotKey Options, display properties can also be
associated to the User PRG. Manager object. To do this, we use Display Options.
Display Options
The options listed in this section define the display properties of the User PRG. Manager object.
Selectable*
Selecting this item makes the User PRG. Manager object selectable.
PRG Number*
The selection of this item allows creating a User PRG. Manager object with the display of the
program number of the user program list. I.e., it reserves a column inside the object where the
program number of the user program list will be displayed.
PRG Name*
The selection of this item allows creating a User PRG. Manager object with the display of the
program name of the user program list. I.e., it reserves a column inside the object where the
program name of the user program list will be displayed.
Size
Current Step
Total Steps
Visible*
Selecting this item makes the User PRG. Manager object visible on the user page.
NOTE The items useful for programming with Siax Numeric Controls are
those indicated by the asterisk (*). The others have an effect only
when programming in the SiaxPC environment.
In the example we are describing, the items selected for the user program list management page
in Figure 3-91, are the following:
Figure 3-96
The items selected allow having a User PRG. Manager object that will be visible and selectable
on the display of the Numerical Control (items Visible and Selectable selected), and it will have
two columns reserved for the name and number of the programs on the user program list
(items PRG Number and PRG. Name selected).
On the other hand, as regards the data setting page in Figure 3-64, the settings are as follows:
Figure 3-97
In this case, the items selected allow displaying the number of the user program. This selection is
essential for saving the user program. In fact, selecting the program Number item guarantees that
the program number entered in VN53 is valid.
To guarantee that the display properties of the User PRG. Manager object are activated, you
must specify the user program List Options.
List Options
The options listed in this section define the internal management properties of the user program
list.
NOTE The items selected in the Display Options section must be confirmed
in the List Options section. In other words, if you select the item PRG
Number in the Display Options section, you must select the
corresponding PRG Number item in the List Options section.
PRG Number*
The selection of this item indicates that the user program list is being managed taking into
consideration its identification number.
PRG Name*
The selection of this item indicates that the user program list is being managed taking into
consideration its name.
Size
TotStep
Delete
Rename
NOTE The items useful for programming with Siax Numeric Controls are
those indicated by the asterisk (*). The others have an effect only
when programming in the SiaxPC environment.
In the case of the User Program Manager of the page in Figure 3-91, the settings are the
following:
Figure 3-98
On the other hand, in the case of the User Program Manager of the page in Figure 3-93, the
settings are the following:
Figure 3-99
You will note that the settings in Figures 3-96 and 3-98 (User Program Manager object settings
of the page in Figure 3-91) are equal. The same can be said for the settings in Figures 3-97 and
3-99 relative to the User Program Manager for the page in Figure 3-93.
Once we return to the user program list page in Figure 3-91, we can also perform Edit (F2 key)
and Delete (F3 key) operations. As can be seen in the user page in Figure 3-91, the user
program list is displayed on the left side of the page and the operations that can be performed on
them are displayed on the right. To perform a deletion and/or edit, you must position on the
program you want to act on with the [ ] [ ] keys and press the key associated to the operation
(F2 to edit and F3 to delete).
For example, pressing the F2 key on the NC will have the effect of selecting, from the list, the
user program where the cursor is located. The base matrix is the one whose number (9001) is
indicated in the respective Base window of Figure 3-92. In our example, the number 9001 is
written, because this is the number associated to the base matrix defined in Figure 3-89.
Pressing the F2 key also has another effect. In fact, it is also associated to the link object F2
Edit. When F2 is pressed, you access the page for setting the values of the step variables (the
variables of the base matrix) of the program selected. The page for entering the values of the
variables is the following:
Figure 3-100
As you can see, the page for entering data in the steps of the user programs during editing
(Figure 3-100) is similar to the page for entering data in the steps of the user programs during
creation (Figure 3-93).
The objects inserted are all equal except for the number object below the text object User PER
Number. In the case of the page in Figure 3-100, recalled by F2 Edit, this number object is
associated to VN54, while, in the case of the page in Figure 3-93, recalled by F1 New, it is
associated to VN53.
This is because, in the phase of creating a user program, the number of the program to create
must be specified in VN53 (see the VN table in the User Programs paragraph). On the other
hand, in the editing phase, i.e., where the program already exists and has an identification
number, the number of the selected program is specified in VN54. In this latter case, pressing the
[STORE] key has the effect of saving the changes to the user program whose number is specified
in VN54.
The changes are saved with the [STORE] key because the User Program Manager on the page in
Figure 3-100 has the following settings:
Figure 3-101
In this case, unlike the User Program Manager on the page in Figure 3-93 (as described in Figure
3-94), the STORE key is associated to the Save operation of the user program.
Chapter 10
Appendix
Various subjects are described (programs, utilities,
connections, etc.) that can be useful in programming SIPRO
Numerical Controls.
Rather than develop programs using the Editor on the control, or that contained in the SiaxED
program, it is possible to program using a normal text editor (even DOS: EDIT).
These program files must have the extension "src" and must be written following the directives
provided in the file CSX.DOC (contained in the directory C:\SIAX300\COMPSX) which have to
do with:
variable notations;
program identification directives (number, name, definitions, files included)
instruction syntax;
the list of recognized "SIAX" instructions;
the list of recognized ISO instructions;
the parameter codes for several particular instructions.
In practice, you proceed as explained in the paragraph relative to the EASY CASE.
There is also the compile command, which allows autoamtically compiling all the programs
present in the directory in which you are working. This command also creates the err file that
contains messages from the compiler.
If the program was written correctly, you will see the message:
-----------------------------
SIPRO - VERONA
CSX - ver 4.9a - 22 Oct 1997
-----------------------------
If, on the other hand, the program contains errors, a message will appear indicating the program
lines where errors and the type of error were encountered.
Example:
-----------------------------
SIPRO - VERONA
CSX - ver 4.9a - 22 Oct 1997
-----------------------------
TXP
This is the basic version of SiaxED. You enter this program by typing TXP from the directory
in which you are working.
Typing [?] or help displays the list of commands available, with a minimum of description.
SIAX
CN
Programs
Program Editor CSX PC-NC *.eep
conversation
E.g.: edit.exe Compiler Axis parameters
parax.dat
Machine param.
NC development system parmac.dat
SiaxED
PLC
These utilities provided together with the SiaxED program are automatically installed in the
SIAX300 directory when you request the installation of the complete system and can be
executed in a DOS environment.
Vwap.exe
This is a program that allows transforming the files containing the axis parameters and machine
parameters from machine language format (such as parax.dat) to text format (parax.txt) and vice
versa.
In this way it is possible to transform, print, etc. the file containing the parameters set by the
control.
This program is used by means of the following functions:
- PARAX.BAT (axis parameters) trasforms the file parax.dat into a text file (parax.txt); with the
- b option (i.e., by typing parax -b ) you perform the reverse operation (deriving the file
parax.dat from the file parax.txt). The file parax.dat is transmitted to the PC and the control using
SiaxED or TXP.
- PARMAC.BAT (machine parameters) transforms the file parmac.dat into a text file
(parmac.txt); with the option - b you perform the reverse operation. The file parax.dat is also
transmitted to the PC and the control using SiaxED or TXP.
Lstvar.exe
This is a program that creates a list of the outputs and variables (Binary and Numeric Variables)
used in a PLC program. It is useful in managing the common memory area shared by the PLC
and the control.
It is used through the function GETVAR.BAT (you must type getvar followed by the name of
the PLC program).
Stdprint.exe
This is a converter that allows transforming the user programs into text files that can thus be
printed or edited.
The user programs are saved with the extension EEP (for example, prg0001.eep) and the program
STDPRINT.EXE converts a file *.EEP into a corresponding *.TXT file in ASCII format and,
therefore, easily printable.
N.B.: The *.EEP file must be in the current directory and the *.TXT file is created in the same
directory.
Stdeditc.exe
The program STDEDITC.EXE is the PC version of the editor on the Numerical Control,
described in the chapter Programming Directly from the Keyboard.
It allows editing the file directly in EEP format and, therefore, not needing a subsequent
compilation.
Custom Logo
To upload an logo on the NC is used: - the SiaxEd programme to upload a graphic logo
- the TxW programme to upload a text logo
In numerical control with the display you can customize the initial logo.
You must respect the following rules:
Graphic display (16 x 40 , 8 x 40)
The file of the logo must be a bitmap BMP format uncompressed black and white with
dimensions:
- 240 x 128 for display 16 x 40;
- 240 x 64 for display 8 x 40.
NOTE: This text files must be written in hexadecimal 00 within the file as character after
the last character of text (use an hexadecimal editor).
Text file
Hexadecimal file
To uload a text logo on the NC is used the TxW programme (see M0000531 manual) as in the
following example:
jumpl abs instruct the NC to execute the Loader version present on the board, otherwise is
executed the Loader version present in the Firmware.
cfb 3 the next writing instructions of the Flash Memory will be executed on the 3th bank of the
Flash Memory.
wff C:\TxW\Sipro.txt 4 Writes the content of the Sipro.txt file ( which is found in the
directory C:\TxW) in the Flash memory, starting with the 4th
sector.
reboot Restart the Firmware of the NC ( equivalent with power-off + power-on).
Graphics color display (Siax 100)
The logo must have the following maximum size: 320 x 200 uncompressed BMP 256
colors.
Graphics display monochrome (Siax 80)
The logo must have the following maximum size: 320 x 200 uncompressed BMP white
and black.
Page 432 M0000464
Programming Manual Chapter 10 : Appendix
Key codes
The table below shows all the codes for the keys on the keyboard of the control.
At any rate, it is possible to trace the codes of the keys by displaying VN258, which contains the
code of the last key pressed, through SiaxED or the PLC.
With the SIAX300C or SIAX150 (standard version) the keys START, STOP, + and - are to be
considered as inputs and not as keys and, therefore, the relative codes are not valid.
On the other hand, in SIAX150s with special configurations, these keys are not physically
connected to the inputs 1, 2, 3, 4 and are, therefore to be considered normal keys.
Data insertion
If the CLEAR variable is not active, the INPUT data (VB370) is inserted in the shift register in
correspondence to the rising front of the DATA INSERTION LATCH (VB368).
The variable VN300 is incremented by one unit.
Data extraction
If the CLEAR variable is not active, in correspondence with the rising front of the DATA
EXTRACTION LATCH (VB369), data is extracted from the shift register and is available in
VB371. The data extracted is that which was introduced n beats before, where n is the value
contained in VN300.
The variable VN300 is decremented by one unit.
In this case, the SIAX, as regards the NC, only talks on COM1, while as regards the PLC, only
on COM2.
To enable the management manual brake on the TW3 drive you must set the parameters Can
Open Par1 bit 1 to 1 (value 2). So it is possible to choose to handle the brake electromechanically
leaving the bit 2 of the same parameter to 0 or by software setting the bit2 to 1 (value 4 to be
added to the value 2 above).
If you decide to manage software is available the function 152 of the plc data type 6 (see
documentation on manual plc)
2.6 09/01/08 Added Tracking mode 101. Correct exemplaryscheme G43 and G44 istruction.
Update Barcode description. Update Protocol Modbus description
2.7 30/01/08 Added Variable Structure Siax 100 Plus. Update chapter NC Master Protocol.
Added chapter Special handling for rotating table. Removed chapter Example
of application for rotating table. Added VN420 in table and its description.
Update FUN62. Added FUN216, FUN255.
Added paragraph Custom Logo in Appendix. Added note at the beginning of
chapter 5.
2.9 09/02/09 Added Tracking modes 12, 13, 14, 15, 104, 105, 107, 109, 112, 113, 114 and 115
Added the Modbus function Nr 4 Read Input Register. Added VN421. Modified
chapter NC-MASTER PROTOCOL with MULTI-CN. Updated the Instructions
80, 92, 94. Updated the chapter NC Master Protocol. Added an example to
Custom logo.
Manual:........................................................................................... Programming
Code:....................................................................................................M0000464
Version:............................................................................................................ 3.3
Total No.of pages:........................................................................................... 441
MECENERO
Written by _______________ CRESSONI
Approved by________________
28/05/12
Date____________________ 28/05/12
Date ______________________