You are on page 1of 439

NC Software

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

Instruction (120) FORK PROG n ........................................................................................................................... 49


Instruction (60) FXY m ...................................................................................................................................... 50
Instruction (61) G1 X xf Y yf ............................................................................................................................ 50
Instruction (56) G103 P n VQi ........................................................................................................................... 51
Instruction (66) G1XYN xf, yf, n, nf .................................................................................................................. 55
Instruction (62) G2 X xf Y yf I xc J yc ............................................................................................................... 56
Instruction (72) G2R r e xf yf ............................................................................................................................. 57
Instruction (67) G2XYN xc yc xf yf n qf ............................................................................................................ 58
Instruction (63) G3 X xf Y yf i xc J yc ................................................................................................................ 59
Instruction (73) G3R r e xf yf ............................................................................................................................. 60
Instruction (68) G3XYN xc, yc, xf, yf, n, qf ...................................................................................................... 61
Instruction (40) G40 ............................................................................................................................................ 62
Instruction (41) G41 ............................................................................................................................................ 64
Instruction (42) G42 ............................................................................................................................................ 66
Instruction (43) G43 (or TOOL EXT) ............................................................................................................... 67
Instruction (44) G44 (or TOOL INT) ................................................................................................................ 68
Instruction (45) G45 ............................................................................................................................................ 69
Instruction (4) GOSUB n .................................................................................................................................... 70
Instruction (8) GOTO n ..................................................................................................................................... 71
Instruction (142) IF AX n GOSUB m ............................................................................................................... 72
Instruction (146) IF AX n GOTO m .................................................................................................................. 73
Instruction (132) IF IN n GOSUB m ................................................................................................................. 74
Instruction (133) IF IN n JMPPRG m ............................................................................................................... 75
Instruction (136) IF IN n GOTO m ................................................................................................................... 76
Instruction (248) IF VBi = ValB GOTO m ....................................................................................................... 77
Instruction (230) IF VNi < n GOSUB m ........................................................................................................... 78
Instruction (231) IF VNi = n GOSUB m ........................................................................................................... 79
Instruction (232) IF VNi > n GOSUB m ........................................................................................................... 79
Instruction (233) IF VNi < n GOTO m ............................................................................................................. 80
Instruction (234) IF VNi = n GOTO m ............................................................................................................. 81
Instruction (235) IF VNi > n GOTO m ............................................................................................................. 81
Instruction (210) IF VQi < m GOSUB n ........................................................................................................... 82
Instruction (211) IF VQi = m GOSUB n ........................................................................................................... 83
Instruction (212) IF VQi > m GOSUB n ........................................................................................................... 83
Instruction (213) IF VQi < m GOTO n ............................................................................................................. 84
Instruction (214) IF VQi = m GOTO n ............................................................................................................. 85
Instruction (215) IF VQi > m GOTO n ............................................................................................................. 85
Instruction (49) INCR ORG m AX n VAL i ..................................................................................................... 86
Instruction (3) INPUT n........................................................................................................................................... 87
Instruction (37) INTP MODE = n ...................................................................................................................... 88
Instruction (31) INTP PAR n AX m P p ........................................................................................................... 89
Instruction (5) JMPRG n .................................................................................................................................... 91
Instruction (121) KILL PROG n............................................................................................................................. 91
Instruction (84) LINE n1 m1 n2 m2........................................................................................................................ 92
Instruction (50) LINE2 q1 q2 ............................................................................................................................. 93
Instruction (51) LINE3 q1 q2 q3 ........................................................................................................................ 93
Instruction (52) LINE4 q1 q2 q3 q4 .................................................................................................................. 93
Instruction (53) LINE5 q1 q2 q3 q4 q5 .............................................................................................................. 94
Instruction (54) LINE6 q1 q2 q3 q4 q5 q6 ........................................................................................................ 94
Instruction (102) MEM STEP VNi.......................................................................................................................... 95
Instruction (70) MOVEXYT xf yf tf .................................................................................................................. 96
Instruction (39) NO CONT MOVE ................................................................................................................... 97
Instruction (35) NO WAIT AX................................................................................................................................ 98
Instruction (55) ORG n (or G55 n) .................................................................................................................. 101
Instruction (18) OUTON n..................................................................................................................................... 103
Instruction (19) OUTOFF n................................................................................................................................... 103
Instruction (15) PULSE n ...................................................................................................................................... 104
Instruction (93) QUOTE AX n = m....................................................................................................................... 105
Instruction (47) SET ANGLE ORG n VAL i .................................................................................................. 106
Instruction (59) SET ORG m AX n VAL i ........................................................................................................... 107

Page 4 M0000464
Programming Manual Index

Instruction (86) SET POS AX n = m..................................................................................................................... 108


Instruction (87) SKIP WAIT AX n ....................................................................................................................... 109
Instruction (83) STOP AX n .................................................................................................................................. 110
Instruction (17) TIME m........................................................................................................................................ 111
Instruction (75) TOOL ANGLE = m ............................................................................................................... 112
Instruction (74) TOOL n .................................................................................................................................. 113
Instruction (195) VB [VNi] = n .............................................................................................................................. 113
Instruction (190) VBi = EQ2D v1 v2 v3 n............................................................................................................. 114
Instruction ( 176 ) VBi = SETMAC PAR n VAL m............................................................................................. 115
Instruction (178) VBi = SETP AX n PAR j VAL m............................................................................................. 116
Instruction (246) VBi = VB[VNj ] ......................................................................................................................... 117
Instruction (240) VBi = x........................................................................................................................................ 117
Instruction (189) VBi = x........................................................................................................................................ 118
Instruction (82) VEL AX n = m %........................................................................................................................ 118
Instruction (92) VEL AX n = m [mm/min]........................................................................................................... 119
Instruction (192) VN[VNi] = n............................................................................................................................... 119
Instruction (220) VNi = m ...................................................................................................................................... 119
Instruction (188) VNi = m ...................................................................................................................................... 120
Instruction (221) VNi = m + n................................................................................................................................ 120
Instruction (222) VNi = m - n................................................................................................................................. 121
Instruction (225) VNi = VQj .................................................................................................................................. 121
Instruction (227) VNi = VN[VNj] .......................................................................................................................... 122
Instruction (228) VNi = AI m................................................................................................................................. 122
Instruction (238) VNi = STEP + n ......................................................................................................................... 123
Instruction (191) VQ[VNi] = m ............................................................................................................................. 123
Instruction (200) VQi = m...................................................................................................................................... 124
Instruction (187) VQi = m...................................................................................................................................... 125
Instruction (208) VQi = AI n.................................................................................................................................. 125
Instruction (184) VQi = ATAN2 (m,j)................................................................................................................... 126
Instruction (186) VQi = CATH (m,j) .................................................................................................................... 126
Instruction (185) VQi = DIST (m,j)....................................................................................................................... 127
Instruction (104) VQi = FUN n p1 p2 p3 p4 ......................................................................................................... 128
Instruction (48) VQi = GET ANGLE ORG n ................................................................................................. 128
Instruction (177) VQi = GETMAC PAR n........................................................................................................... 129
Instruction (179) VQi = GETP AX n PAR j ......................................................................................................... 129
Instruction (193) VQi = m * j................................................................................................................................. 130
Instruction (194) VQi = m/j ................................................................................................................................... 130
Instruction (180) VQi = m * SIN j ......................................................................................................................... 131
Instruction (181) VQi = m * COS j ....................................................................................................................... 131
Instruction (182) VQi = m/SIN j............................................................................................................................ 132
Instruction (183) VQi = m/COS j .......................................................................................................................... 132
Instruction (201) VQi = m + j ................................................................................................................................ 133
Instruction (202) VQi = m - j ................................................................................................................................. 133
Instruction (203) VQi = m * n................................................................................................................................ 134
Instruction (204) VQi = m/n.................................................................................................................................. 134
Instruction (197) VQi = j % k................................................................................................................................ 134
Instruction (205) VQi = VNj .................................................................................................................................. 135
Instruction (58) VQi = ORG m AX n.................................................................................................................... 136
Instruction (206) VQi = POS AX n ....................................................................................................................... 136
Instruction (207) VQi = VQ[VNj] ......................................................................................................................... 137
Instruction (36) WAIT AX..................................................................................................................................... 137
Instruction (81) WAIT AX n IN QUOTE............................................................................................................. 137
Instruction (247) WAIT VBi.................................................................................................................................. 138
NC Functions .......................................................................................................................... 139
FUN 50 STORAGE FEE MAXIMUM or MINIMUM. ....................................................................................... 139
FUN 55 INITIATION MANAGEMENT ACTION TO STOP AXIS ON DIGITAL INPUT OR MARK OF
ZERO 140
FUN 56 RESET GESTIONE STOP ASSE DA INGRESSO DIGITALE o TACCA DI ZERO ...................... 142
FUN 61 DIGITAL CAM MANAGEMENT INITIALIZATION AND RESET CAMS ................................... 143
FUN 62 ACTIVATION, CHANGE OR DEACTIVATION OF A DIGITAL CAM......................................... 144

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

NC Operating in Single State............................................................................................. 213


VBs and VNs for managing the SINGLE STATE ............................................................... 213
Automatic Cycle ................................................................................................................... 214
Manual Movement (JOG)..................................................................................................... 214
Speed Test............................................................................................................................. 214
NC Master Protocol ............................................................................................................... 215
Command error codes set in VN393 (VN_DATA_CN_MASTER_NUM)......................... 216
Status codes set in VN394 (VN_CN_MASTER_STATO).................................................. 216
ENTER INDIVIDUAL COMMANDS ................................................................................ 217
FUN120 <CmdVnIdx> <StatusVnIdx> 217
Vn stato = 1 218
Vn stato = -2 218
Modbus Management Protocol............................................................................................. 220
Modbus Protocol Functions Implemented............................................................................ 221
Interface PLC LADDER MASTER ..................................................................................... 222
Protocol MASTER initialization 222
Start Packet 222
Set Parameters 222
Closing packet and sending data 222
Reading protocol state 222
FUN110 Intialization ( MdbMasterInitProt ) 223
FUN111: Start Packet ( MdbMasterStartPack ) 223
FUN112: Set Parameters ( MdbMasterInsPar ) 224
FUN113: Closing packet and sending data ( MdbMasterEndPack ) 224
FUN114: Request protocol status 225
Read output 1 from the node 1 and write in the VB310 of the MASTER 227
PLC LADDER SLAVE interface old protocol .................................................................... 239
PLC LADDER SLAVE interface new protocol................................................................... 241
FUN115 Variables Mapping ( WplcMdbConfMap ) 241
Error code response 244
Special handling for rotating table....................................................................................... 246
Details implementation 246
Scale factor ............................................................................................................................. 248
Specularity .............................................................................................................................. 248
ISO Programming.................................................................................................................. 249
Programs generated with CAD/CAM................................................................................... 249
ISO codes recognized ........................................................................................................... 249
Programs generated with the editor ...................................................................................... 254
Types of ISO programming.................................................................................................. 257
Circular Interpolation 257
Profile by Points 260
Machine parameter Acceleration factor between two entities 262
Machine parameter Acceleration factor 263
ISO instructions 265
Use of tools........................................................................................................................... 268
Temporary transmission of ISO programs ......................................................................... 271
Example of PLC logic for temporary transmission .............................................................. 272
Programming examples......................................................................................................... 275
Examples of logical external decoding................................................................................. 275
Example of palletization....................................................................................................... 276
Variables 280
Numerical Control Variables (from 4.37 firmware version) ......................................... 281

M0000464 Pag. 7
Index Programming Manual

Structure of the variables with DOS PLC ........................................................................... 282


Structure of the variables for Siax 80-100-110-110Light-150-300..................................... 283
Structure of the variables for Siax100 Plus ......................................................................... 284
Structure of the variables for Siax 200................................................................................. 285
Binary Variables with dedicated functions........................................................................... 286
Numeric Variables with dedicated functions........................................................................ 288
Position Variables with dedicated functions ........................................................................ 290
Binary Variables with dedicated functins............................................................................ 291
VB256 VB_START ......................................................................................................................................... 292
VB257 VB_STOP ............................................................................................................................................ 292
VB258 VB_JOG_P .......................................................................................................................................... 293
VB259 VB_JOG_M......................................................................................................................................... 293
VB260 VB_EMERG........................................................................................................................................ 293
VB261 VB_PRG_RUN ............................................................................................................................. 294
VB262 VB_STEP_STAND_BY...................................................................................................................... 294
VB263 VB_NO_MOVE_AX........................................................................................................................... 294
VB264 VB_EDGE_STEP ............................................................................................................................... 294
VB265 VB_SET_PRG_NUM ......................................................................................................................... 295
VB266 VB_MAN_MULTI.............................................................................................................................. 295
VB267 VB_END_PRG ............................................................................................................................. 295
VB268 VB_ACCESS_KEY ............................................................................................................................ 296
VB269 VB_NO_SETVAR .............................................................................................................................. 296
VB270 VB_TOOL_COORD .......................................................................................................................... 296
VB271 VB_TEACH ........................................................................................................................................ 297
VB272 VB_TEACH_LINE............................................................................................................................. 297
VB273 VB_CN_IN_SETVAR ........................................................................................................................ 297
VB274 VB_LOC_REM................................................................................................................................... 297
VB275 VB_MAN_AUTO................................................................................................................................ 298
VB276 VB_ST_MENU ............................................................................................................................. 298
VB277 VB_ST_AUTO .............................................................................................................................. 298
VB278 VB_ST_MANU ............................................................................................................................. 298
VB279 VB_ST_ACQ_PAR ...................................................................................................................... 298
VB280 VB_ST_TEST ............................................................................................................................... 298
VB281 VB_ST_TEST_VEL ..................................................................................................................... 298
VB282 VB_ST_SEMI_AUTO .................................................................................................................. 298
VB283 VB_ST_OMNI .............................................................................................................................. 298
VB284 VB_ST_AZZ ................................................................................................................................. 298
VB285 VB_ST_EDIT ................................................................................................................................ 299
VB286 VB_ST_EME ................................................................................................................................ 299
VB287 VB_AX_ENABLE ........................................................................................................................ 299
VB288295 VB_FIRST_AX_DIS .......................................................................................................................... 299
VB296303 VB_FIRST_AX_SEL.......................................................................................................................... 299
VB304311 VB_FIRST_AX_IN_QUO ........................................................................................................... 300
VB312319 VB_FIRST_AX_ZERO ...................................................................................................................... 300
VB320327 VB_FIRST_PID_DIS ......................................................................................................................... 300
VB328335 VB_FIRST_SET_ZERO .................................................................................................................... 301
VB336343 VB_FIRST_AX_JOG_M ................................................................................................................... 301
VB344351 VB_FIRST_AX_HOLD_S ................................................................................................................. 301
VB352355 VB_FIRST_IRQ_EN.......................................................................................................................... 302
VB360367 VB_FIRST_FOLL_EN....................................................................................................................... 302
VB368 VB_SH_REG_LATCH_IN ................................................................................................................ 302
VB369 VB_SH_REG_LATCH_OUT ............................................................................................................ 303
VB370 VB_SH_REG_IN ................................................................................................................................ 303
VB372 VB_SH_REG_CLEAR....................................................................................................................... 303
VB373 VB_DINAM_SETVAR....................................................................................................................... 304
VB374 VB_SET_ORG .................................................................................................................................... 304
VB375 VB_GET_ORG ................................................................................................................................... 304
VB376383 VB_FIRST_AX_SET_ORG............................................................................................................... 304

Page 8 M0000464
Programming Manual Index

VB384 VB_CONT_MOVE............................................................................................................................. 305


VB385 VB_USE_TX_PRG ............................................................................................................................. 305
VB386 VB_START_TX.................................................................................................................................. 305
VB387 VB_TX_BUF_FULL .......................................................................................................................... 305
VB388 VB_TX_IN_PR ................................................................................................................................... 306
VB389 VB_END_TX....................................................................................................................................... 306
VB390 VB_ENAB_F3 ..................................................................................................................................... 306
VB391 VB_DISAB_F1_SET_PRG ................................................................................................................ 307
VB392 VB_REV_ARC_DIR .......................................................................................................................... 308
VB393 VB_WAIT_TX_PRG.......................................................................................................................... 308
VB394 VB_PROF_PER_PNT........................................................................................................................ 308
VB395 VB_PRG_RESET ............................................................................................................................... 309
VB396 VB_DIS_SET_F .................................................................................................................................. 309
VB397 VB_PC_CHG_PRG............................................................................................................................ 309
VB398 VB_APPR_F1...................................................................................................................................... 309
VB399 VB_CN_SET_PAGE .......................................................................................................................... 309
VB400 VB_VIEW_ALRM ............................................................................................................................. 310
VB401 VB_ENABL_RES_F1......................................................................................................................... 310
VB402 VB_QUO_AX_F1 ............................................................................................................................... 310
VB403 VB_SEMI_INCR ................................................................................................................................ 311
VB404 VB_DISABIL_F1_SET_VAR............................................................................................................ 311
VB405 VB_TEACH_EL ................................................................................................................................. 311
VB406 VB_MODEM_EN............................................................................................................................... 312
VB407 VB_RETR_ENAB .............................................................................................................................. 312
VB408 VB_RETR_IND .................................................................................................................................. 312
VB409 VB_RETR_AVA ................................................................................................................................. 313
VB410 VB_RETR_IN_PR ....................................................................................................................... 313
VB411 VB_NEXT_MOVE ....................................................................................................................... 313
VB412 VB_ROTAT_ENAB ........................................................................................................................... 314
VB413 VB_GET_ANGLE .............................................................................................................................. 314
VB414 VB_CN_CHG_PRG ........................................................................................................................... 314
VB415 VB_CN_SEL ....................................................................................................................................... 314
VB416 VB_MIDDLE_PNT ............................................................................................................................ 315
VB417 VB_TASTO_PREMUTO................................................................................................................... 315
VB418 VB_EN_FASE_AX ............................................................................................................................. 315
VB419 VB_DISAB_PC_OUT......................................................................................................................... 315
VB420 VB_REQ_CONF_MEMO ................................................................................................................. 316
VB421 VB_EN_TAV_ROT ............................................................................................................................ 316
VB422 VB_APP_WITH_ORG....................................................................................................................... 316
VB423 VB_ENAB_F6 ..................................................................................................................................... 316
VB424 VB_ENAB_OTHER_PSW................................................................................................................. 316
VB425 VB_RESET_EMERG......................................................................................................................... 317
VB426 VB_ INIT_ERR_MAIN...................................................................................................................... 317
VB427 VB_OM_EXIT .................................................................................................................................... 317
VB428 VB_OM_START_AUTO ................................................................................................................... 317
VB429 VB_OM_START_TEST .................................................................................................................... 318
VB430 VB_OM_START_TSTVEL............................................................................................................... 318
VB431 VB_OM_START_SEMI .................................................................................................................... 318
VB432 VB_OM_START_ZERO ................................................................................................................... 318
VB433 VB_OMNI_MODE............................................................................................................................. 319
VB434 VB_OM_DIS_MAN............................................................................................................................ 319
VB435 VB_OM_DIS_PAGE_STATE ........................................................................................................... 319
VB436 VB_OM_INIT_QUOTE..................................................................................................................... 319
VB437 VB_SET_AUTO_ERR ....................................................................................................................... 319
VB438 VB_NO_SET_SER_QUO .................................................................................................................. 320
VB439 VB_DIS_COP_CHK_START ........................................................................................................... 320
VB440 VB_DIS_PROFI.................................................................................................................................. 320
Numeric Variables ................................................................................................................. 321
VN256 VN_OVERRIDE_VEL....................................................................................................................... 322
VN257 VN_PRG_NUM .................................................................................................................................. 322

M0000464 Pag. 9
Index Programming Manual

VN258 VN_KEY_CODE ................................................................................................................................ 322


VN259 VN_MOVING_AXES .................................................................................................................. 323
VN260267 VN_FIRST_POS_AX_MM ......................................................................................................... 323
VN268271 VN_FIRST_IRQ_CNT....................................................................................................................... 323
VN272 VN_AX_ONOFF_REC_GC .............................................................................................................. 324
VN273 VN_AX_ONOFF_DEC ...................................................................................................................... 324
VN274 VN_EN_ROLLOVER ........................................................................................................................ 324
VN276283 VN_FIRST_FOLL_FACT ................................................................................................................. 325
VN284291 VN_FIRST_FOLL_ENC ................................................................................................................... 326
VN292299 VN_FIRST_AX_OVD ........................................................................................................................ 326
VN300 VN_SH_REG_DELAY....................................................................................................................... 326
VN301 VN_NUM_PRG_START ................................................................................................................... 326
VN302 VN_VQ_INDX_EMERG ................................................................................................................... 327
VN303 VN_VQ_INDX_FEED........................................................................................................................ 327
VN304 VN_VQ_INDX_IN_POS .................................................................................................................... 327
VN305 VN_GET_ORG_NUM ....................................................................................................................... 328
VN306 VN_SET_ORG_NUM ........................................................................................................................ 328
VN307 VN_CUR_ORG_NUM ....................................................................................................................... 329
VN308 VN_MAIN_PRG_NUM ..................................................................................................................... 329
VN309 VN_CUR_PRG_NUM .................................................................................................................. 329
VN310 VN_TX_PRG_NUM ........................................................................................................................... 329
VN311 VN_INDX_POS_ERR ........................................................................................................................ 330
VN312 VN_CUR_STEP_NUM_H ........................................................................................................... 330
VN313 VN_CUR_STEP_NUM_L ........................................................................................................... 330
VN314 VN_TX_STEP_H................................................................................................................................ 330
VN315 VN_TX_STEP_L ................................................................................................................................ 330
VN316323 VN_FIRST_FOLL_DEN ................................................................................................................... 331
VN324331 VN_FIRST_FOLL_MODE ............................................................................................................... 332
VN332 VN_FIRST_ORG_OFFS ................................................................................................................... 332
VN333 VN_FIRST_SCALE_FCT ................................................................................................................. 332
VN334 VN_EMERG_ERR_NUM ........................................................................................................... 333
VN335 VN_EMERG_ERR_PAR ............................................................................................................ 334
VN336 VN_PRG_IN_F1 ................................................................................................................................. 335
VN337 VN_VQ_TOOL_COORD .................................................................................................................. 335
VN338 VN_TX_WAIT_PRG_NUM .............................................................................................................. 335
VN339 VN_SEL_AX_NUM............................................................................................................................ 335
VN340 VN_VQ_INDX_SET_F ...................................................................................................................... 336
VN341 VN_APPR_F1 ..................................................................................................................................... 336
VN342 VN_START_F1_PRG ........................................................................................................................ 336
VN343 VN_CN_ACT_PAGE ................................................................................................................... 337
VN344 VN_CN_SET_PAGE .......................................................................................................................... 337
VN345 VN_MAIN_ERR_NUM ............................................................................................................... 338
VN346 VN_MAIN_ERR_PAR ................................................................................................................ 338
VN347 VN_ZERO_AX_NUM ........................................................................................................................ 338
VN348355 VN_FIRST_TEACH_VEL ................................................................................................................ 339
VN356 VN_VQ_FEED.................................................................................................................................... 339
VN357 VN_MODEM_STAT .................................................................................................................... 340
VN358 VN_MODEM_CDM........................................................................................................................... 340
VN359 VN_VB_INDX_MSG.......................................................................................................................... 341
VN360 VN_SOGL_PROX_AX ................................................................................................................ 341
VN361 VN_TYPE_MOVE ....................................................................................................................... 341
VN362 VN_TYPE_AUTOAPP....................................................................................................................... 342
VN363 VN_TIMER_SEC_RES ..................................................................................................................... 342
VN364 VN_VQ_POS_AX ............................................................................................................................... 342
VN365 VN_VIEW_MOD................................................................................................................................ 343
VN366 VN_INS_ISTR .................................................................................................................................... 343
VN367 VN_INS_PAR1.................................................................................................................................... 344
VN368 VN_RW_VQ........................................................................................................................................ 344
VN369 VN_VQ_RW_VQ................................................................................................................................ 344
VN370 VN_DIS_FN_KEY.............................................................................................................................. 345

Page 10 M0000464
Programming Manual Index

VN371 VN_SLG_EXE_ISO ........................................................................................................................... 346


VN372 VN_FMT_DATE ................................................................................................................................ 346
VN373 VN_WAKE_FUN................................................................................................................................ 346
VN374 VN_TIPO_RACCORDO ................................................................................................................... 346
VN375 VN_ MAIN_ERR_CODE .................................................................................................................. 347
VN376 VN_PAGE_ID..................................................................................................................................... 347
VN377 VN_PAGE_BASE_ADDR ................................................................................................................. 349
VN378 VN_VQ_OBJ_AX............................................................................................................................... 349
VN379 VN_OBJ_ID ........................................................................................................................................ 350
VN380 VN_AX_QUO_MODE ....................................................................................................................... 350
VN381 VN_QUO_VQ_INDX ......................................................................................................................... 351
VN382 VN_DATA_ENAB .............................................................................................................................. 351
VN383 VN_PUT_KEY.................................................................................................................................... 351
VN384 VN_VAR_VIEW_TICK..................................................................................................................... 352
VN385 VN_MODE_PRG_LIST..................................................................................................................... 352
VN386 VN_CUR_CN_LANG......................................................................................................................... 354
VN387 VN_DISAB_STD_VIEW .................................................................................................................. 354
VN388 VN_LAST_PRG_REC ...................................................................................................................... 354
VN389 VN_TIME_DATE_IDX .................................................................................................................... 355
VN390 VN_DATA_BARC_NUM ................................................................................................................. 355
VN391 VN_BARC_STATO........................................................................................................................... 355
VN392 VN_COPY_VA .................................................................................................................................. 356
VN393 VN_DATA_CN_MASTER_NUM ..................................................................................................... 357
VN394 VN_CN_MASTER_STATO .............................................................................................................. 357
VN395 VN_CN_MASTER_NUM_SENT...................................................................................................... 357
VN396 VN_FASE_AZZERAMENTO........................................................................................................... 357
VN397 VN_DISAB_NG_COP ........................................................................................................................ 357
VN398 VN_MODBUS_COM ......................................................................................................................... 358
VN399 VN_MODBUS_COM_MODE........................................................................................................... 358
VN400 VN_STD_STATE_NUM .................................................................................................................... 358
VN401 VN_OMNI_OPER .............................................................................................................................. 358
VN402 VN_OM_PRG_NUM.......................................................................................................................... 359
VN403 VN_OM_TSTVEL_AX_NUM........................................................................................................... 359
VN404 VN_EDIT2........................................................................................................................................... 359
VN405 VN_PRG_NUM_TO_EDIT ............................................................................................................... 359
VN406 VN_FIRST_PRG_LIST ..................................................................................................................... 359
VN407 VN_LAST_PRG_LIST....................................................................................................................... 360
VN408 VN_PRG_BASE_LIST....................................................................................................................... 360
VN409 VN_COP_WARN_ERR ..................................................................................................................... 360
VN410 VN_OBJ_DATA_LIST ...................................................................................................................... 360
VN411 VN_PAGE_MODE............................................................................................................................. 361
VN412 VN_PALM_PUT_KEY ...................................................................................................................... 361
VN413 VN_CONF_ISTR................................................................................................................................ 362
VN414 VN_EMRG_ERR_COD .............................................................................................................. 362
VN415 VN_EMRG_ERR_AX .................................................................................................................. 362
VN416 VN_CONF_EDIT ............................................................................................................................... 363
VN417 VN_DATA_EDIT_NUM .................................................................................................................... 363
VN418 VN_MENU_FUN_CODE................................................................................................................... 363
VN419 VN_PRESET_CN_PASSW ............................................................................................................... 364
VN420 VN_CNT_RTC_FULL ....................................................................................................................... 364
VN421 VN_FLOPPY_STATE ....................................................................................................................... 364
Position Variables .................................................................................................................. 365
VQ97 VQ_VAL_RACCORDO .................................................................................................................... 366
VQ98 366
VQ99 366
VQ256 VQ_MENU_LEVEL .......................................................................................................................... 366
VQ257 VQ_MENU_LEVEL_PALM............................................................................................................. 366

Program Management 368


List Programs in memory...................................................................................................... 369

M0000464 Pag. 11
Index Programming Manual

Delete Program....................................................................................................................... 369


Copy programs....................................................................................................................... 369
Talk with PC........................................................................................................................... 370
Total program deletion.......................................................................................................... 370
Display Editor......................................................................................................................... 371
Manual Movement 372
Manual Movement in the SIAX150 and SIAX300C........................................................... 373
Example of PLC logic for manual movement in the SIAX150 and SIAX300C.................. 374
Manual movement in the SIAX110 and SIAX110L............................................................ 375
Example of PLC logic for manual movement in the SIAX110 and SIAX110L .................. 375
Multiple Manual..................................................................................................................... 377
Automatic 378
Example of PLC logic for automatic in the SIAX150 and SIAX300C................................ 380
Example of PLC logic for Automatic in the SIAX110 and SIAX110L............................... 380
Selection of the program to execute...................................................................................... 381
Displaying the executing program........................................................................................ 381
Program name ........................................................................................................................ 381
Local/Remote control mode .................................................................................................. 382
Example of PLC logic for LOCAL/REMOTE management ............................................... 382
Tool Parameters 384
Origins 387
Setting the positions directly ................................................................................................. 388
Self-learning the origins ........................................................................................................ 389
Other useful instructions for managing origins .................................................................... 389
Example of PLC logic .......................................................................................................... 390
User programs 393
USER PROGRAMS ............................................................................................................. 394
VNs for managing User Programs 395
User Program Command Coding (VN58) 398
Code of the operation that generated an error (VN58) 400
Error Type Code (VN60) 401
User Program Management State Codes (VN59) 402
Creating a "User Program" ................................................................................................... 403
USER PROGRAM MANAGER Object .............................................................................. 403
Example 1 ............................................................................................................................. 404
Implementation of New Program Function 407
Implementing the Add Step Function 412
Implementing the Step Scrolling Function 412
Program Archive 412
PLC of the Example 415
Example 2 ............................................................................................................................. 416
Program Management HotKey Options 417
Step Management HotKey Options 421
Display Options 422
List Options 423

Appendix 427

Page 12 M0000464
Programming Manual Index

Writing a program with any editor...................................................................................... 428


Compiling a program with CSX........................................................................................... 428
TXP.......................................................................................................................................... 429
Utilities provided with the program..................................................................................... 430
Vwap.exe .............................................................................................................................. 430
Lstvar.exe ............................................................................................................................. 430
Getvb.exe and Getvn.exe...................................................................................................... 430
Setvb.exe and Setvn.exe ....................................................................................................... 430
Stdprint.exe........................................................................................................................... 431
Stdeditc.exe........................................................................................................................... 431
Custom Logo........................................................................................................................... 432
Key codes ................................................................................................................................ 433
Key codes for the palm computer keyboard........................................................................ 434
Use of the shift register .......................................................................................................... 435
Reset Shift Register .............................................................................................................. 435
Data insertion........................................................................................................................ 435
Data extraction...................................................................................................................... 435
Serial connection with a PC .................................................................................................. 436
Serial connection with two PCs............................................................................................ 437
Enabling Management Manual Brake onTW3 Drives....................................................... 438
Revisions ................................................................................................................................. 439

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.

General rules for writing steps


When you enter the Program Editor you will see the words:
EDIT PRG N. 0 STEP 0

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.

Change step number


Use [] and [] to move from one step to another, displaying, respectively, the previous and
following step.
To display a step that is not continuous to the current one, in addition to scrolling through the
various steps with [] and [], position with [MENU] on the number of the step and type the
number desired, confirming with [ENTER]. You will jump directly to the selected step.

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:

Descriptor for digital input when ON


Descriptor for digital input when OFF
Descriptor for digital output when ON
Descriptor for digital output when OFF

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").

Descriptor display is enabled by bits 8-11 of VN_MODE_PRG_LIST (VN385): if the bit is 1,


descriptor display is activated.

bit 11 bit 10 bit 9 bit 8


Dig. OUT Dig. OUT Dig. IN Dig. IN
OFF ON OFF ON

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])

The data programs must have the following structure:

o program of type 1 (unique header)


o each step contains the descriptor of an I/O and must consist of a VA and a VN that must
contain the I/O's progressive number
o for the VAs, define a length of 11 characters (maximum descriptor length)
o step 1 contains the descriptor of I/O (input or output) number 1 (the VN must contain the
value 1), step 2 contains the descriptor of I/O number 2 (VN = 2) etc.; so, it is not
possible to "leave holes," i.e., to omit the descriptor (step) of an intermediate I/O; if
necessary, it is possible to assign to the VA that contains the descriptor a null string while
the VN must contain the progressive number.

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.

EDIT PRG.N.1000 STEP 1 NAME: PIPPO


FREE.MEM: 0 STEPS: 12
19 OUTOFF 5 //initialization of the outputs
220 VN1 = 0 // and of the variables used in the program
------------------- STEP 2 --------------------
84 LINE 1 0.000 2 0.000 //initial positioning at the zero of the axes
------------------- STEP 3 --------------------
3 INPUT 15 // awaiting input 15 high to continue executing loop
------------------- STEP 4 --------------------
80 AX 1 TO 400.000 // positioning axis 1 to a level of 400
------------------- STEP 5 --------------------
80 AX 2 TO 200.000 // positioning axis 2 to a level of 200
------------------- STEP 6 --------------------
18 OUTON 5 //activation of output 5
------------------- STEP 7 --------------------
17 TIME 3.0 //wait three seconds
------------------- STEP 8 --------------------
19 OUTOFF 5 //deactivation of output 5
------------------- STEP 9 --------------------
80 AX 2 TO 200.000 // positioning axis 2 to a level of 0
------------------- STEP 10 --------------------
80 AX 1 TO 0.000 //positioning axes 1 to a level of 0
------------------- STEP 11 --------------------
221 VN1 = VN1 + 1 //increment of a variable used as a counter
------------------- STEP 12 --------------------
234 IF VN1 = 10 GOTO 14 //if 10 loops have been executed end program
------------------- STEP 13 --------------------
8 GOTO 3 //otherwise execute the loop again
------------------- STEP 14 --------------------
34 END //end program

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

Lines beginning with // are comments.

Then, there are two program lines


#prog 0001
#name Test
which are program identification directives and obligatory.

Program identification directives (number, name, definitions, files


included)
#prog NUM Sets the program number to NUM

#name NAME Sets the program name to NAME

#define <str1> <str2> looks for string <str1> and replaces it


with string <str2>; the input files
are scanned a first time to
make any replacements and
and a .TMP file is generated (OPTIONAL)

#include "<filename>" Includes the file <filename>. (OPTIONAL)


The included file may not contains
instructions but only definitions.

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
//*****************************************************

#define Cart AX1 //name axis 1

//***********************************************************
// Constants definition
//***********************************************************

#define WorkPosition 1000


//work position
#define PumpTime 5 //activation time
//of pump (seconds)
//***********************************************************
// Inputs 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)
//***********************************************************

#define EndWork VB1 //signals the end of work

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"

: Cart TO 0 //move to zero


//initial check
:WaitInput IF IN CheckOK GOTO Proceed
//if = 1 OK, otherwise
: GOTO WaitInput //retry the check

:Proceed Cart TO WorkPosition //work positioning


: OUTON Pump //activation OUT 2
: TIME PumpTime //wait a certain time
: OUTOFF Pump //deactivation OUT 2
: EndWork = 1 //signals end of work

: 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 ":"

// <comment> Begins a comment that ends at the end of the line

{ <comment> } comment in a line with ISO instructions

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
// ************************************************************************

: AX1 TO 0 //move to zero


VB1 = 0
OUTOFF 16

:Loop1 IF IN 16 GOTO WorkPos //initial check


: GOTO Loop1 //if 1 OK, otherwise
//retry check

:WorkPos AX1 TO 1000 //work positioning


: OUTON 16 //activation 16
: TIME 5 //wait a certain time
: OUTOFF 16 //deactivation 16
: VB1 = 1 //signal end of work

: 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>}

-g enable generation of debug files


-ha expanded HA istruction
-nologo dont see initial logo
<nomefile> file name to process

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).

1 Interpretation (step enabling)


2 Management of variables
3 Generic status
4 Conditonal instructions
5 Awaiting inputs
6 Speed settings
7 Special function calls
8 Moving axes
9 Conditioned movements
10 Waiting for axes in position
11 Set digital outputs
12 Set wait times
13 Wait times

Table of instruction priorities within a step.

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

List of available instructions


Instruction list assignment values to variables
Istruzione ( 195 ) VB [VNi] = n
Istruzione ( 190 ) VBi = EQ2D v1 v2 v3 n
Istruzione ( 246 ) VBi = VB[VNj ]
Istruzione ( 240 ) VBi = x
Istruzione ( 189 ) VBi = x
Istruzione ( 192 ) VN[VNi] = n
Istruzione ( 220 ) VNi = m
Istruzione ( 188 ) VNi = m
Istruzione ( 221 ) VNi = m + n
Istruzione ( 222 ) VNi = m - n
Istruzione ( 225 ) VNi = VQj
Istruzione ( 227 ) VNi = VN[VNj]
Istruzione ( 238 ) VNi = STEP + n
Istruzione ( 191 ) VQ[VNi] = m
Istruzione ( 200 ) VQi = m
Istruzione ( 187 ) VQi = m
Istruzione ( 184 ) VQi = ATAN2 (m,j)
Istruzione ( 186 ) VQi = CATH (m,j)
Istruzione ( 185 ) VQi = DIST (m,j)
Istruzione ( 193 ) VQi = m * j
Istruzione ( 194 ) VQi = m / j
Istruzione ( 180 ) VQi = m * SIN j
Istruzione ( 181 ) VQi = m * COS j
Istruzione ( 182 ) VQi = m / SIN j
Istruzione ( 183 ) VQi = m / COS j
Istruzione ( 201 ) VQi = m + j
Istruzione ( 202 ) VQi = m - j
Istruzione ( 203 ) VQi = m * n
Istruzione ( 204 ) VQi = m / n
Istruzione (197) VQi = j % k
Istruzione ( 205 ) VQi = VNj
Istruzione ( 206 ) VQi = POS AX n
Istruzione ( 207 ) VQi = VQ[VNj]

Instructions for the management of digital inputs and outputs


Istruzione ( 3 ) INPUT n
Istruzione ( 18 ) OUTON n
Istruzione ( 19 ) OUTOFF n
Istruzione ( 15 ) PULSE n

Instructions for the management of analogs inputs and outputs


Istruzione ( 14 ) AN OUT n = m
Istruzione ( 228 ) VNi = AI m
Istruzione ( 208 ) VQi = AI n
M0000464 Page 29
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instructions for the management of timers


Istruzione ( 17 ) TIME m

Instructions for the management of the axes


Istruzione ( 77 ) ANT AX n TP t VAL q
Istruzione ( 94 ) AX n INCR m
Istruzione ( 80 ) AX n TO m
Istruzione ( 85 ) AX n VEL v QUOTE m
Istruzione ( 35 ) NO WAIT AX
Istruzione ( 93 ) QUOTE AX n = m
Istruzione ( 86 ) SET POS AX n = m
Istruzione ( 83 ) STOP AX n
Istruzione ( 82 ) VEL AX n = m %
Istruzione ( 92 ) VEL AX n = m [mm/min]

Instructions for handling of axes with interpolation


Istruzione ( 38 ) CONT MOVE
Istruzione ( 57 ) F m
Istruzione ( 60 ) FXY m
Istruzione ( 61 ) G1 X xf Y yf
Istruzione ( 56 ) G103 P n VQi
Istruzione ( 66 ) G1XYN xf, yf, n, nf
Istruzione ( 62 ) G2 X xf Y yf I xc J yc
Istruzione ( 72 ) G2R r e xf yf
Istruzione ( 67 ) G2XYN xc yc xf yf n qf
Istruzione ( 63 ) G3 X xf Y yf i xc J yc
Istruzione ( 73 ) G3R r e xf yf
Istruzione ( 68 ) G3XYN xc, yc, xf, yf, n, qf
Istruzione ( 37 ) INTP MODE = n
Istruzione ( 31 ) INTP PAR n AX m P p
Istruzione ( 84 ) LINE n1 m1 n2 m2
Istruzione ( 50 ) LINE2 q1 q2
Istruzione ( 51 ) LINE3 q1 q2 q3
Istruzione ( 52 ) LINE4 q1 q2 q3 q4
Istruzione ( 53 ) LINE5 q1 q2 q3 q4 q5
Istruzione ( 54 ) LINE6 q1 q2 q3 q4 q5 q6
Istruzione ( 70 ) MOVEXYT xf yf tf
Istruzione ( 39 ) NO CONT MOVE

Instructions for the management of the origins


Istruzione ( 49 ) INCR ORG m AX n VAL i
Istruzione ( 55 ) ORG n (oppure G55 n)
Istruzione ( 47 ) SET ANGLE ORG n VAL i
Istruzione ( 59 ) SET ORG m AX n VAL i
Istruzione ( 48 ) VQi = GET ANGLE ORG n
Istruzione ( 58 ) VQi = ORG m AX n

Page 30 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instructions for managing tools (instructions developed for specific


applications. To use these instructions consult the Sipro technical
department )
Istruzione ( 40 ) G40
Istruzione ( 41 ) G41
Istruzione ( 42 ) G42
Istruzione ( 43 ) G43 (oppure TOOL EXT)
Istruzione ( 44 ) G44 (oppure TOOL INT )
Istruzione ( 45 ) G45
Istruzione ( 75 ) TOOL ANGLE = m
Istruzione ( 74 ) TOOL n

Instructions for controlling the flow of the program


Istruzione ( 34 ) END
Istruzione ( 4 ) GOSUB n
Istruzione ( 8 ) GOTO n
Istruzione ( 142 ) IF AX n GOSUB m
Istruzione ( 146 ) IF AX n GOTO m
Istruzione ( 132 ) IF IN n GOSUB m
Istruzione ( 133 ) IF IN n JMPPRG m
Istruzione ( 136 ) IF IN n GOTO m
Istruzione ( 248 ) IF VBi = ValB GOTO m
Istruzione ( 230 ) IF VNi < n GOSUB m
Istruzione ( 231 ) IF VNi = n GOSUB m
Istruzione ( 232 ) IF VNi > n GOSUB m
Istruzione ( 233 ) IF VNi < n GOTO m
Istruzione ( 234 ) IF VNi = n GOTO m
Istruzione ( 235 ) IF VNi > n GOTO m
Istruzione ( 210 ) IF VQi < m GOSUB n
Istruzione ( 211 ) IF VQi = m GOSUB n
Istruzione ( 212 ) IF VQi > m GOSUB n
Istruzione ( 213 ) IF VQi < m GOTO n
Istruzione ( 214 ) IF VQi = m GOTO n
Istruzione ( 215 ) IF VQi > m GOTO n
Istruzione ( 5 ) JMPPRG n
Istruzione ( 102 ) MEM STEP VNi
Istruzione ( 87 ) SKIP WAIT AX n
Istruzione ( 36 ) WAIT AX
Istruzione ( 81 ) WAIT AX n IN QUOTE

Instructions managing parallel programs


Istruzione ( 120 ) FORK PROG n
Istruzione ( 121 ) KILL PROG n

M0000464 Page 31
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instructions for the management of the parameters of the numerical


control
Istruzione ( 176 ) VBi = SETMAC PAR n VAL m
Istruzione ( 178 ) VBi = SETP AX n PAR j VAL m
Istruzione ( 177 ) VQi = GETMAC PAR n
Istruzione ( 179 ) VQi = GETP AX n PAR j

Instructions for general use


Istruzione ( 104 ) VQi = FUN n p1 p2 p3 p4
Istruzione ( 247 ) WAIT VBi

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)

<val> indicates a constant

<val | VB> indicates a constant (0, 1) or a Binary Variable

<val | VN> indicates a constant or a Numeric Variable

<val | VQ> indicates a decimal constant or a Position Variable

instruction present only for compatibility with preceding versions. We


recommend using the equivalent instruction in order to take advantage of all the
programming help systems that will be developed by SIPRO Srl.

instruction available in versions with interpolation.

instruction available in versions with interpolation and tool management.

Full Step type instruction.

Instruction to be executed preferably with PLC

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

N.B. The syntax of programming instructions follows this convention:


Instruction <Instruction Name> <parameters>
NC Editor format m <Instruction Name><parameters>

Programming syntax
in PC Editor
Syntax for programming in NC
keyboard Editor

m indicates the number associated to the instruction

Index of available instructions


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 (38) CONT MOVE ............................................................................................... 46
Instruction (34) END .............................................................................................................. 47
Instruction (57) F m ................................................................................................................ 48
Instruction (120) FORK PROG n ................................................................................................. 49
Instruction (60) FXY m ........................................................................................................... 50
Instruction (61) G1 X xf Y yf ................................................................................................ 50
Instruction (56) G103 P n VQi ................................................................................................ 51
Instruction (66) G1XYN xf, yf, n, nf ...................................................................................... 55
Instruction (62) G2 X xf Y yf I xc J yc ................................................................................... 56
Instruction (72) G2R r e xf yf ................................................................................................. 57
Instruction (67) G2XYN xc yc xf yf n qf ................................................................................. 58
Instruction (63) G3 X xf Y yf i xc J yc .................................................................................... 59
Instruction (73) G3R r e xf yf ................................................................................................. 60
Instruction (68) G3XYN xc, yc, xf, yf, n, qf ........................................................................... 61
Instruction (40) G40 ................................................................................................................ 62
Instruction (41) G41 ................................................................................................................ 64
Instruction (42) G42 ................................................................................................................ 66
Instruction (43) G43 (or TOOL EXT) ..................................................................................... 67
Instruction (44) G44 (or TOOL INT) ...................................................................................... 68
Instruction (45) G45 ................................................................................................................ 69
Instruction (4) GOSUB n ........................................................................................................ 70
Instruction (8) GOTO n .......................................................................................................... 71
Instruction (142) IF AX n GOSUB m .................................................................................... 72
Instruction (146) IF AX n GOTO m ....................................................................................... 73
Instruction (132) IF IN n GOSUB m ...................................................................................... 74
Instruction (133) IF IN n JMPPRG m ..................................................................................... 75
Instruction (136) IF IN n GOTO m ......................................................................................... 76
Instruction (248) IF VBi = ValB GOTO m ............................................................................. 77
Instruction (230) IF VNi < n GOSUB m ................................................................................. 78
Instruction (231) IF VNi = n GOSUB m ................................................................................. 79
Instruction (232) IF VNi > n GOSUB m ................................................................................. 79
Instruction (233) IF VNi < n GOTO m ................................................................................... 80
Instruction (234) IF VNi = n GOTO m ................................................................................... 81
Instruction (235) IF VNi > n GOTO m ................................................................................... 81
Instruction (210) IF VQi < m GOSUB n ................................................................................. 82
Instruction (211) IF VQi = m GOSUB n ................................................................................. 83
Instruction (212) IF VQi > m GOSUB n ................................................................................. 83
Instruction (213) IF VQi < m GOTO n ................................................................................... 84
Instruction (214) IF VQi = m GOTO n ................................................................................... 85
Instruction (215) IF VQi > m GOTO n ................................................................................... 85
Instruction (49) INCR ORG m AX n VAL i ........................................................................... 86

Page 34 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (3) INPUT n ............................................................................................................... 87


Instruction (37) INTP MODE = n ........................................................................................... 88
Instruction (31) INTP PAR n AX m P p ................................................................................. 89
Instruction (5) JMPPRG n ....................................................................................................... 91
Instruction (121) KILL PROG n................................................................................................... 91
Instruction (84) LINE n1 m1 n2 m2 ............................................................................................. 92
Instruction (50) LINE2 q1 q2 .................................................................................................. 93
Instruction (51) LINE3 q1 q2 q3 ............................................................................................. 93
Instruction (52) LINE4 q1 q2 q3 q4 ........................................................................................ 93
Instruction (53) LINE5 q1 q2 q3 q4 q5 .................................................................................... 94
Instruction (54) LINE6 q1 q2 q3 q4 q5 q6 .............................................................................. 94
Instruction (102) MEM STEP VNi............................................................................................... 95
Instruction (70) MOVEXYT xf yf tf ....................................................................................... 96
Instruction (39) NO CONT MOVE ........................................................................................ 97
Instruction (35) NO WAIT AX .................................................................................................... 98
Instruction (55) ORG n (or G55 n) ....................................................................................... 101
Instruction (18) OUTON n ......................................................................................................... 103
Instruction (19) OUTOFF n........................................................................................................ 103
Instruction (15) PULSE n ........................................................................................................... 104
Instruction (93) QUOTE AX n = m............................................................................................ 105
Instruction (47) SET ANGLE ORG n VAL i ....................................................................... 106
Instruction (59) SET ORG m AX n VAL i................................................................................. 107
Instruction (86) SET POS AX n = m.......................................................................................... 108
Instruction (87) SKIP WAIT AX n ............................................................................................ 109
Instruction (83) STOP AX n....................................................................................................... 110
Instruction (17) TIME m ............................................................................................................ 111
Instruction (75) TOOL ANGLE = m .................................................................................... 112
Instruction (74) TOOL n ....................................................................................................... 113
Instruction (195) VB [VNi] = n.................................................................................................. 113
Instruction (190) VBi = EQ2D v1 v2 v3 n ................................................................................. 114
Instruction ( 176 ) VBi = SETMAC PAR n VAL m .................................................................. 115
Instruction (178) VBi = SETP AX n PAR j VAL m .................................................................. 116
Instruction (246) VBi = VB[VNj ] ............................................................................................. 117
Instruction (240) VBi = x ........................................................................................................... 117
Instruction (189) VBi = x ........................................................................................................... 118
Instruction (82) VEL AX n = m % ............................................................................................. 118
Instruction (92) VEL AX n = m [mm/min] ................................................................................ 119
Instruction (192) VN[VNi] = n................................................................................................... 119
Instruction (220) VNi = m .......................................................................................................... 119
Instruction (188) VNi = m .......................................................................................................... 120
Instruction (221) VNi = m + n.................................................................................................... 120
Instruction (222) VNi = m - n..................................................................................................... 121
Instruction (225) VNi = VQj ...................................................................................................... 121
Instruction (227) VNi = VN[VNj].............................................................................................. 122
Instruction (228) VNi = AI m..................................................................................................... 122
Instruction (238) VNi = STEP + n.............................................................................................. 123
Instruction (191) VQ[VNi] = m.................................................................................................. 123
Instruction (200) VQi = m .......................................................................................................... 124
Instruction (187) VQi = m .......................................................................................................... 125
Instruction (208) VQi = AI n ...................................................................................................... 125
Instruction (184) VQi = ATAN2 (m,j) ....................................................................................... 126
Instruction (186) VQi = CATH (m,j) ......................................................................................... 126
Instruction (185) VQi = DIST (m,j) ........................................................................................... 127
Instruction (104) VQi = FUN n p1 p2 p3 p4 .............................................................................. 128
Instruction (48) VQi = GET ANGLE ORG n ....................................................................... 128
Instruction (177) VQi = GETMAC PAR n................................................................................. 129
Instruction (179) VQi = GETP AX n PAR j............................................................................... 129
Instruction (193) VQi = m * j ..................................................................................................... 130
Instruction (194) VQi = m/j........................................................................................................ 130
Instruction (180) VQi = m * SIN j.............................................................................................. 131

M0000464 Page 35
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (181) VQi = m * COS j ............................................................................................ 131


Instruction (182) VQi = m/SIN j ................................................................................................ 132
Instruction (183) VQi = m/COS j ............................................................................................... 132
Instruction (201) VQi = m + j..................................................................................................... 133
Instruction (202) VQi = m - j...................................................................................................... 133
Instruction (203) VQi = m * n .................................................................................................... 134
Instruction (204) VQi = m/n ...................................................................................................... 134
Instruction (197) VQi = j % k..................................................................................................... 134
Instruction (205) VQi = VNj ...................................................................................................... 135
Instruction (58) VQi = ORG m AX n ......................................................................................... 136
Instruction (206) VQi = POS AX n ............................................................................................ 136
Instruction (207) VQi = VQ[VNj].............................................................................................. 137
Instruction (36) WAIT AX ......................................................................................................... 137
Instruction (81) WAIT AX n IN QUOTE .................................................................................. 137
Instruction (247) WAIT VBi ...................................................................................................... 138
FUN 61 DIGITAL CAM MANAGEMENT INITIALIZATION AND RESET CAMS.......... 143
FUN 62 ACTIVATION, CHANGE OR DEACTIVATION OF A DIGITAL CAM................ 144
FUN 71 ACQUISITION OF AXIS LEVEL FROM INTERRUPT OF THE ENCODER ZERO
NOTCH 152
FUN 72 INITIALIZATION VARIABLES FOR IRQ MANAGEMENT ON CANopen ......... 160
FUN 76 77POSITION 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 FUNCTION IN AUTOMATIC CYCLE........................................................ 169
FUN 82 FUNCTION OF CHANGE SPEED AT FINAL LEVEL............................................ 171
FUN128 PALLET MANAGEMENT........................................................................................ 181
FUN131 INITIALIZES PALLET MANAGEMENT................................................................ 188
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
VB256 VB_START .................................................................................................................. 292
VB257 VB_STOP ..................................................................................................................... 292
VB258 VB_JOG_P ................................................................................................................... 293
VB259 VB_JOG_M .................................................................................................................. 293
VB260 VB_EMERG ................................................................................................................. 293
VB261 VB_PRG_RUN ...................................................................................................... 294
VB262 VB_STEP_STAND_BY............................................................................................... 294
VB263 VB_NO_MOVE_AX.................................................................................................... 294
VB264 VB_EDGE_STEP ......................................................................................................... 294
VB265 VB_SET_PRG_NUM................................................................................................... 295
VB266 VB_MAN_MULTI ....................................................................................................... 295
VB267 VB_END_PRG ....................................................................................................... 295
VB268 VB_ACCESS_KEY...................................................................................................... 296
VB269 VB_NO_SETVAR........................................................................................................ 296
VB270 VB_TOOL_COORD .................................................................................................... 296
VB271 VB_TEACH.................................................................................................................. 297
VB272 VB_TEACH_LINE....................................................................................................... 297
VB273 VB_CN_IN_SETVAR.................................................................................................. 297
VB274 VB_LOC_REM ............................................................................................................ 297
VB275 VB_MAN_AUTO......................................................................................................... 298
VB276 VB_ST_MENU ...................................................................................................... 298
VB277 VB_ST_AUTO ....................................................................................................... 298
VB278 VB_ST_MANU ...................................................................................................... 298
VB279 VB_ST_ACQ_PAR ................................................................................................ 298

Page 36 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

VB280 VB_ST_TEST ........................................................................................................ 298


VB281 VB_ST_TEST_VEL ............................................................................................... 298
VB282 VB_ST_SEMI_AUTO ........................................................................................... 298
VB283 VB_ST_OMNI ....................................................................................................... 298
VB284 VB_ST_AZZ .......................................................................................................... 298
VB285 VB_ST_EDIT ......................................................................................................... 299
VB286 VB_ST_EME .......................................................................................................... 299
VB287 VB_AX_ENABLE ................................................................................................. 299
VB288295 VB_FIRST_AX_DIS ............................................................................................... 299
VB296303 VB_FIRST_AX_SEL............................................................................................... 299
VB304311 VB_FIRST_AX_IN_QUO ................................................................................. 300
VB312319 VB_FIRST_AX_ZERO ........................................................................................... 300
VB320327 VB_FIRST_PID_DIS............................................................................................... 300
VB328335 VB_FIRST_SET_ZERO .......................................................................................... 301
VB336343 VB_FIRST_AX_JOG_M......................................................................................... 301
VB344351 VB_FIRST_AX_HOLD_S ...................................................................................... 301
VB352355 VB_FIRST_IRQ_EN ............................................................................................... 302
VB360367 VB_FIRST_FOLL_EN ............................................................................................ 302
VB368 VB_SH_REG_LATCH_IN........................................................................................... 302
VB369 VB_SH_REG_LATCH_OUT....................................................................................... 303
VB370 VB_SH_REG_IN.......................................................................................................... 303
VB372 VB_SH_REG_CLEAR ................................................................................................. 303
VB373 VB_DINAM_SETVAR ................................................................................................ 304
VB374 VB_SET_ORG ............................................................................................................. 304
VB375 VB_GET_ORG............................................................................................................. 304
VB376383 VB_FIRST_AX_SET_ORG .................................................................................... 304
VB384 VB_CONT_MOVE ...................................................................................................... 305
VB385 VB_USE_TX_PRG ...................................................................................................... 305
VB386 VB_START_TX ........................................................................................................... 305
VB387 VB_TX_BUF_FULL .................................................................................................... 305
VB388 VB_TX_IN_PR............................................................................................................. 306
VB389 VB_END_TX ............................................................................................................... 306
VB390 VB_ENAB_F3 .............................................................................................................. 306
VB391 VB_DISAB_F1_SET_PRG .......................................................................................... 307
VB392 VB_REV_ARC_DIR .................................................................................................... 308
VB393 VB_WAIT_TX_PRG.................................................................................................... 308
VB394 VB_PROF_PER_PNT .................................................................................................. 308
VB395 VB_PRG_RESET ......................................................................................................... 309
VB396 VB_DIS_SET_F ........................................................................................................... 309
VB397 VB_PC_CHG_PRG ...................................................................................................... 309
VB398 VB_APPR_F1............................................................................................................... 309
VB399 VB_CN_SET_PAGE .................................................................................................... 309
VB400 VB_VIEW_ALRM ....................................................................................................... 310
VB401 VB_ENABL_RES_F1 .................................................................................................. 310
VB402 VB_QUO_AX_F1 ........................................................................................................ 310
VB403 VB_SEMI_INCR .......................................................................................................... 311
VB404 VB_DISABIL_F1_SET_VAR...................................................................................... 311
VB405 VB_TEACH_EL........................................................................................................... 311
VB406 VB_MODEM_EN ........................................................................................................ 312
VB407 VB_RETR_ENAB ........................................................................................................ 312
VB408 VB_RETR_IND............................................................................................................ 312
VB409 VB_RETR_AVA .......................................................................................................... 313
VB410 VB_RETR_IN_PR ................................................................................................. 313
VB411 VB_NEXT_MOVE ................................................................................................ 313
VB412 VB_ROTAT_ENAB..................................................................................................... 314
VB413 VB_GET_ANGLE........................................................................................................ 314
VB414 VB_CN_CHG_PRG ..................................................................................................... 314
VB415 VB_CN_SEL ................................................................................................................ 314
VB416 VB_MIDDLE_PNT ...................................................................................................... 315
VB417 VB_TASTO_PREMUTO ............................................................................................. 315

M0000464 Page 37
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

VB418 VB_EN_FASE_AX ...................................................................................................... 315


VB419 VB_DISAB_PC_OUT .................................................................................................. 315
VB420 VB_REQ_CONF_MEMO ............................................................................................ 316
VB421 VB_EN_TAV_ROT...................................................................................................... 316
VB422 VB_APP_WITH_ORG................................................................................................. 316
VB423 VB_ENAB_F6 .............................................................................................................. 316
VB424 VB_ENAB_OTHER_PSW........................................................................................... 316
VB425 VB_RESET_EMERG................................................................................................... 317
VB426 VB_ INIT_ERR_MAIN................................................................................................ 317
VB427 VB_OM_EXIT ............................................................................................................. 317
VB428 VB_OM_START_AUTO............................................................................................. 317
VB429 VB_OM_START_TEST .............................................................................................. 318
VB430 VB_OM_START_TSTVEL ......................................................................................... 318
VB431 VB_OM_START_SEMI .............................................................................................. 318
VB432 VB_OM_START_ZERO.............................................................................................. 318
VB433 VB_OMNI_MODE....................................................................................................... 319
VB434 VB_OM_DIS_MAN..................................................................................................... 319
VB435 VB_OM_DIS_PAGE_STATE ..................................................................................... 319
VB436 VB_OM_INIT_QUOTE ............................................................................................... 319
VB437 VB_SET_AUTO_ERR ................................................................................................. 319
VB438 VB_NO_SET_SER_QUO ............................................................................................ 320
VB439 VB_DIS_COP_CHK_START...................................................................................... 320
VB440 VB_DIS_PROFI ........................................................................................................... 320
VN256 VN_OVERRIDE_VEL................................................................................................. 322
VN257 VN_PRG_NUM ........................................................................................................... 322
VN258 VN_KEY_CODE ......................................................................................................... 322
VN259 VN_MOVING_AXES ........................................................................................... 323
VN260267 VN_FIRST_POS_AX_MM ............................................................................... 323
VN268271 VN_FIRST_IRQ_CNT ............................................................................................ 323
VN272 VN_AX_ONOFF_REC_GC ........................................................................................ 324
VN273 VN_AX_ONOFF_DEC................................................................................................ 324
VN274 VN_EN_ROLLOVER .................................................................................................. 324
VN276283 VN_FIRST_FOLL_FACT ....................................................................................... 325
VN284291 VN_FIRST_FOLL_ENC ......................................................................................... 326
VN292299 VN_FIRST_AX_OVD ............................................................................................. 326
VN300 VN_SH_REG_DELAY ................................................................................................ 326
VN301 VN_NUM_PRG_START ............................................................................................. 326
VN302 VN_VQ_INDX_EMERG ............................................................................................. 327
VN303 VN_VQ_INDX_FEED................................................................................................. 327
VN304 VN_VQ_INDX_IN_POS ............................................................................................. 327
VN305 VN_GET_ORG_NUM ................................................................................................. 328
VN306 VN_SET_ORG_NUM.................................................................................................. 328
VN307 VN_CUR_ORG_NUM................................................................................................. 329
VN308 VN_MAIN_PRG_NUM ............................................................................................... 329
VN309 VN_CUR_PRG_NUM ........................................................................................... 329
VN310 VN_TX_PRG_NUM .................................................................................................... 329
VN311 VN_INDX_POS_ERR.................................................................................................. 330
VN312 VN_CUR_STEP_NUM_H ..................................................................................... 330
VN313 VN_CUR_STEP_NUM_L ..................................................................................... 330
VN314 VN_TX_STEP_H ......................................................................................................... 330
VN315 VN_TX_STEP_L ......................................................................................................... 330
VN316323 VN_FIRST_FOLL_DEN ......................................................................................... 331
VN324331 VN_FIRST_FOLL_MODE...................................................................................... 332
VN332 VN_FIRST_ORG_OFFS.............................................................................................. 332
VN333 VN_FIRST_SCALE_FCT............................................................................................ 332
VN334 VN_EMERG_ERR_NUM ..................................................................................... 333
VN335 VN_EMERG_ERR_PAR ....................................................................................... 334
VN336 VN_PRG_IN_F1 .......................................................................................................... 335
VN337 VN_VQ_TOOL_COORD ............................................................................................ 335
VN338 VN_TX_WAIT_PRG_NUM........................................................................................ 335

Page 38 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

VN339 VN_SEL_AX_NUM .................................................................................................... 335


VN340 VN_VQ_INDX_SET_F................................................................................................ 336
VN341 VN_APPR_F1 .............................................................................................................. 336
VN342 VN_START_F1_PRG .................................................................................................. 336
VN343 VN_CN_ACT_PAGE ............................................................................................ 337
VN344 VN_CN_SET_PAGE.................................................................................................... 337
VN345 VN_MAIN_ERR_NUM ......................................................................................... 338
VN346 VN_MAIN_ERR_PAR .......................................................................................... 338
VN347 VN_ZERO_AX_NUM ................................................................................................. 338
VN348355 VN_FIRST_TEACH_VEL ...................................................................................... 339
VN356 VN_VQ_FEED............................................................................................................. 339
VN357 VN_MODEM_STAT ............................................................................................. 340
VN358 VN_MODEM_CDM .................................................................................................... 340
VN359 VN_VB_INDX_MSG .................................................................................................. 341
VN360 VN_SOGL_PROX_AX ......................................................................................... 341
VN361 VN_TYPE_MOVE ................................................................................................. 341
VN362 VN_TYPE_AUTOAPP ................................................................................................ 342
VN363 VN_TIMER_SEC_RES................................................................................................ 342
VN364 VN_VQ_POS_AX........................................................................................................ 342
VN365 VN_VIEW_MOD......................................................................................................... 343
VN366 VN_INS_ISTR ............................................................................................................. 343
VN367 VN_INS_PAR1 ............................................................................................................ 344
VN368 VN_RW_VQ ................................................................................................................ 344
VN369 VN_VQ_RW_VQ......................................................................................................... 344
VN370 VN_DIS_FN_KEY....................................................................................................... 345
VN371 VN_SLG_EXE_ISO..................................................................................................... 346
VN372 VN_FMT_DATE.......................................................................................................... 346
VN373 VN_WAKE_FUN......................................................................................................... 346
VN374 VN_TIPO_RACCORDO.............................................................................................. 346
VN375 VN_ MAIN_ERR_CODE ............................................................................................ 347
VN376 VN_PAGE_ID.............................................................................................................. 347
VN377 VN_PAGE_BASE_ADDR........................................................................................... 349
VN378 VN_VQ_OBJ_AX ........................................................................................................ 349
VN379 VN_OBJ_ID ................................................................................................................. 350
VN380 VN_AX_QUO_MODE ................................................................................................ 350
VN381 VN_QUO_VQ_INDX .................................................................................................. 351
VN382 VN_DATA_ENAB....................................................................................................... 351
VN383 VN_PUT_KEY............................................................................................................. 351
VN384 VN_VAR_VIEW_TICK .............................................................................................. 352
VN385 VN_MODE_PRG_LIST............................................................................................... 352
VN386 VN_CUR_CN_LANG.................................................................................................. 354
VN387 VN_DISAB_STD_VIEW............................................................................................ 354
VN388 VN_LAST_PRG_REC ................................................................................................ 354
VN389 VN_TIME_DATE_IDX .............................................................................................. 355
VN390 VN_DATA_BARC_NUM .......................................................................................... 355
VN391 VN_BARC_STATO.................................................................................................... 355
VN392 VN_COPY_VA ........................................................................................................... 356
VN393 VN_DATA_CN_MASTER_NUM............................................................................... 357
VN394 VN_CN_MASTER_STATO ........................................................................................ 357
VN395 VN_CN_MASTER_NUM_SENT................................................................................ 357
VN396 VN_FASE_AZZERAMENTO ..................................................................................... 357
VN397 VN_DISAB_NG_COP ................................................................................................. 357
VN398 VN_MODBUS_COM .................................................................................................. 358
VN399 VN_MODBUS_COM_MODE..................................................................................... 358
VN400 VN_STD_STATE_NUM ............................................................................................. 358
VN401 VN_OMNI_OPER........................................................................................................ 358
VN402 VN_OM_PRG_NUM ................................................................................................... 359
VN403 VN_OM_TSTVEL_AX_NUM .................................................................................... 359
VN404 VN_EDIT2 ................................................................................................................... 359
VN405 VN_PRG_NUM_TO_EDIT ......................................................................................... 359

M0000464 Page 39
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

VN406 VN_FIRST_PRG_LIST................................................................................................ 359


VN407 VN_LAST_PRG_LIST ................................................................................................ 360
VN408 VN_PRG_BASE_LIST ................................................................................................ 360
VN409 VN_COP_WARN_ERR ............................................................................................... 360
VN410 VN_OBJ_DATA_LIST ................................................................................................ 360
VN411 VN_PAGE_MODE ...................................................................................................... 361
VN412 VN_PALM_PUT_KEY................................................................................................ 361
VN413 VN_CONF_ISTR ......................................................................................................... 362
VN414 VN_EMRG_ERR_COD ......................................................................................... 362
VN415 VN_EMRG_ERR_AX ........................................................................................... 362
VN416 VN_CONF_EDIT......................................................................................................... 363
VN417 VN_DATA_EDIT_NUM ............................................................................................. 363
VN418 VN_MENU_FUN_CODE ............................................................................................ 363
VN419 VN_PRESET_CN_PASSW ......................................................................................... 364
VN420 VN_CNT_RTC_FULL................................................................................................. 364
VN421 VN_FLOPPY_STATE ................................................................................................. 364
VQ97 VQ_VAL_RACCORDO ................................................................................................ 366
VQ98 366
VQ99 366
VQ256 VQ_MENU_LEVEL .................................................................................................... 366
VQ257 VQ_MENU_LEVEL_PALM ....................................................................................... 366

NC DESCRIPTION ISTRUCTION

Instruction (14) AN OUT n = m


NC Keyboard Editor Format 14 AN OUT n = m

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

A voltage of 1.54 volts is set on analog output 1.

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

Instruction (77) ANT AX n TP t VAL q


NC Keyboard Editor Format 77 ANT AX <n> TP <t> VAL <q>

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

257 Advance instruction 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:

: AX 1 TO 100 //axis in position = 100


: TIME 2 //waits 2 seconds
: AX 1 INCR 50 //axis in position = previous position + 50
: END

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>

Brings axis n to position m.

Example:

#prog 9800
#name Test

: AX 1 TO 100
: TIME 2
: AX 1 TO 0
: END

The example shows a possible movement of axis 1 using the instruction 80 AX n TO m.


At the first step, axis 1 is brought to position 100. After waiting 2 seconds (TIME instruction),
the axis is brought to position 0.

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

Instruction ( 85 ) AX n VEL v QUOTE m


NC Keyboard Editor Format 85 AX n VEL v QUOTE m

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

Example 1: Single change of speed with standard behavior VN413=0)

: VN413 = 0

: AX 1 TO 100 // axis 1 to position 100


AX 1 VEL 50 QUOTE 50 //The speed change to 50% of the maximum STARTS
//when axis 1 reaches position 50

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

Instruction (38) CONT MOVE


NC Keyboard Editor Format 38 CONT MOVE
or G60

Enables continuous interpolated movements.


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 achieved with the CONT MOVE instruction.

CONT MOVE (code 38) Enables continuous interpolated movements


NO CONT MOVE (code 39) Disables continuous interpolated movements

Let's look at an example


Suppose we want to realize the movement in fig. 1 and find ourselves at point A.

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:

: FXY 20 // Set working speed


: CONT MOVE // Continuous interpolated movements enabled
: G1 X 200 Y 100 // I am taken to point B
: G2 X 300 Y 0 I 200 J 0 // I am taken to point C
: NO CONT MOVE // Continuous interpolated movements disabled

NOTE It is important to note that continuous interpolated movements can


only be obtained with circular connections.

Instruction (34) END


NC Keyboard Editor Format 34 END

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>

Sets the interpolation speed to m [mm/min].

Example:

: F 10 // I set the working speed: 10 mm/min


: G1 X=40 Y=70 // Linear interpolation with position X=40 and
// Y=70
: G2 X 40 Y 70 I 70 J 80 //circular interpolation in a clockwise direction with
// center I=70 J=80 and final point X=40 Y=70
: TOOL 2 // Use tool no. 2

Page 48 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (120) FORK PROG n


NC Keyboard Editor Format 120 FORK PROG n

n <val | VN>

Allows executing several programs simultaneously in Automatic mode: the main and, at most, 2
secondaries.
The instruction:
: FORK PROG n

enables the execution of program n simultaneously with others already executing.


Program n can, in its turn, launch another program.

A parallel program is stopped with:


: KILL PROG n
Or when the program comes to the END instruction.

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:

Main 100 200

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

Instruction (60) FXY m


NC Keyboard Editor Format 60 FXY m

m <val | VQ>

Sets the interpolation speed to m [mm/sec].

Example:

: FXY 10 // Set working speed: 10 mm/sec


: G1 X=40 Y=70 // Linear interpolation with position X=40 and
// Y=70
: G2 X 40 Y 70 I 70 J 80 //circular interpolation in a clockwise direction with
// center I=70 J=80 and final point X=40 Y=70
: TOOL 2 // Use tool no. 2

Instruction (61) G1 X xf Y yf
NC Keyboard Editor Format 61 G1XY xf, yf

xf <val | VQ>
yf <val | VQ>

Executes a linear interpolation in positions xf, yf.


The instruction 61 G1 X xf Y yf allows performing a rectilinear movement of the tool. Unlike
the linear interpolation instructions from 50 to 55, the instruction 61 G1 X xf Y yf provides tool
compensation. This is to say, by using instruction 61 G1 X xf Y yf, the control takes into
account the dimensions of the tool using instructions 41 and 42.

Example:

: G1 X1500 Y540 //linear interpolation with final positions X=1500 Y=540


: G2 X873 Y220 I873 J210 //clockwise circumference center in 873 210 and end 873
220

N.B. See paragraph Linear and circular interpolation in the Programming Manual.

Page 50 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (56) G103 P n VQi


NC Keyboard Editor Format 56 G103 P n VQi

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.

The following example illustrates the use of instruction G103.

Example:

%1 TEST1 {ISO program number 1}


G103P1000VQ0 {enabled at the stop of work and jump to
{program 1000. VQ0}
{contains 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 }
M0000464 Page 51
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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}
G2 X260.000 Y150.000 I245.000 J154.375 {circular interpolation.}
{Arc of circumference in a clockwise direction}
{with center I=245 Y=154.375 and }
{final point X=260 Y=150}
G1 X225.000 Y18.750 {linear interpolation. Moving axes to the positions}
{X=225 Y=18.750}

G40 {disables tool correction}


G61 {disables continuous movements}
M02 {end of program}

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

The following work is performed:

Stop on the point and execution of program 1000 because


the angle formed by the directions of the sections of the profile made by
G3 and the next G1 ( ) is greater than the value of the machine
parameter Tangency tolerance

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.

Below, we show two examples of NC program 1000.

Example: 1: working without tangential axis.

#prog 1000
#name Program 1000

: TOOL ANGLE=VQ0

: END

M0000464 Page 53
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Example: 2: working with tangential axis

#prog 1000
#name Program 1000

: AX 3 TO VQ0

: END

Page 54 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (66) G1XYN xf, yf, n, nf


N.B. The following syntax refers to programming directly on the NC keyboard. There is no
editor instruction that is recognized by the CSX compiler.

66 G1XYN xf, yf, n, nf

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:

: G1 X1500 Y540 //linear interpolation with final positions X=1500 Y=540


: G2 X873 Y220 I873 J210 //circumference Clockwise, center at 873 210 and end 873
220

N.B. See paragraph Linear and circular interpolation in the Programming Manual.

Page 56 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (72) G2R r e xf yf


NC Keyboard Editor Format 72 G2R r, e, xf, yf

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

Instruction (67) G2XYN xc yc xf yf n qf


N.B. The following syntax refers to programming directly on the NC keyboard. There is no
editor instruction that is recognized by the CSX compiler.

67 G2XYN xc, yc, xf, yf, n, qf

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:

: G1 X1500 Y540 //linear interpolation with final positions X=1500 Y=540


: G3 X873 Y220 I873 J210 //circumference Counter-clockwise center at 873 210 and
end 873 220

N.B. See paragraph Linear and circular interpolation in the Programming Manual.

M0000464 Page 59
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (73) G3R r e xf yf


NC Keyboard Editor Format 73 G3R r, e, xf, yf

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

Instruction (68) G3XYN xc, yc, xf, yf, n, qf


N.B. The following syntax refers to programming directly on the NC keyboard. There is no
editor instruction that is recognized by the CSX compiler.

68 G3XYN xc, yc, xf, yf, n

Executes a circular interpolation XY, counter-clockwise, with an additional axis (n).


The instruction 68 G3XYN 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 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 (40) G40


NC Keyboard Editor Format 40 TOOL DISABLE

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

Suppose we want to execute the following work:

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:

: G40 // Work point at center of tool


: G1 X 1150 Y 1200 //Brings tool to point A

The effect would be the following:

With erroneous positioning.


Moreover, the effect of instruction 40 G40 cancels instruction 41 G41 and 42 G42

M0000464 Page 63
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (41) G41


NC Keyboard Editor Format 41 TOOL SN

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.

If, for example, we had to perform the following work

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 (42) G42


NC Keyboard Editor Format 42 TOOL DX

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):

the positioning instructions would be:

: 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 (43) G43 (or TOOL EXT)


NC Keyboard Editor Format 43 TOOL EXT

Instruction for special applicatios, for use call Sipro technical office.

Tool outside with respect to the circumference.


While working with the tool, we must specify if the latter is found inside the circumference, i.e.,
if I must create a round hole inside a piece of material or if it is located outside, i.e., that I have
to create a wheel filled with material. In the second case, I use instruction 43 G43.
If, for example, I have to create a piece of round marble, I will use the following instructions:

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 direction always tangential


to the circumference Center of coordinates
xc=70 yc=80

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 (44) G44 (or TOOL INT)


NC Keyboard Editor Format 44 TOOL INT

Instruction for special applicatios, for use call Sipro technical office.

Tool inside with respect to the circumference.


While working with the tool, we must specify if the latter is found inside the circumference, i.e.,
if I must create a round hole insdide a piece of material or if it is located outside, i.e., that I
have to create a wheel filled with material. In the first case, I use instruction 44 G44.
For example, if I have to create a piece of marble with an inside round hole, I will use the
following instruction:

Example:

: G44 //tool inside 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 direction always tangential


to the circumference Center of coordinates
xc=70 yc=80

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 (45) G45


NC Keyboard Editor Format 45 TOOL PATH DIR G45

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

Instruction (4) GOSUB n


NC Keyboard Editor Format 4 GOSUB n

n <val | VN>

Performs a jump to subroutine (subprogram) n (with return).

Example:

#prog 9800
#name Test

: TIME 1
: GOSUB 1
: TIME 2
: END

#prog 1
#name Zero

: AX1 TO 0 //Brings AXIS X to 0


: AX2 TO 0 //Brings AXIS Y to 0
: END

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

Instruction (8) GOTO n


NC Keyboard Editor Format 8 GOTO n

Jump to step number n.

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

Instruction (142) IF AX n GOSUB m


NC Keyboard Editor Format 142 IF AX n GOSUB m

n <val | VN>
m <val | VN>

If axis n is in position, control passes to subroutine m.

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

Instruction (146) IF AX n GOTO m


NC Keyboard Editor Format 146 IF AX n GOTO m

n <val | VN>
m <val | VN>

If axis n is in position, it jumps to step m.

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

Instruction (132) IF IN n GOSUB m


NC Keyboard Editor Format 132 IF IN n GOSUB m

n <val | VN>
m <val | VN>

If input n is ON, the control goes to subroutine m.

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

Instruction (133) IF IN n JMPPRG m


NC Keyboard Editor Format 133 IF IN n JMPPRG m

n <val | VN>
m <val | VN>

If input n is ON, it jumps to program m.


Instruction 133 IF IN n JMPPRG m has the same function as instruction 132 IF IN ValN
GOSUB m. The only difference is that instruction 133 IF IN n JMPPRG does not provide for the
return to the calling program once execution of the called program n is finished. If, referring to
the example for instruction 132 IF IN ValN GOSUB m, program 9800 is modified as follows:

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

Instruction (136) IF IN n GOTO m


NC Keyboard Editor Format 136 IF IN n GOTO m

n <val | VN>
m <val | VN>

If input n is ON, it jumps to step m.

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

Instruction (248) IF VBi = ValB GOTO m


NC Keyboard Editor Format 248 IF VBi = x GOTO m

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:

:Loop IF VB2 = 1 GOTO Work


: AX 2 TO Quota 2
: Quota 2 = Quota 2 + Quota 1
: GOTO Loop
:Work

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

Instruction (230) IF VNi < n GOSUB m


NC Keyboard Editor Format 230 IF VNi < n GOSUB m

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

and a program Work:

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

Instruction (231) IF VNi = n GOSUB m


NC Keyboard Editor Format 231 IF VNi = n GOSUB m

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.

Instruction (232) IF VNi > n GOSUB m


NC Keyboard Editor Format 232 IF VNi > n GOSUB m

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

Instruction (233) IF VNi < n GOTO m


NC Keyboard Editor Format 233 IF VNi < n GOTO m

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

Instruction (234) IF VNi = n GOTO m


NC Keyboard Editor Format 234 IF VNi = n GOTO m

i <val>
m <val>
n <val | VN>

If the value of Numeric Variable i is equal to 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
equal to a precise value specified by m.

Instruction (235) IF VNi > n GOTO m


NC Keyboard Editor Format 235 IF VNi > n GOTO m

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

Instruction (210) IF VQi < m GOSUB n


NC Keyboard Editor Format 210 IF VQi < m GOSUB n

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

and a program Work:

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

Instruction (211) IF VQi = m GOSUB n


NC Keyboard Editor Format 211 IF VQi = m GOSUB n

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.

Instruction (212) IF VQi > m GOSUB n


NC Keyboard Editor Format 212 IF VQi > m GOSUB n

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

Instruction (213) IF VQi < m GOTO n


NC Keyboard Editor Format 213 IF VQi < m GOTO n

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

Instruction (214) IF VQi = m GOTO n


NC Keyboard Editor Format 214 IF VQi = m GOTO n

i <val>
m <val | VQ>
n <val | VN>

If the value of Position Variable i is equal to 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
equal to a precise value specified by m.

Instruction (215) IF VQi > m GOTO n


NC Keyboard Editor Format 215 IF VQi > m GOTO n

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

Instruction (49) INCR ORG m AX n VAL i


NC Keyboard Editor Format 49 INCR ORG m AX n VAL i

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:

: INCR ORG 3 AX 2 VAL 40 //increase the origin of axis 2 by 40 relative


//to origin 3

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

Instruction (3) INPUT n


NC Keyboard Editor Format 3 INPUT n

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

Instruction (37) INTP MODE = n


NC Keyboard Editor Format 37 INTP MODE = n

n <val | VN>

Sets the number of interpolated axes to n.

Example:

: INTP MODE = 3 //number 3 axes interpolated

Page 88 M0000464
Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (31) INTP PAR n AX m P p


NC Keyboard Editor Format 31 INTP PAR n AX m P p

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

Instruction (5) JMPRG n


NC Keyboard Editor Format 5 JMPPRG n

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

: AX1 TO 0 //ZERO AXIS X


: AX2 TO 0 //ZERO AXIS Y
: END

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>

Stops the execution of parallel program n.


For a more detailed explanation, see instruction (120 ) FORK PROG n

M0000464 Page 91
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (84) LINE n1 m1 n2 m2


NC Keyboard Editor Format 84 LINE n1 m1 n2 m2

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

: AX 1 TO 100 //axis in position = 100


: INPUT 4 //waits for digital input 4 to become active (logical value 1)
: SKIP WAIT AX 1 //the movement of axis 1 is executed and the control passes
AX 1 TO 0 // to the next instruction without waiting for the axis in position (0)
: INPUT 3 //waits for digital input 3 to become active (logical value 1)
: STOP AX 1 //stopps axis 1
: TIME 2 //I wait 2 seconds before executing the next instruction
: LINE 1 200 2 300 //I execute a linear interpolation with final position axis1 = 200 and
//final position axis2 = 300
: END

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

Instruction (50) LINE2 q1 q2


NC Keyboard Editor Format 50 LINE2 q1 q2

q1 <val | VQ>
q2 <val | VQ>

Executes a 2-axis interpolation in positions q1 and q2.


Instruction 50 LINE2 q1 q2 allows performing a rectilinear movement of the tool. Unlike the
linear interpolation instructions 61 G1 X xf Y yf, instruction 50 LINE2 q1 q2 does not provide
for tool compensation.

Example:

: LINE2 100 200 //linear interpolation with final position X=100 Y=200

N.B. See also instruction 61 G1 X xf Y yf

Instruction (51) LINE3 q1 q2 q3


NC Keyboard Editor Format 51 LINE3 q1 q2 q3

q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>

Executes a 3-axis interpolatioin in positions q1, q2 and q3.


Like instruction 50 LINE2 q1 q2 except that it takes 3 axes into consideration.

Instruction (52) LINE4 q1 q2 q3 q4


NC Keyboard Editor Format 52 LINE4 q1 q2 q3 q4

q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q4 <val | VQ>

Executes a 4-axis interpolation in positions q1, q2, q3 and q4.


Like instruction 50 LINE2 q1 q2 except that it takes 4 axes into consideration.

M0000464 Page 93
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (53) LINE5 q1 q2 q3 q4 q5


NC Keyboard Editor Format 53 LINE5 q1 q2 q3 q4 q5

q1 <val | VQ>
q2 <val | VQ>
q3 <val | VQ>
q4 <val | VQ>
q5 <val | VQ>

Executes a 5-axis interpolation in positions q1, q2, q3, q4 and q5.


Like instruction 50 LINE2 q1 q2 except that it takes 5 axes into consideration.

Instruction (54) LINE6 q1 q2 q3 q4 q5 q6


NC Keyboard Editor Format 54 LINE6 q1 q2 q3 q4 q5 q6

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

Instruction (102) MEM STEP VNi


NC Keyboard Editor Format 102 MEM STEP VNi

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

Instruction (70) MOVEXYT xf yf tf


NC Keyboard Editor Format 70 MOVEXYT xf, yf, tf

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

Instruction (39) NO CONT MOVE


NC Keyboard Editor Format 39 NO CONT MOVE
or G61

Disables continuous interpolated movements.


Functions in normal mode (without having given instruction 35 NO WAIT AX).
See, the example of instruction 38 CONT MOVE

M0000464 Page 97
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (35) NO WAIT AX


NC Keyboard Editor Format 35 NO WAIT AX

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.

For example, let's consider the following program:

: SET VQ1 = 100.000


: AX 1 TO VQ1
: IF IN 3 GOSUB 7
...

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:

: WAIT AX n IN QUOTE // Stops the execution of the program until


//axis n arrives in position
: IF AX n GOSUB mm //If axis n is in position, it executes program m
: IF AX n GOTO mm //If axis n is in position, it jumps to step m

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

NOTA It is important to note that the WAIT AX/NO WAIT AX instructions


are valid from the program step in which they are found on, i.e., they
change mode only from that step on.
For the movement of axes moved in previous steps, the mode
relative to the moment of their activation will continue to be valid
(until they reach their position). It may, therefore, be necessary to
use the instructions that control their reaching position.

In addition, there is also an instruction that changes the program method in local mode:

: SKIP WAIT AX n //It pursues the execution of the program


//without axis n being in position

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

NOTA It should be noted that if step 6 was:

: WAIT AX

The program would be wrong anyway because step 6 would change


the mode for the subsequent steps, while axis 1 is being driven to
step 2 with a different mode (No Wait Axis).

Example:
Let's look at another example of synchronizing axes movements possible with the use of
WAIT/NO WAIT AX.

: NO WAIT AX //Disables axes in position

: AX 1 TO 100.000 //Final position axis 1


: VEL AX 3 45.0 //Suitable speed
AX 3 TO 60.000 //Intermediate position axis 3
: WAIT AX 3 IN QUOTE //Wait for arrival of axis 3 in position
: VQ10 = POS AX 1 //Read the position of axis 1
//If position < 90 return to step 5
: IF VQ10 < 90.000 GOTO 5
: AX 3 TO 100.000 //Final position axis 3
: WAIT AX 1 IN QUOTE //Wait for arrival of axis 1 in position
WAIT AX 3 IN QUOTE //Wait for arrival of axis 3 in position

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).

Page 100 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (55) ORG n (or G55 n)


NC Keyboard Editor Format 55 ORG n

n <val | VN>

Sets origin n as active. To return to absolute positions set the value to 0.


The positions used during working with tools are calculated on the basis of the system of
reference used. The absolute system of reference takes as the origin of the axes, the zeros
calculated with zero axes in the calibration phase of the machine. In addition to this origin of the
axes, the Sipro s.r.l. controls provide the possibility of setting 20 of them that can be used during
the execution of a program. I.e., it creates a list of different origins numbered from 1 to 20 and,
by specifying the number associated to the origin, the control takes as the system of reference,
from that step on, the one that has those specified as positions. For example, we want to perform
the following work:

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

: G1 X0 Y70 //work equal to the rectangular length X=140 upper side


: G1 X0 Y0 //work equal to the rectangular height Y=70 left side
: ORG 0 //return to the absolute system of reference
: G1 X0 Y0 //positioning axes at the absolute origin
.

To create the list of origins, one must proceed in three ways:

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

Page 102 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (18) OUTON n


NC Keyboard Editor Format 18 OUTON n

n <val | VN>

Enables the indicated output.


The output remains active until an OUTOFF instruction.

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)

Instruction (19) OUTOFF n


NC Keyboard Editor Format 19 OUTOFF n

n <val | VN>

Disables the indicated output.

Example: See example for instruction 18 OUTON

M0000464 Page 103


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (15) PULSE n


NC Keyboard Editor Format 15 PULSE n

n <val | VN>

Sets output n to ON for 200 msec.

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).

Page 104 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (93) QUOTE AX n = m


NC Keyboard Editor Format 93 QUOTE AX n = m

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.

M0000464 Page 105


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (47) SET ANGLE ORG n VAL i


NC Keyboard Editor Format 47 SET ANGLE ORG n VAL i

n <val | VN>
i <val | VQ>

N.B. Instruction only enabled for dedicated firmware.


Rotation and translation is enabled by VB412.
Sets the angle of the origin.
The movement of the axis is carried out with respect to the origin of the system of reference with
the instruction 55 ORG n. In addition to the translation of the origin of the axes, carried out with
respect to the origin of the absolute system of reference (origin in the machine zero), you can set
the rotation of the new system of reference with the instruction 47 SET ANGLE ORG n VAL i.
This instruction sets the angle between the axes of the new system of reference and the old one.
For example, if we want a new system of reference with origin translation (60,40) and rotation of
the angle by 30 degrees, the instructions will be:

: ORG 2 //origin translated to origin 2


: SET ANGLE ORG 2 VAL 30 //angle of new system of reference rotated by 30
//degrees

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.

Page 106 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (59) SET ORG m AX n VAL i


NC Keyboard Editor Format 59 SET ORG m AX n VAL i

m <val | VN>
n <val | VN>
i <val | VQ>

Sets the value i of the axis n in origin m.


One of the methods for setting the positions of an origin is to use instruction 59 SET ORG m AX
n VAL i

Example:

: SET ORG 2 AX 3 VAL 50 //sets axis 3 of origin 2 to 50

N.B. For further explanations, see paragraph Origins in the programming manual and
instruction 55 ORG n

M0000464 Page 107


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (86) SET POS AX n = m


NC Keyboard Editor Format 86 SET POS AX n = m

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.

Page 108 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (87) SKIP WAIT AX n


NC Keyboard Editor Format 87 SKIP WAIT AX n

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.

M0000464 Page 109


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (83) STOP AX n


NC Keyboard Editor Format 83 STOP AX n

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

: AX 1 TO 100 //axis in position = 100


: INPUT 4 //waits for digital input 4 to become active (logical value 1)
: SKIP WAIT AX 1 //the movement of axis 1 is executed and the control passes
AX 1 TO 0 // to the next instruction without waiting for the axis in position (0)
: INPUT 3 //waits for digital input 3 to become active (logical value 1)
: STOP AX 1 //stops axis 1
: END

Instruction 83 STOP AX n at step 5 interrupts the movement of axis1, which is being brought to
position 0.

Page 110 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (17) TIME m


NC Keyboard Editor Format 17 TIME m
or Hm

m <val | VQ>

Waits m seconds at the end of the step.

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.

M0000464 Page 111


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (75) TOOL ANGLE = m


NC Keyboard Editor Format 75 TOOL ANGLE = m

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

For an example of work, see the example for instruction 41 G41.

Page 112 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (74) TOOL n


NC Keyboard Editor Format 74 TOOL n

Instruction for special applicatios, for use call Sipro technical office.

n <val | VN>

Sets tool number n.


The use of this instruction allows choosing the tool for the work.

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

Instruction (195) VB [VNi] = n


NC Keyboard Editor Format 195 VB [Vni] = n

i <val>
n <val | VB>

Example:

: VN1 = 5 //I assign the whole numeric value 5 to VN1


: VB[VN1] = 0 //To the VB of index specified by VN1 (5), I assign the
//value 0
.
The program assigns the value 0 to VN5

M0000464 Page 113


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (190) VBi = EQ2D v1 v2 v3 n


NC Keyboard Editor Format 190 VBi = EQ2D v1 v2 v3 n

i <val>
v1 <val | VQ>
v2 <val | VQ>
v3 <val | VQ>
n <val | VN>

Calculates the roots of a second degree equation of the type ax + bx + c = 0.


In which:
VBi = 0 indicates that the instruction was correctly executed;
VBi = 1 indicates that there is a negative discriminant or that the coefficient a = 0;
v1 = coefficent a
v2 = coefficent b
v3 = coefficent c
n = index of the 1st VQ that contains the results:
VQ[n] = 1st solution (the minor);
VQ[n + 1] = 2nd solution (the major).

Example:

: SET VQ1 = 1 //I set Position Variable VQ1 to 2.828


: SET VQ2 = -14 //I set Position Variable VQ2 to 2
: SET VQ3 = 45 //I set Position Variable VQ3 to 45
: VB1 = EQ2D ValQ1 ValQ2 ValQ3 4
: IF VB1 = 1 GOTO AxesStopped //If the equation is not correctly resolved
//it avoids moving axes 1 and 2
: AX 1 TO VQ4
: AX 2 TO VQ5
:AxesStopped .

The program calculates the roots of the equation:

x2 14x + 45 = 0 root 1 =5 root 2 = 9

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).

Page 114 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction ( 176 ) VBi = SETMAC PAR n VAL m


NC Keyboard Editor Format 176 VBi = SETMAC PAR n VAL m

i <val>
n <val | VN>
m <val | VQ>

Sets a machine parameter.


The respective codes (n) are the following:
1 Interpolation acceleration factor xx.x
2 Maximum radius error (mm 1000)
3 Number tangential axes (in interpolation)
4 Tangency tolerance (degrees 1000)
5 Acceleration factor in arcs xx.x
6 Acceleration factor between two entities xx.x
7 Virutal axes proximity threshold

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.

M0000464 Page 115


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (178) VBi = SETP AX n PAR j VAL m


NC Keyboard Editor Format 178 VBi = SETP AX n PAR j VAL m

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.

Page 116 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Example:

If a program contains the instruction:

: 178 VB95 = SETP AX 3 PAR 10 VAL 300

this sets the Proportional Gain to the value 300 for axis 3.

Instruction (246) VBi = VB[VNj ]


NC Keyboard Editor Format 246 VBi = VB[VNj ]

i <val>
j <val>

Indexed acces to variable. Assigns the value of binary variable VB[VNj] to binary variable i.

Example:

: VN1 = 5 //I assign the binary value 5 to VN1


: VB2 = VB[VN1] //I assign the value of the VB of index specified by VN1 (5)
//to VB2

Instruction (240) VBi = x


NC Keyboard Editor Format 240 VBi = x

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

M0000464 Page 117


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (189) VBi = x


NC Keyboard Editor Format 189 VBi = x

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.

Instruction (82) VEL AX n = m %


NC Keyboard Editor Format 82 VEL AX n = m %

n <val | VN>
m <val | VQ>

Sets the speed of axis n to m (as a percentage of the Maximum speed).

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).

Page 118 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (92) VEL AX n = m [mm/min]


NC Keyboard Editor Format 92 VEL AX n = m

n <val | VN>
m <val | VQ>

Sets the speed (expressed in 10 mm/min) of axis n to the value m.


This instructioin functions like instruction 82 with the only exception that, in this case, the speed
set is expressed in 10 mm/min and not as a percentage (instruction 82 VEL AX ValN = ValQ %)

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.

Instruction (192) VN[VNi] = n


NC Keyboard Editor Format 192 VN[VNi] = n

i <val>
n <val | VN>

Indexed word of Numeric Variable. Assigns the value n to Numeric Variable VN[VNi].

Example:

: VN1 = 5 //I assign the whole numeric value 5 to VN1


: VN[VN1] = 50 //I assign the value 50 to the VN of index specified by
//VN1 (5)
.
The program assigns the value 50 to VN5

Instruction (220) VNi = m


NC Keyboard Editor Format 220 VNi = m

i <val>
m <val | VN>

Sets the value m in the Numeric Variable of index i.

Example:

: VN1 = 39 //assigns the value 39 to Numeric Variable 1

M0000464 Page 119


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (188) VNi = m


NC Keyboard Editor Format 188 VNi = m

i <val>
m <val | VN>

Sets the value m in the Numeric Variable of index i.


Unlike the instruction of the same name (220) Vni = m, instruction (188) Vni = m allows the use
of the extended index Binary Variables (i > 255).

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.

Instruction (221) VNi = m + n


NC Keyboard Editor Format 221 VNi = m + n

i <val>
m <val | VN>
n <val | VN>

Adds numeric value m to numeric value n and assigns it to Numeric Variable i.

Example:

: VN2 = VN3 + 7 //Assigns the sum of VN3 and 7 to VN2

Page 120 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (222) VNi = m - n


NC Keyboard Editor Format 222 VNi = m - n

i <val>
m <val | VN>
n <val | VN>

Subtracts numeric value n from numeric value m and assigns it to Numeric Variable i.

Example:

: VN3 = VN4 34 //assigns the difference of VN4 and 34 to VN3.

Instruction (225) VNi = VQj


NC Keyboard Editor Format 225 VNi = VQj

i <val>
j <val>

Assigns the whole part of Position Variable j to Numeric Variable i.

Example:

: VQ7 =34.98
: VN65 = VQ7 //Assigns the value 34 (whole part) to VN65

M0000464 Page 121


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (227) VNi = VN[VNj]


NC Keyboard Editor Format 227 VNi = VN[VNj]

i <val>
j <val>

Indexed acces to variable. Assigns the value of Numeric Variable VN[VNj] to Numeric
Variable i.

Example:

: VN1 = 5 //I assign the whole numeric value 5 to VN1


: VN2 = VN[VN1] //I assign the value of the VN of index specified by VN1 (5)
//to VN2

Instruction (228) VNi = AI m


NC Keyboard Editor Format 228 VNi = AI m

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:

: VN1 = AI 3 //assigns the value in DAC of analog input 3 to VN1

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.

Page 122 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (238) VNi = STEP + n


NC Keyboard Editor Format 238 VNi = STEP + n

i <val>
n <val | VN>

Assigns the number of the current step, incremented by n, to Numeric Variable i.

Example:

: AX 3 TO 1000 //axis 3 in position 1000


: AX 2 TO 3000 //axis 2 in position 3000
: AX 1 TO 2550 //axis 1 in position 2550
: VN1 = STEP + 8 //assigns the value 8 + the value of the current step to VN1

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)

Instruction (191) VQ[VNi] = m


NC Keyboard Editor Format 191 VQ[VNi] = m

i <val>
m <val | VQ>

Indexed word of Position Variable. Assigns the value m to Position Variable VQ[VNi].

Example:

: VN1 = 5 //I assign the whole numeric value 5 to VN1


: VQ[VN1] = 50 //I assign the position 50 to the VQ of index specified by
//VN1 (5)
: AX 1 TO VQ5 //movement of axis 1 to position 50

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.

M0000464 Page 123


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (200) VQi = m


NC Keyboard Editor Format 200 VQi = m

i <val>
m <val | VQ>

Sets the value m in the Position Variable of index i.

Example:

: VQ1 = 50

Page 124 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (187) VQi = m


NC Keyboard Editor Format 187 VQi = m

i <val>
m <val | VQ>

Sets the value m in the Position Variable of index i.


Unlike the instruction of the same name (200) Vqi = m, instruction (187) Vqi = m allows the use
of extended index Position Variables (i > 255).

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.

Instruction (208) VQi = AI n


NC Keyboard Editor Format 208 VQi = AI n

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:

: VQ4 = AI 3 //VQ4 receives the value of analog input 3 in volts

M0000464 Page 125


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (184) VQi = ATAN2 (m,j)


NC Keyboard Editor Format 184 VQi = ATAN2 (m,j)

i <val>
m <val | VQ>
j <val | VQ>

111
Example:

: SET VQ1 = 90 //I set position VQ1 to 90


: SET VQ2 = 45 //I set position VQ2 to 45
: VQ3 = ATAN2(VQ2,VQ1)// VQ3 receives the value arctg(VQ1/VQ2)

After the third step described, VQ3 will have the value:

63.435=arctg(90/45)

Instruction (186) VQi = CATH (m,j)


NC Keyboard Editor Format 186 VQi = CATH (m,j)

i <val>
m <val | VQ>
j <val | VQ>

Assigns Position Variable i the result of the operation: sqrt (m2-j2).

Example:

: SET VQ1 = 2.828 //I set position VQ1 to 2.828


: SET VQ2 = 2 //I set position VQ2 to 2
: VQ3 = CATH(VQ1,VQ2)//VQ3 receives the value sqrt(VQ12 - VQ22)

After the third step described, VQ3 will have the value:

2=sqrt(2.8282 - 22)

Page 126 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (185) VQi = DIST (m,j)


NC Keyboard Editor Format 185 VQi = DIST (m,j)

i <val>
m <val | VQ>
j <val | VQ>

Assigns Position Variable i the result of the operation: sqrt (m2+j2).

Example:

: SET VQ1 = 2 //I set position VQ1 to 2


: SET VQ2 = 2 //I set position VQ2 to 2
: VQ3 = DIST(VQ1,VQ2)//VQ3 receives the value sqrt(VQ12 + VQ22)

After the third step described, VQ3 will have the value:

2,828=sqrt(22 + 22)

M0000464 Page 127


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (104) VQi = FUN n p1 p2 p3 p4


NC Keyboard Editor Format 104 VQi = FUN n p1 p2 p3 p4

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:

: VQ21 = FUN 82 VQ20 VQ19 VQ18 VQ17

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.

Instruction (48) VQi = GET ANGLE ORG n


NC Keyboard Editor Format 48 VQi = GET ANGLE ORG n

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:

: VQ2 = GET ANGLE ORG 3 //I acquire the angle of origin 3

N.B. See also instruction 47 SET ANGLE ORG n VAL i

Page 128 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (177) VQi = GETMAC PAR n


NC Keyboard Editor Format 177 VQi = GETMAC PAR n

i <val>
n <val | VN>

Reads a machine parameter.


For the respective codes, see previous instruction 176 VBi = SETMAC PAR ValN VAL ValQ.

Example:

: VQ3 = GETMAC PAR 4 //Reads the tangency tolerance parameter and saves it in
VQ3

Instruction (179) VQi = GETP AX n PAR j


NC Keyboard Editor Format 179 VQi = GETP AX n PAR j

i <val>
n <val | VN>
j <val | VN>

Reads a machine parameter.

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.

M0000464 Page 129


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (193) VQi = m * j


NC Keyboard Editor Format 193 VQi = m * j

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

Instruction (194) VQi = m/j


NC Keyboard Editor Format 194 VQi = m / j

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

Page 130 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (180) VQi = m * SIN j


NC Keyboard Editor Format 180 VQi = m * SIN j

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:

: SET VQ1 = 100 //I set position VQ1 to 100


: SET VQ2 = 30 //I set position VQ2 to 30
: VQ3 = VQ1*SIN VQ2 // VQ3 receives the value VQ1(100)*SIN VQ2(30) = 50

After the third step described, VQ3 will have the value:

100*SIN(30)=50

Instruction (181) VQi = m * COS j


NC Keyboard Editor Format 181 VQi = m * COS j

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:

: SET VQ1 = 100 //I set position VQ1 to 100


: SET VQ2 = 60 //I set position VQ2 to 60
: VQ3 = VQ1*COS VQ2 //VQ3 receives the value VQ1(100)*COS VQ2(60) = 50

After the third step described, VQ3 will have the value:

100*COS(60)=50

M0000464 Page 131


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (182) VQi = m/SIN j


NC Keyboard Editor Format 182 VQi = m / SIN j

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:

: SET VQ1 = 100 //I set position VQ1 to 100


: SET VQ2 = 30 //I set position VQ2 to 30
: VQ3 = VQ1/SIN VQ2 //VQ3 receives the value VQ1(100)/SIN VQ2(30) = 200

After the third step described, VQ3 will have the value:

100/SIN(30)=200

Instruction (183) VQi = m/COS j


NC Keyboard Editor Format 183 VQi = m / COS j

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:

: SET VQ1 = 100 //I set position VQ1 to 100


: SET VQ2 = 60 //I set position VQ2 to 60
: VQ3 = VQ1/COS VQ2 //VQ3 receives the value VQ1(100)/COS VQ2(60) = 200

After the third step described, VQ3 will have the value:

100/COS(60)=200

Page 132 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (201) VQi = m + j


NC Keyboard Editor Format 201 VQi = m + j

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

Instruction (202) VQi = m - j


NC Keyboard Editor Format 202 VQi = m - j

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

M0000464 Page 133


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (203) VQi = m * n


NC Keyboard Editor Format 203 VQi = m * n

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

Instruction (204) VQi = m/n


NC Keyboard Editor Format 204 VQi = m / n

i <val>
m <val | VQ>
n <val | VN>

Divides position m by numeric value n and assigns it to Position Variable i.

Example:

: VQ1 = 39
: VN1 = 2
: VQ2 = VQ1 / VN1 //VQ2 receives the result of the division of VQ1 and VN1

Instruction (197) VQi = j % k


NC Keyboard Editor Format 197 VQi = VQj % VQk
i <val>
j <val | VQ>
k <val | VQ>

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

Page 134 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (205) VQi = VNj


NC Keyboard Editor Format 205 VQi = VNj

i <val>
j <val>

Assigns the value of Numeric Variable j to Position Variable i.

Example:
: VN1 = 30
: VQ2 = VN1 //VQ2 receives the value 30

M0000464 Page 135


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (58) VQi = ORG m AX n


NC Keyboard Editor Format 58 VQi = ORG m AX n

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

Instruction (206) VQi = POS AX n


NC Keyboard Editor Format 206 VQi = POS AX n

i <val>
n <val | VN>

Assigns the current position of axis n to Position Variable i.

Example:

: AX 1 TO 210 //Brings axis 1 to position 210


: VQ1 = POS AX 1 //I acquire the position of axis 1 and assign it to VQ1
AX 2 TO VQ1 //I bring axis 2 to the position specified by VQ1

The program allows acquiring the current position of axis 1 and saving it in variable VQ1 and
using it to move axis 2.

Page 136 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Instruction (207) VQi = VQ[VNj]


NC Keyboard Editor Format 207 VQi = VQ[VNj]

i <val>
j <val>

Access indexed to the variable. Assigns the value of Position Variable VQ[VNj] to Position
Variable i.

Example:

: VN1 = 5 //I assign the whole numeric value 5 to VN1


: VQ2 = VQ[VN1] //assigns to value of the VQ of index specified
//to VQ2
: AX 1 TO VQ5 //movement of axis 1 to the position specified by VQ5

Instruction (36) WAIT AX


NC Keyboard Editor Format 36 WAIT AX

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.

Instruction (81) WAIT AX n IN QUOTE


NC Keyboard Editor Format 81 WAIT AX n IN QUOTE

n <val | VN>

Waits for axis n to arrive in position.

See examples for instruction 35 NO WAIT AX

M0000464 Page 137


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Instruction (247) WAIT VBi


NC Keyboard Editor Format 247 WAIT VBi

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:

: AX 1 TO 120 //axis 1 in position 120


: WAIT VB3 //VB3 is set to 1 and program waits for it to return to 0
: AX 1 TO 0 //axis 1 in position 0

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

where VB256 is associated to the [START] key of the NC.

Page 138 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

NC Functions
Below, we describe the functions (FUN) that can be called by instruction (104) VQI = FUN n p1
p2 p3 p4

FUN 50 STORAGE FEE MAXIMUM or MINIMUM.


Feature available on request.

The function 50 stores on a Vq the axis maximum or the axis minimum reached

SYNTAX

Vq<i> = FUN 50 <Num Axis> <VqIdx> <OpCode>

i Index of the VQ that will contain the return value of the function

Num Axis Axis Number

VqIdx Index of the VQ that will contain the maximum or minimum quote

OpCode Operative Code: 0 = no stores


1 = store maximum quote
2 = store mimimum quote

Return value of the function


0 No Error
1 Axis Number Error
2 VQ Index Error
3 Operative Code Error

NOTA The memory function is 'active after the execution of


FUN50.Rimane active in any state of NC, until' is not called again
FUN 50 with OpCode = 0.

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

M0000464 Page 139


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 55 INITIATION MANAGEMENT ACTION TO STOP


AXIS ON DIGITAL INPUT OR MARK OF ZERO
Feature available on request.
(On the zero mark by 4:41 FIRMWARE VERSION OF 05/28/2003)

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.

NOTE NEL CASO IN CUI SI UTILIZZI L INGRESSO SU TACCA


DI ZERO SI DEVE ABILITARE LINTERRUPT CON LE VB
DI ABILITAZIONE INTERRUPT SU TACCA DI ZERO
(VB352-VB355).

SYNOPSIS

Vq<i> = FUN 55 <N. Plank> <N. Input> <Quota> <mode>

<i> the VQ index that will contain 'the return value of the function

<N. Plank> Number of the axis [1, 2, ...]

<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.

<mode> Mode using the function:

0 = Control share in the forward direction - one shoot


1 = Control share in the reverse direction - one shoot
2 = No controlling share - one shoot
10 = Control share in the forward direction - multi shoot
11 = Control share in the reverse direction - multi shoot
12 = No controlling share - multi shoot

Page 140 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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

Initialization of the management to stop input.

: VQ1 = FUN 55 1 10 500 11

The input shaft 10 carries a stop 1, the mode of operation is :


with a control stake in the direction negative
multi-shoot.

Example 2

Initialization of the management to stop entry of zero mark.

: VQ1 = FUN 55 1 1500 11

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

M0000464 Page 141


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 56 RESET GESTIONE STOP ASSE DA INGRESSO


DIGITALE o TACCA DI ZERO
Feature available on request.
(On the zero mark by 4:41 FIRMWARE VERSION OF 05/28/2003)

The function 56 allows undo programming a stop to digital input or input of the zero mark.

SYNOPSIS

Vq<i> = FUN 56 <N. Axis> 0 0 0

<i> the VQ index that will contain 'the return value of the function

<N.Axis> Number of the axis [1, 2, ...]

If set to 0 you reset all the planned stops.

RETURN VALUE:

0 Operation successful
1 Error programming the axis number

Page 142 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 61 DIGITAL CAM MANAGEMENT INITIALIZATION


AND RESET CAMS
Function 61 initializes the management of digital cams; it must be called before the first call to
function 62 activate digital cams; a subsequent call to function 61 will reset all the cams that
may be active.

SYNTAX

VQ<i> = FUN 61 <VB Enab> <Mode> 0 0

i Index of the VQ that will contain the return value of the function

VB Enab Index of the cam-enabling Binary Variable (VB)

Mode 0 = Initialization complete


1 = Initialization only of the programmed operations with FUN 60
2 = Initialization only of the digital cams

RETURN VALUE:

0 operation executed correctly

NOTA function 61 allows assigning the cam-enabling Binary Variable (VB);


the status of the assigned VB is NOT changed.

NOTA Mode = 1 and Mode = 2 are features active starting from


firmware version ver.5.64 del 24.01.2008

Example:

Initialization of digital cam management and assignment of VB 70 as the cam-enabling VB.

: VQ1 = FUN 61 70 0 0

M0000464 Page 143


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 62 ACTIVATION, CHANGE OR DEACTIVATION OF


A DIGITAL CAM
Function 62 allows activating, modifying or deactivating a digital cam.
Each digital cam is associated to a master axis whose level, considered in modulo format,
determines the status of cam active (or in cam) and cam not active (or out of cam).
The functionality of a digital cam can be associated to a digital output or a Binary Variable (VB).
The cam can be a space or time type; in space mode an activation (or Start) point and a
deactivation (or Stop) point are defined; in time mode a start point and an activation time are
defined.

SYNTAX

VQ<i> = FUN 62 <Num Axis> <NumDigOut> <Idx VQ par>

i Index of the VQ that will contain the return value of the function

Num Axis Number of the associated master axis

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:

first VQ Operating mode

bit 2-0 (values from 0 to 7) cam type:


0 = deactivation of an already operating cam
1 = activation of a Space Cam
2 = activation of a Time Cam

bit 3 (value 8)

0 = the cam is acting on a digital output


1 = the cam is acting on a Binary Variable (VB)

bit 4 (value 16)


0 = advance calculated on the basis of the theoretical speed of the master
1 = advance calculated on the basis of the measured speed of the master
Advance on the basis of the measured speed is active in firmware version 3.77a or higher.

bit 5 (value 32)


0 = bi-directional cams
1 = mono-directional cams (only space cams with movement of the master in
forward direction).

Page 144 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Mono-directional cams are available starting from firmware version 4.43 of 30/06/2003.

bit 6 (value 64)


0 = Classical setting of the advance (see 4^ VQ)
1 = New setting of the advance (see 6^ 7^ 8^ 9^ 10^ VQ).
The new setting mode of the advance is active from firmware version 5.59
of 31/08/2007.

second VQ Start position [mm] or [degrees]

third VQ Stop position or the intervention time in [sec]

fourth VQ advance of intervention in [sec]

fifth VQ read modulo of the level of the master axis


0 = the parameter ImpRif of the master axis is used
different from 0 = modulo in [mm] or [degrees]

sixth VQ minimum speed for calculating the advance [cycle/min]


(new mode bit 6 = 1)

seventh VQ maximum speed for calculating the advance [cycle/min]


(new mode bit 6 = 1)

eighth VQ advance at maximum speed [mm] or [degrees]


(new mode bit 6 = 1)

ninth VQ starting threshold calculation advance [mm] or [degrees]


(new mode bit 6 = 1)

tenth VQ end threshold calculation advance [mm] or [degrees]


(new mode bit 6 = 1)

RETURN VALUE:

0 operation of INSERTING new cam correctly executed


2 operation of MODIFYING existing cam correctly executed
3 operation of DEACTIVATING executed correctly
4 space cam (Mode 1) DEACTIVATED because Start = Stop
5 insertion of space cam (Mode 1) NOT executed because Start = Stop
-1 number of cams available (MAX_CAMME) exceeded
-2 master axis number not legal (< 1 or > TotAssi)
-3 unexpected mode
-4 new mode of the advance (bit 6 = 1) and cams not space
-5 new mode of the advance (bit 6 = 1) and cams mono-directional

NOTA before using function 62, it is necessary to have initialized digital


cam management through a call to function 61 digital cams
initialization and reset.

M0000464 Page 145


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

NOTA for digital cams to be operation, the enabling Binary Variable


(VB) must be 1; the enabling VB is assigned through function 61.

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

: VQ51 = 1 // space cam


VQ52 = 30 // Start value
VQ53 = 145 // Stop value
VQ54 = 0 // advance
VQ55 = 0 // modulo. 0 = uses ImpRif of the master axis

: VQ1 = FUN 62 1 12 51

Page 146 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 63 INITIATION MANAGEMENT ACTION CAM


WITH AXIS ASSOCIATED
Feature available on request..

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

Initialization of the cam controller with associated axis.

: VQ1 = FUN 63 0 0 0

After the execution of the function 63 ia possible program a cam axis associated with.
.

M0000464 Page 147


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 64 PROGRAMMING OF A CAM SHAFT


ASSOCIATED WITH
Feature available on request..

The function 64 allows the programming of a cam shaft 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. Master Number of the Master [1, 2, ...]

N. Slave Number of a slave [1, 2, ...]

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:

First VQ Index of the Vb enabling the cam.

Second VQ speed 'of the master [%]

Third Vq Module of scanning of the axis Master


0 = parameter is used ImpRif Master axis
other than 0 = form [mm]

Fourth VQ mode of use of the cam. It 'a bit variable.


Bit 0: = 0 is used to speed 'theory of the master.
= 1 is used to speed 'real master.
Bit 1: = 0 Use the speed 'snapshot of the master.
= 1 is used to speed 'of the media masters.
The average is computed on four samples.
Bit 2: = 0 The encoder of the master it is incremental.
= 1 The encoder of the master is is an 'absolute single-turn.

NOTE From version 5.19 fw the decimal part of the


fourth and Vq 'the number of samples on which
you are average. If the decimal part, and '0 the
number of samples and the average' 4 (for
compatibility 'with earlier versions of fw.))

Fifth VQ Base Placinq [mm]

Page 148 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Sixth VQ Start position of the first movement of the cam [mm].

Seventh VQ Position stop of the first movement of the cam [mm].

Eighth VQ Movement of the slave during the first movement of the cam [mm].

Ninth VQ start position of the second movement of the cam [mm].

Tenth VQ position stop of the second movement of the cam [mm].

Eleventh VQ Movement of the slave during the second movement of the cam [mm].

RETURN VALUE:

>=0 Operation successful programming of the cam.


The number and 'the identification of the cam.
-1,000 Error in the number of the master.
-2,000 Error in the number of the slave.
-3,000 Number of master axis equal to the number of the slave.
-4,000 Maximum number of cams allowed.
-5,000 Not enouph memory space for the cams.
-6,000 Error in the number of moves to master around.
-7.yxx- error in the calculation of the table.
and y is the number of movements that generated the error.
xx it is the error code
01 = Overflow in the calculation of cycle time.
02 = Overflow in the calculation of the movement time.
03 = Movement time was too short.
04 = Speed 'slave of greater speed. maximum
05 = Overflow in the calculation of the initial cam.
06 = Overflow in calculating the instant of end cam.
Example:
-7,204 Error in the movement. 2: the speed 'of the slave is higher than the velocita'ammessa.
-8,000 Error in the parameter MODE OF USE of the cam.
-9,000 Error in the parameter SPEED 'THE MASTER.

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:

1 Mm reference of the master.


2 Pulses of reference of the master. In the case of single-turn absolute encoder parameter
M0000464 Page 149
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

value represents information per revolution of the encoder.


Can 'be used, if programmed as a module of the cam (see third parameter VQ)
3 Speed 'reference of the master axis: along with the speed parameter' of the master [%]
(second VQ) is used to determine the time required for movement of the slave.
4 Number of master axis encoder.
5 Mm reference of the slave.
6 pulses of reference of the slave
7 Speed 'reference of the slave.
8 Number of the slave encoder.
9 Acceleration time of the slave.
10 Deceleration time of the slave.
.
Even when the master and 'just an encoder, you must define a master axis with the gains of the
PID and the parameter tracking error to zero.
In this case the speed parameter 'assumes the meaning of the reference frequency of the encoder
[pulses / sec] at the maximum speed'.

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

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
three movements:
cam 1: pos. master from 90 to 120 degrees, the slave advances of 1800 mm;
Cam 2: Pos. master from 150 to 240 degrees, the slave recedes to -300 mm;
Cam 3: pos. master from 320 to 30 degrees, the slave retreats -1500 mm.

It uses the speed 'theoretical mean of the master.


The master axis and 'equipped with incremental encoders.
No positioning of the base.
The movements of the slave master are calculated considering the move to 60% of its speed
'maximum.
The cam is activated when Vb57 = 1.

: Vq1 = FUN 63 0 0 0 / / Init. Management cams ax

: Vq10 = 57 / / Enable = Vb57 cam


: Vq11 = 60 / / Vel. master axis = 60%
: Vq12 = 360 / / unit = 360 degrees
: Vq13 = 2 / / Speed 'theory of the master
/ / Speed 'media
/ / Incremental encoders
: Vq14 = 0 / / Position the base

: Vq15 = 90 / / Start 1 ^ cam

Page 150 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

: Vq16 = 120 / / ^ 1 Stop Cam


: Vq17 = 1800 / / Move slave axis

: Vq18 = 150 / / Start 2 ^ cam


: Vq19 = 240 / / Stop 2 ^ cam
: Vq20 = -300 / / move the slave axis

: Vq21 = 320 / / Start 3 ^ cam


: Vq22 = 30 / / Stop 3 ^ cam
: Vq23 = -1500 / / move the slave axis

: 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.

Placement of base = 300 mm.


The module of recirculation for the slave axis is taken by the parameter of reference pulses. It
uses the speed 'average real master axis.
The master axis and 'with a single-turn absolute encoder pulses per revolution, many of which
must match the parameter of the master reference pulses.
The movements of the slave master are calculated considering the move to 30% of its speed
'maximum.
The cam is activated when Vb57 = 1.

: Vq1 = FUN 63 0 0 0 / / Init. Management cams ax

: Vq10 = 57 / / Enable = Vb57 cam


: Vq11 = 30 / / Vel. master axis = 30%
: Vq12 = 0 / / Set Form = Ref
: Vq13 = 7 / / Speed 'real master
/ / Speed 'media
/ / Single-turn absolute encoder
: Vq14 = 300 / / Position the base

: Vq15 = 90 / / Start 1 ^ cam


: Vq16 = 120 / / ^ 1 Stop Cam
: Vq17 = 1000 / / Move slave axis

: Vq18 = 150 / / Start 2 ^ cam


: Vq19 = 240 / / Stop 2 ^ cam
: Vq20 = 500 / / move the slave axis

: Vq1 = FUN 64 1 2 2 10
M0000464 Page 151
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 65 DETERMINATION OF A POSITION OF AXIS


SLAVE CORRESPONDING TO A POSITION OF AXIS
MASTER
Feature available on request.

The function 65 allows to determine the position of the slave axis corresponding to a position of
the master axis.

SYNOPSIS

Vq<i> = FUN <Cam. Iden> <Master Idx> <Slave Idx>

<i> the VQ index that will contain 'the return value of the function

Cam. Iden ID cam (function return value 64)

Master Index Idx Vq which contains the location of the master.


If you set -1 the function considers the current position of the master.

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.

NOTA Before using the function 65 must:


be initialized with the management of the cam shaft
associated with the call to the function 63
program at least a cam through the function.64

EXAMPLES

Example 1

Determination of the position of the slave.


After initializing a cam, is stored in the position of the slave Vq30 associated with the current
share of the master.

: Vq1 = FUN 63 0 0 0 / / Init. Management cams ax

Page 152 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

: Vq10 = 57 / / Enable = Vb57 cam


: Vq11 = 60 / / Vel. master axis = 60%
: Vq12 = 360 / / unit = 360 degrees
: Vq13 = 2 / / Speed 'theory of the master
/ / Speed 'media
/ / Incremental encoders
: Vq14 = 0 / / Position the base

: Vq15 = 90 / / Start 1 ^ cam


: Vq16 = 120 / / ^ 1 Stop Cam
: Vq17 = 1800 / / Move slave axis

: Vq18 = 150 / / Start 2 ^ cam


: Vq19 = 240 / / Stop 2 ^ cam
: Vq20 = -300 / / move the slave axis

: Vq21 = 320 / / Start 3 ^ cam


: Vq22 = 30 / / Stop 3 ^ cam
: Vq23 = -1500 / / move the slave axis

: Vq1 = FUN 64 1 2 3 10 / / Prog. cam

: VQ50 = Vq1 / / VQ50 Iden. cam


: VQ1 = FUN 65 VQ50 -1 30 / / Det. Pos slave

Example 2

Determination of the position of the slave.


After initializing a cam, is stored in the position of the slave Vq30 associated with the value of
the VQ40, regarded as the share of the master.

: Vq1 = FUN 63 0 0 0 / / Init. Management cams ax

: Vq10 = 57 / / Enable = Vb57 cam


: Vq11 = 60 / / Vel. master axis = 60%
: Vq12 = 360 / / unit = 360 degrees
: Vq13 = 2 / / Speed 'theory of the master
/ / Speed 'media
/ / Incremental encoders
: Vq14 = 0 / / Position the base

: Vq15 = 90 / / Start 1 ^ cam


: Vq16 = 120 / / ^ 1 Stop Cam
: Vq17 = 1800 / / Move slave axis

: Vq18 = 150 / / Start 2 ^ cam


M0000464 Page 153
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

: Vq19 = 240 / / Stop 2 ^ cam


: Vq20 = -300 / / move the slave axis

: Vq21 = 320 / / Start 3 ^ cam


: Vq22 = 30 / / Stop 3 ^ cam
: Vq23 = -1500 / / move the slave axis

: Vq1 = FUN 64 1 2 3 10 / / Prog. cam

: VQ50 = Vq1 / / VQ50 Iden. cam


: Vq1 = FUN 65 VQ50 40 30 / / Det. Pos slave

Page 154 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 66 SETTING THE STAGE


Feature available on request.

The function 66 allows you to set an offset to access the table placements.

SINTAX

Vq<i> = FUN 66 <Cam. Iden> < Master phase > 0 0

i the VQ index that will contain 'the return value of the function

Cam. Iden ID cam (function return value 64)

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.

NOTA Before using the function 66 you'must initialize the management of


the cam shaft associated with the call to the function 63 and to
program a cam through the function. 64 The function 65 takes
account of the phase. If not called the FUN66, phase, is nothing.
.
EXAMPLE:
EXAMPLE 1

: Vq1 = FUN 63 0 0 0 / / Init. Management cams ax

: Vq10 = 57 / / Enable = Vb57 cam


: Vq11 = 60 / / Vel. master axis = 60%
: Vq12 = 360 / / unit = 360 degrees
: Vq13 = 2 / / Speed 'theory of the master
/ / Speed 'media
/ / Incremental encoders
: Vq14 = 0 / / Position the base

: Vq15 = 90 / / Start 1 ^ cam


: Vq16 = 120 / / ^ 1 Stop Cam
: Vq17 = 1800 / / Move slave axis

: Vq18 = 150 / / Start 2 ^ cam


: Vq19 = 240 / / Stop 2 ^ cam
: Vq20 = -300 / / move the slave axis

M0000464 Page 155


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

: Vq21 = 320 / / Start 3 ^ cam


: Vq22 = 30 / / Stop 3 ^ cam
: Vq23 = -1500 / / move the slave axis

: Vq1 = FUN 64 1 2 3 10 / / Prog. cam

: VQ50 = Vq1 / / VQ50 Iden. cam

: VQ1 = FUN 66 VQ50 180 0 0 / / Step Master = 180 degrees

: Vq1 = FUN 65 VQ50 -1 30 / / Det. Pos slave

Page 156 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 71 ACQUISITION OF AXIS LEVEL FROM


INTERRUPT OF THE ENCODER ZERO NOTCH
Rev. 1.2 23.06.2004

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

bit 3 (from Ver. 5.09)


1 = level acquisition in pulses in the next VQ (or VQs, if the level of more than one axis
is being acquired) after the one that contains level in millimeters (or degrees)

NOTA this mode is incompatible with "acquisition with increment" (bit 2)

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.

Num Axis Number of the axis whose level is to be acquired

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.

NOTA by setting Num Axis = 0 the function is DISABLED

Idx level VQ Index of the VQ where the axis level is stored.


M0000464 Page 157
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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

0 operation executed correctly


1 specified interrupt error number (allowed values: [1 4])
2 error index of the destination VQ
3 first axis error number
4 second axis error number
5 error axis not CANopen type and Num IRQ = 0
6 encoder error associated with CANopen axis not CANopen type and Num IRQ = 0
7 error missing definition of interrupt management variable (IRQ count VN + IRQ-
enabling VB).

NOTA it is necessary to enable the generation of the interrupt through the


standard VBs:

VB352 IRQ1 zero notch of encoder 1


VB353 IRQ2 zero notch of encoder 2
VB354 IRQ3 zero notch of encoder 3
VB355 IRQ4 zero notch of encoder 4

At each interrupt, the relative interrupt count VN is incremented:

VN268 Interrupt counter IRQ1


VN269 Interrupt counter IRQ2
VN270 Interrupt counter IRQ3
VN271 Interrupt counter IRQ4

NOTA in acquisition with increment mode (bit 2 of acquisition mode set to


1), if the index of the destination VQ exceeds that allowed (255) the
levels are written in the VQ specified by the parameter Idx level VQ.
If the level of a single axis is acquired, VQ255 is not used.

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.

VQ1 = FUN 71 3 2 110 0

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.

Page 158 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

VQ1 = FUN 71 3.001 1.002 110 0

First parameter = 3.001


whole part =3 encoder 3
decimal part = 1 acquisition mode bit 0 to 1 => acquisition in modulo

second parameter = 1.002


whole part =1 acquisition level axis 1
decimal part = 2 acquisition level axis 2, also

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.

VQ1 = FUN 71 3.004 1 110 0

First parameter = 3.004


whole part =3 encoder 3
decimal part = 4 acquisition mode bit 2 to 1 => acquisition with increment

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).

M0000464 Page 159


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 72 INITIALIZATION VARIABLES FOR IRQ


MANAGEMENT ON CANopen
Function 72 allows defining the variables for managing the interrupts on drives controlled
through the CANopen protocol (VN for counting the of IRQs and IRQ-enabling VB).

SYNTAX

VQ<i> = FUN 72 <Num Axis> <VN Idx> <VB Idx>


i Index of the VQ that will contain the return value of the function

Num Axis Number of the axis controlled by CANopen whose management variables
you want to define.

VN Idx Index VN for counting interrupts.

VB Idx VB index for enabling interrupts.

RETURN VALUE

0 operation executed correctly


1 Axis Number Definition error
2 VN index error (less than 0, greater than the maximum number of VNs)
3 VB index error (less than 0, greater than the maximum number of VBs)

Example:

Definition of VN80 and VB40 as interrupt management variables for axis 2

VQ1 = FUN 72 2 80 40

Page 160 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 76 77 POSITION ROLLOVER


FUN76 returns the axis level in the range [ 0 .. Modulo], by taking away a whole number of
revolutions (1 revolution = modulo).

FUN77 returns the axis level in the rage [-Modulo/2 .. +Modulo/2 ], by taking away a whole
number of revolutions (1 revolution = modulo).

SYNTAX

VQ<i> = FUN 76 <AxNum> <VQModulo> <VQMode>

VQ<i> = FUN 77 <AxNum> <VQModulo> <VQMode>

i Index of the VQ that will contain the return value of the function

AxNum Number of the axis

VQModulo Modulo on which the rollover is performed.


If set to 0, the rollover considers as modulo, the
axis parameter Pulses of Reference.

VQMode Operating mode:


0 = Modulo in pulses
1 = Modulo in mm
2 = Modulo in axis pulses not controlled
3 = Modulo in axis mm not controlled

RETURN VALUE

The level set is returned.

M0000464 Page 161


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN78 SET MODES FOR COUPLING AND


UNCOUPLING TRACKING
This function is only available by request.

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

Vq<i> = FUN78 < Num Axis > <Mode> <VqIdx> <VqParIdx>

i Index of the VQ that will contain the return value of the function

Num Axis Number of the axis

Mode Mode of coupling and uncoupling tracking

VqIdx Vq index, the absolute or increment uncoupling level.

VqParIdx First VQ index for other parameters.

1st VQ = Modulo
2nd VQ = VB index that enabled coupling in position

MODE OF UNCOUPLING TRACKING:

Bits 0, 1, 2 and 3 of the mode parameter identify the mode of uncoupling tracking:

0 = Uncouple without deceleration ramp


1 = Uncouple with deceleration ramp
2 = Uncouple with ramp, setting the incremental stop level
stop level = uncoupling level + increment (VQ of index VqIdx)
3 = Uncouple with ramp, setting the absolute stop level
stop level = level programmed in the VQ of index VqIdx

MODE OF COUPLING TRACKING:

Bits 4, 5, 6 and 7 of the mode parameter identify the mode of coupling tracking:

0 = Couple without acceleration ramp


16 = Couple with acceleration ramp
48 = Couple in position with acceleration ramp

AXIS OF ROTATION:

Page 162 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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.

NOTA The VB that enables coupling in position (2nd VQ, additional


parameters) is used if tracking mode 48 is active: if the VB is
TRUE, coupling in position is active; if the VB is FALSE, coupling
in position is not active: in this case the active mode is 16.

RETURN VALUE:

0 operation executed correctly


1 operation did not execute correctly

NOTA Mode 3, together with mode 48, is used for the packing function
NO PRODUCT NO BAG. (See example 2).

EXAMPLES
Example 1

Axis 2: coupling and uncoupling tracking with ramp.

: VQ1 = FUN78 2 17 0 0

Example 2 (No product no bag)

: VQ1 = 180 // Stop level = 180 degrees


: VQ20 = 360 // Slave axis modulo = 360 degrees
: VQ21 = 3 // VB3 = enable coupling in position

: VB3 = 0 // Disables coupling in position


// Will be enabled by PLC

: VQ0 = FUN78 2 307 1 20 // Axis 2


// Absolute stop level
// Start with coupling in pos.
// Axis of rotation

: VB361 = 0 // Disables axis 2 tracking


: VN285 = 1 // Axis 2 follows encoder 1
: VN325 = 1 // Tracking mode = 1
: VN277 = 1000 // Tracking ratio numerator
: VN317 = 1000 // Tracking ratio denominator
: VB361 = 1 // Enables axis 2 tracking

M0000464 Page 163


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

: 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.

Coupling in position works with the following limitations:


The Master axis must be a controlled axis.
The two axes must have the same Impulses of Reference and Mm of Reference parameters.
The slave axis must be of rotation (bit 8, Mode parameter).
The direction must be FORWARD.
When the slave axis is decelerating to stop, coupling doesn't start until it is stopped.

Page 164 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 79 MODIFY THE OBJECTIVE LEVEL OF AN AXIS


IN MOTION
Function 79 allows changing the Objective Level of an axis in motion.

SYNTAX

VQ<i> = FUN 79 < Num Axis > <QuoObjMm> <Modulo> <Mode>

i Index of the VQ that will contain the return value of the function

Num Axis Number of the axis whose objective level is to be modified

QuoObjMm New objective level [mm]

Modulo Modulo of recirculation (for circular axes)


0 = uses the ImpRif parameter of the axis

Mode Programming mode (for circular axes)


bit 2-0 (values from 0 to 7) units of measurement for Modulo (when <> 0):
0 = Module in pulses [imp]
1 = Modulo in millimeters [mm]

bit 3-5 (values: 0, 8, 16, 24 etc.)


0 = normal axes
8 = circular axes

RETURN VALUE:

0 operation executed correctly


1 objective level change not executed

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

: VQ1 = FUN 79 2 VQ50 0

Page 166 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 80 MODIFY AXIS POSITION WITH AXIS IN


MOTION
Function 80 allows activating a level change of an axis upon the arrival of an external interrupt.
The functioning described is valid beginning from NC firmware Ver. 3.65e.
The decimal part of NUM_ASSE and RICHIESTA_CAMBIO_QUO_OBJ is available
beginning from firmware version 4.37.
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).

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

1 operation executed correctly


2 error axis not CANopen type and Num IRQ = 0
3 encoder error associated with CANopen axis not CANopen type
and Num IRQ = 0

M0000464 Page 167


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

NOTA : it is necessary to enable the generation of the interrupt through the


standard VBs:

VB352 IRQ1 zero notch of encoder 1


VB353 IRQ2 zero notch of encoder 2
VB354 IRQ3 zero notch of encoder 3
VB355 IRQ4 zero notch of encoder 4

At each interrupt, the relative interrupt count VN is incremented:

VN268 Interrupt counter IRQ1


VN269 Interrupt counter IRQ2
VN270 Interrupt counter IRQ3
VN271 Interrupt counter IRQ4

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.

VQ1 = FUN 80 3 2 150 0

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.

VQ1 = FUN 80 3 2 235 1

Page 168 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 81 RESET IN AUTOMATIC CYCLE


Function 81 allows resetting an axis during the automatic cycle: upon the arrival of the first zero
notch of the encoder associated to the axis, a value is set in the current level of the axis. The end
of the operation is signaled through a VB.
Function 81 is a one shot type: once the operation is finished, the function is disabled.
If, while waiting for the interrupt, the automatic cycle is interrupted due to a stop or an
emergency, function 81 is disabled.
Function 81 is available in suitably compiled firmware beginning from version 3.75d.
It is possible to reset one axis at a time.
Function 81 cannot be used simultaneously with function 80.

SYNTAX

VQ<i> = FUN 81 <Num Axis> <Level to Set> <Vbj Index>

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.

VB Index: Upon the arrival of the interrupt, the corresponding VB is set to 1.

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.

: VB27 = 0 // Reset the VB at the end of the operation


: VQ1 = FUN 81 2 2500 27
: IF VQ1 = 0 GOTO OK // VQ1 = 0 all OK

:Err
GOSUB ERRORE // error management subroutine
: GOTO fine // operation terminated due to an error

:OK

M0000464 Page 169


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

VEL AX 2 = 10% // Set speed


AX 2 TO 10000 // Axis movement
SKIP WAIT AX 2 // Do not wait for axis at level

:loop
IF VB27 = 0 GOTO loop // Wait for interrupt

: STOP AX 2 // Axis stop command


: WAIT AX 2 IN QUOTE // Wait for axes at level after stop

:fine
END

Page 170 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 82 FUNCTION OF CHANGE SPEED AT FINAL


LEVEL
Feature available on request.

Function 82 allows changing the speed of an axis in motion: the axis arrives at the final level
with the new speed set.

SYNTAX

VQ<i> = FUN 82 <Num Axis> <Speed> <Final level >

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

Num Axis: Number of the axis [ 1, 2 ]

Speed: New speed [%]

Final level: Final level [mm] of the speed change

Example 1: Single change of speed

Movement of axis 1 to level 1000 mm at speed 60%;


at level 500 mm the speed of the axis becomes 30%.

: vel ax 1 = 60 % // Set speed 60%


ax 1 to 1000 // Axis1 to level 1000 mm
skip wait ax 1 // continue without waiting for axis at level
: vq0 = fun 82 1 30 500 // change speed: vel = 30 % a quota 500 mm

:L1 if ax 1 goto FINE // Loop wait for axis at level


: goto L1

:FINE
end

Example 1: Multiple speed change

Movement of axis 1 to level 1000 mm at speed 60%;


at level 500 mm the speed of the axis becomes 30%.
At level 700 mm the speed of the axis becomes 90%

: vel ax 1 = 60 % // Set speed 60%


ax 1 to 1000 // Axis1 to level 1000 mm
skip wait ax 1 // continue without waiting for axis at level
: vq0 = fun 82 1 30 500 // change speed: vel = 30 % a quota 500 mm

M0000464 Page 171


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

: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

:L1 if ax 1 goto FINE // Loop wait for axis at level


: goto L1

:FINE
end

Page 172 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 104 AUTOMATIC RECOVERY QUOTA


Feature available on request.

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.

We define the following functions:

- Detecting the position of Master of Vq to interrupt


(FUN 71)

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

Vq <i> = FUN 104 <Num Asse> <Vq_Par_Idx>

i the VQ index that will contain 'the return value of the function

Num Asse Number of the axis on which the recovery occurs

Vq_Par_Idx Index of the first VQ that contains parameters.

Indx +0 1^ Vq ^ Interrupt index (from 1)


Indx +1 2 ^ Vq share index of the acquis. from irq [degrees]
Indx +2 3^ Vq index of pos setpoint. [degrees]
indx +3 4 ^q Vq Pitch [mm]
Indx +4 5 ^ Vq index SPEED. recovery [mm / s]
Indx +5 6^ Vq maximum correction index [mm]
Indx +6 7 ^ Vb index which disables the recovery
Indx +7 8 ^ Vb index of "axis cam"
Indx +8 9^ Vq index pos. recovery calculated [mm]
Vq index error [degrees]
Vq index return code InitOneRecPos
Indx +9 Vq index number of tick-blow.

RETURN VALUE

No return value.

M0000464 Page 173


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 106 AUTOMATIC RECOVERY QUOTA


Feature available on request.

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.

We define the following functions:

- Detecting the position of Master of Vq to interrupt


(FUN 71)

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

Vq <i> = FUN 106 <Num Asse> <Vq_Par_Idx>

i the VQ index that will contain 'the return value of the function

Num Asse Number of the axis on which the recovery occurs

Vq_Par_Idx Index of the first VQ that contains parameters.

Indx +0 1^ Vq ^ Interrupt index (from 1)


Indx +1 2 ^ Vq share index of the acquis. from irq [degrees]
Indx +2 3^ Vq index of pos setpoint. [degrees]
indx +3 4 ^q Vq Pitch [mm]
Indx +4 5 ^ Vq index SPEED. recovery [mm / s]
Indx +5 6^ Vq maximum correction index [mm]
Indx +6 7 ^ Vb index which disables the recovery
Indx +7 8 ^ Vb index of "axis cam"
Indx +8 9^ Vq index pos. recovery calculated [mm]
Vq index error [degrees]
Vq index return code InitOneRecPos
Indx +9 Vq index number of tick-blow.
Indx+10 11^ Vq index Vq reference range of measured quota

RETURN VALUE

No return value.

Page 174 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

NOTA The FUN106 differs from FUN104 for the additional parameter INDX +10.

FUN 107 AUTOMATIC RECOVERY QUOTA


Feature available on request.

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:

- Detecting the position of Master of Vq to interrupt


(FUN 71)

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

Vq <i> = FUN 107 <Num Asse> <Vq_Par_Idx> <Flg_Inv_Corr>

i the VQ index that will contain 'the return value of the function

Num Asse Number of the axis on which the recovery occurs

Flg_Inv_Corr Flag of reversing the direction of correction:


0 = normal correction
1 = inverted correction

Vq_Par_Idx Index of the first VQ that contains parameters.

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.

Indx +0 1^ Vq ^ Interrupt index (from 1)


Indx +1 2 ^ Vq share index of the acquis. from irq [degrees]
Indx +2 3^ Vq index of pos setpoint. [degrees]
indx +3 4 ^q Vq Pitch [mm]
Indx +4 5 ^ Vq index SPEED. recovery [mm / s]
Indx +5 6^ Vq maximum correction index [mm]
Indx +6 7 ^ Vb index which disables the recovery
Indx +7 8 ^ Vb index of "axis cam"
M0000464 Page 175
Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Indx +8 9^ Vq index pos. recovery calculated [mm]


Vq index error [degrees]
Vq index return code InitOneRecPos
Indx +9 Vq index number of tick-blow.
Indx+10 11^ Vq index Vq reference range of measured quota
Indx +11 12 ^ Vq Mode 'correction: (Ver.5.05)
0 = always corrects between -180 and +180 degrees
= -1 Corrects errors only positive (acceleration)
= -2 Corrects errors only negative (deceleration)
> = 0 always corrects -360 + Val and Val
Indx +12 13 ^ Vq speed 'correction: (Ver.5.06)
0 = always with the correct speed. recovery set
1 = correct proportion with the speed. snapshot
RETURN VALUE

No return value.

VALUES OF RETURN: THE DEBUGGER VQ (return code InitOneRecPos)

0 Operation completed successfully.


1. Axis number not lawful.
2. Recovery already 'active (new recovery run)
3. The axis is not 'in hot pursuit
4. Recovery [imp]> 0x7fffff
5. Speed 'recovery <= 0
6. Recovery = 0 (pos = 0) (to recover it already 'being canceled)
7. Absolute recovery in [imp] = 0.

Page 176 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 110 ENABLE TRACKING WITH PROFILE


TABELLARE SINE
Feature available on request.

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

Vq = FUN 110 <No. Master> <No. Slave> <Idx Vq Parametri>

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 function returns 0 if the initialization is successful.


To enable this tracking must, in addition to correctly program the function 110, you must also
enable the tracking (vb360 vb367 ..), 2 = mode of writing custom tracking in VN mode tracking
(vn324 vn331 ..).

The disabling of tracking can be achieved by putting 0 in the vb tracking described above.

M0000464 Page 177


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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

Page 178 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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)

In this case the function call will result `be:

Vq1 FUN = 110 1 -100

M0000464 Page 179


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 111 TRIGGER SWAP WITH TRACKING PROFILE


TABLES SINE
Feature available on request.

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

Vq = FUN 110 <No. Master> <No. Slave> <Idx Vq Parametri>

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.

Page 180 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN128 PALLET MANAGEMENT


This function is only available by request starting from Firmware version 5.18.

Function 128 allows managing a pallet.

SYNTAX

Vq<i> = FUN128 <OpCode> <PalletNum> <VqIndx> <VnIndx>

i Index of the VQ that will contain the return value of the function

OpCode code of the operation to execute:

code operation
131 management initialization
132 calculate current position coordinates (automatic sequence)
133 calculate coordinates specified position
134 reset automatic sequence

PalletNum Number of the pallet

NOTA The standard number of pallets that can be managed is 2.

VqIndx index of the first VQ for the coordinates

VnIndx> index of the first VN for the parameters

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

M0000464 Page 181


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Operation 131 PALLET MANAGEMENT INITIALIZATION

Initializes pallet management.


It is necessary to specify the coordinates of points A, B, C and D and the number Rows and
Columns on the pallet.

VqIndx index of the first VQ for the coordinates

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

VnIndx>index of the first VN for the parameters

VN index parameter
VnIndx number of ROWS [1-1000]
VnIndx+1 number of COLUMNS [1-1000]
VnIndx+2 Operating Mode

NOTA Operating Mode must be set to 1; it is to be used for future


enhancements

the operation's result code returned by the function in VQ<i>:

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

Page 182 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Operation 132 CALCULATE COORDINATES OF CURRENT POSITION

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.

VqIndx index of the first VQ for the coordinates (X,Y)

VnIndx not used set to 0

The operation's result code returned by the function in VQ<i>:

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)

Operation 133 CALCULATE COORDINATES OF SPECIFIED POSITION

Returns the coordinates of the specified position.

VqIndx index of the first VQ for the coordinates (X,Y)

VnIndx> index of the first VN for the parameters

VN index parameter
VnIndx number of ROWS of the requested position [1 - NR]
VnIndx+1 number of COLUMNS of the requested position [1 - NC]

The operation's result code returned by the function in VQ<i>:

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

M0000464 Page 183


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Operation 134 RESET AUTOMATIC SEQUENCE

Function 134 brings a pallet's current position back to the initial position; this operation is used
in conjunction with operation 132.

VqIndx not used set to 0

VnIndx not used set to 0

The operation's result code returned by the function in VQ<i>:

Value Meaning
10002 VN index parameters wrong
10003 pallet number wrong
10009 pallet not initialized
10021 reset executed

Page 184 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 130 ACTIVATION TRACKING WITH TABELLARE


SINE AND MANAGEMENT PACK HIGH PROFILE.
This function is only available by request

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

VQ = FUN 130 <Num. Master> <Num. Slave> <Idx VQ Parametri>

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).

M0000464 Page 185


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

The function returns 0 if the initialization is successful.


To enable this tracking must function properly in addition to program 130 also enable the
tracking (vb360 vb367 ..), 2 = write custom order tracking in the tracking mode of VN (vn324
vn331 ..).
The disabling of tracking can be achieved by putting 0 in the vb tracking described above.

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:

Vq100 = 360 / / Step


Vq101 = 0 / /
Vq102 = 350 / / Package
Vq103 = 90 / / Diameter
Vq104 = 30 / / Zone linear after cutting
Vq105 = 330 / / linear zone before cutting
Vq106 = 360 / / Step Master
Vq107 = 0 / / Step Master
Vq108 = 0 / / Step Slave
Vq109 = 1 / / Report Master / Slave linear phase
Vq110 = 100 / / Start banda for Swap
Vq111 = 200 / / End Banda for Swap
Vq112 = 50 / / Space path from the slave output from the cutting area.
Vq113 = 50 / / Space path from the slave input from the cutting area.
Vq114 = 30 / / Space path from the master output from the cutting area.
Vq115 = 30 / / Space path from the master input from the cutting area.
VQ1 = Fun 130 1 2 100

Page 186 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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

Andamento della velocita` dell slave utilizzando la funzione 130

M0000464 Page 187


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN131 INITIALIZES PALLET MANAGEMENT


This function is only available by request starting from Firmware version 5.18.

Function 131 initializes pallet management.


The standard number of pallets that can be managed is 2.

NOTA Pallet management functions are not available on all firmware


versions.

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

FUN131 <VnIdx> <VnResIdx>

VnIdx Index of the first VN that contains the parameters

VnResIdx Index of the VN that contains the outcome of the operation

Page 188 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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

NOTA Operating Mode must be set to 1; it is to be used for future


enhancements

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

M0000464 Page 189


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN132 CALCULATE THE COORDINATE OF A


PALLET'S CURRENT POSITION
This function is only available by request starting from Firmware version 5.18.

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

FUN132 <VnIdx> <VnResIdx>

VnIdx Index of the first VN that contains the parameters:

VN index parameter
VnIndx pallet number
VnIndx+1 index first VQ with coordinates of the current position (X,Y)

VnResIdx Index of the VN that contains the outcome of the operation

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)

Page 190 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN133 CALCULATE THE COORDINATE OF A


PALLET'S SPECIFIED POSITION
This function is only available by request starting from Firmware version 5.18.

Function 133 returns the coordinates of the specified position of the specified pallet.

SYNTAX

FUN133 <VnIdx> <VnResIdx>

VnIdx Index of the first VN that contains the parameters:

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]

VnResIdx Index of the VN that contains the outcome of the operation

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

M0000464 Page 191


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN134 RESET AUTOMATIC SEQUENCE OF


A PALLET
This function is only available by request starting from Firmware version 5.18.

Function 134 brings a pallet's current position back to the initial position; this function is used in
conjunction with Function 132.

SYNTAX

FUN134 <VnIdx> <VnResIdx>

VnIdx Index of the first VN that contains the parameters:

VN index parameter
VnIndx pallet number

VnResIdx Index of the VN that contains the outcome of the operation

Value Meaning
10002 VN index parameters wrong
10003 pallet number wrong
10009 pallet not initialized
10021 reset executed

Page 192 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN196 FUNCTION TO SET/RESET VB ON


ZERO ENCODER NOTCH
This function is only available by request.

Function 196 allows enabling the set or reset (depending on the mode) of a VB when the
specified encoder reaches the zero notch

SYNTAX

Vq<i> = FUN196 <Num Enc> <VB Index> <Mode > 0

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.

VB Index VB index that is set or reset (depending on the mode)

Mode Mode = 0 when the encoder's zero notch is reached


the specified VB is reset (VB = 0)
Mode = 1 when the encoder's zero notch is reached
the specified VB is set (VB = 1)
Mode = -1 if FUN196 was called everything is reset
(waiting for zero notch is reset in the event that
a wait for encoder zero notch is still pending)

Example

: VQ31 =5 // encoder 5 on which encoder zero notch is awaited


: VQ32 = 5 // VB5 that is set upon reaching zero notch
: VQ33 = 1 // set VB5

: VQ30 = FUN 196 VQ31 VQ32 VQ33 0 //

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.

M0000464 Page 193


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN 200 INITIALIZATION RESET ENCODER


THROUGH ZERO NOTCH
Function 200 activates the setting of the Zero Encoder value in the encoder of the axis specified
at each interrupt generated by the zero notch of the specified encoder.

NOTA this function can only be used for uncontrolled axes, i.e., for axes of
which only the encoder is read

SYNTAX

VQ<i> = FUN 200 <Num IRQ> < Num Axis > 0

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:

0 operation executed correctly

NOTA it is necessary to enable the generation of the interrupt through the


standard VBs:

VB352 IRQ1 zero notch of encoder 1


VB353 IRQ2 zero notch of encoder 2
VB354 IRQ3 zero notch of encoder 3
VB355 IRQ4 zero notch of encoder 4

At each interrupt, the relative interrupt count VN is incremented:

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;

: VQ1 = FUN 200 2 1 0

Page 194 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 216 CALCULATION COORDINATES FOR


LEANING MOVEMENT 3 AXES
Function 216 calculates the target level for an interpolated movement of the 3 axes X, Y and Z
with verification of the sofware End of Travel for the axes.
The target level are calculated by applying the move <CorsaMm> along the coordinate <Coord>
with the direction <Dir> starting from the current level of the axes (if the parameter Mode is 0)
or from the levels contained in the VQ specified by the parameter <VqIndx> (if the parameter
Mode is 0.001 or 0.002).
The calculated target levels will be returned in VQ specified by parameter <VqIndx> so any
initial level are overwritten.

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

Vq<i> = FUN 216 <Dir> <Coord> <CorsaMm> <VqIndx>

i Index of the VQ that will contain the return value of the function

Dir Direction of movement

Dir Direction of movement


-1 BACK
1 FORWARD

Coord Coordinate of movement

Coord Coordinate of movement


1 X
2 Y
3 Z

NOTE The coordinate movement is considered in the reference system of


the tool coordinates see the documentation of the function WPlc
FUN116.

The decimal part of the parameter Coord is the parameter Mode with the following meanings:

Mode Acquisition axes level


0.000 Captures the current axis level
0.001 Absolute axes level contained in VQ
0.002 Axes level with current origin contained in the VQ

M0000464 Page 195


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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

// The angles of rotation Alpha and Beta are acquired depending


// on the mode specified in the initialization of the FUN116
// PLC
// Dir = 1 = FORWARD, Coord = 1 = X, Race = 500 mm
// coord calculated on VQ31 (axe 1), VQ32 (axe 2) and VQ33 (axe 3)
// compared with the current position of the axes (parameter Mode = 0)
: VQ10 = FUN 216 1 1 500 31

: IF VQ10 > 1 GOTO FINE

: G1 X VQ31 Y VQ32 // interpolated movement to levels calculated

: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

// Calculates the drop in Z of 60 mm respect to the levels calculated


// from the previous call of FUN 216
// coord calculated on VQ41 (axe 1), VQ42 (axe 2) and VQ43 (axe 3)
: VQ11 = FUN 216 -1 3.002 60 41

Page 196 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 251 MODIFY FIRMWARE PARAMETERS


Function 251 allows setting the value of several internal firmware values that modify the
behavior of several functions.

SYNTAX

VQ<i> = FUN 251 <ParIndx> < ValQ > 0 0

i Index of the VQ that will contain the return value of the function

ParIndx index of the firmware parameter to modify

ValQ value to set in the parameter (constant or VQ)

RETURN VALUE:

0 operation executed correctly


1 error (parameter not managed or wrong value)

The same function is also accessible from ISO language programs with the following syntax:

M801 P<ParIndx>=<ValQ>

INDICES OF THE FIRMWARE PARAMETERS MANAGED

Index Description Value Ver:


10 sets the code of the linear function 2/3 5.12
20 selects the axis of reference for the speed value 0/NumAxes 5.12
25 enables the verification of the additional axes 0/1 5.12

The default value is highlighted in bold.

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.

M0000464 Page 197


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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).

Page 198 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN 255 RUN FUNCTION WPLC FROM NC


PROGRAM
Function 255 allows you to run functions WPlc (plc type windows) from a program NC.

SYNTAX

Vq<i> = FUN 255 <FunIndx> < Par1 > < Par2 > 0

i Index of the VQ that will contain the return value of the function

FunIndx Index of the Wplc function to run

Par1 first parameter of the Wplc function (constant or VQ)

Par2 second parameter of the Wplc function (constant or VQ)

NOTE: its used the integer value of the parameters Par1 and Par2

RETURN VALUE:

0 operation executed correctly


1 Wplc function not present

EXAMPLE:

Vq3 = FUN 255 128 31 30 0

Run the Wplc function FUN128 with parameters 31 and 30.

M0000464 Page 199


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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.

Let's look at the appearance of a loop in the two cases:

1) DO-UNTIL LOOP (Enters the loop at least once)

:Loop VQ5 = POS AX 1 //Assigns the axis 1 position to VQ5


: ..
: .. //Body of the loop
: ..
: IF VQ5 < 300 GOTO Loop //As long as axis 1 doesn't exceed position
300,
//it returns to the step indicated by the Loop label

: .. //Continuation of the program

2) WHILE-DO LOOP (Verify the condition before entering)

:Start IF IN 2 GOTO Loop //So long as input 2 is not high, it repeats


//otherwise, it jumps to the step indicated
// by the loop label
: ..
: .. //Body of the loop
: ..
: GOTO Start //Returns to the step indicated by Start
//to repeat the loop

:Loop .. //Continuation of the program

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.

Page 200 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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

positions axis 1 to position 100.000 mm, while:

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

produce the same effect as the instruction:

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.

M0000464 Page 201


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Examples of operations on variables with instructions


Below, we provide several examples of the use of instructions for the management of variables.

VQ72 = 45.520 Assigns the value 45.52 to VQ number 72.


VQ80 = VQ72 Assigns the value contained in VQ number 72 to
VQ number 80.
VQ72 = 45.520 + 12.200 Performs the sum 45.520 + 12.200 and assigns the
result to VQ number 72.

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

These rules are also valid for instructions operating on VNs:


SET VN32 = 45 Assigns the value 45 to VN32.

Similarly, for addition and subtraction operations, you could have:


VN32 = 45 + 22
VN32 = VN25 + 2
VN32 = VN25 + VN40
VN32 = 45 - 22
VN32 = VN25 - 18
VN32 = VN25 - VN40
And to increase or decrease the value of a variable, it is possible to write:
VN32 = VN32 + 1
VN32 = VN32 - 1

N.B: It is not possible to assign values with decimal places to VNs.


It is not possible to perform addition and subtraction of mixed variables (i.e., VQs
and VNs in the same instruction).

Conditional instructions with variables


Instructions are available that perform a jump to the step or program specified conditioned by the
value contained in a variable:

IF VN32 < 5 GOTO 12 If the value contained in VN 32 is less than 5, jump to


step 12.

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.

Page 202 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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.

Variables for managing tracking


VB360 Enables axis 1 for tracking
VB361 Enables axis 2 for tracking
VB362 Enables axis 3 for tracking
VB363 Enables axis 4 for tracking

VN276 Mode 0 : axis 1 tracking factor 1000


Mode 1 and 4 : axis 1 numerator tracking factor
Mode 2 and 3 : not used
VN277 Mode 0 : axis 2 tracking factor 1000
Mode 1 and 4 : axis 2 numerator tracking factor
Mode 2 and 3 : not used
VN278 Mode 0 : axis 3 tracking factor 1000
Mode 1 and 4 : axis 3 numerator tracking factor
Mode 2 and 3 : not used
VN279 Mode 0 : axis 4 tracking factor 1000
Mode 1 and 4 : axis 4 numerator tracking factor
Mode 2 and 3 : not used

VN284 axis 1 tracking encoder number


VN285 axis 2 tracking encoder number
VN286 axis 3 tracking encoder number
VN287 axis 4 tracking encoder number

VN316 Mode 0, 2 and 3 : not used


Mode 1 and 4 : axis 1 denominator tracking factor
VN317 Mode 0, 2 and 3 : not used
Mode 1 and 4 : axis 2 denominator tracking factor
VN318 Mode 0, 2 and 3 : not used
Mode 1 and 4 : axis 3 denominator tracking factor
VN319 Mode 0, 2 and 3 : not used
Mode 1 and 4 : axis 4 denominator tracking factor

VN324 Axis 1: tracking mode [from 0 to 4]


VN325 Axis 2: tracking mode [from 0 to 4]
VN326 Axis 3: tracking mode [from 0 to 4]
VN327 Axis 4: tracking mode [from 0 to 4]

M0000464 Page 203


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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:

VB91 - Flag of axis 1 movement reversal (1 = movement reversed)


VB92 - Flag of axis 2 movement reversal (1 = movement reversed)
.................................
VQ191 - forward reversal position axis 1 [mm]
VQ192 - backward reversal position axis 1 [mm]
VQ193 - forward reversal position axis 2 [mm]
VQ194 - backward reversal position axis 2 [mm]
...............................

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

Page 204 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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.

Tracking modes 12 and 13


The tracking modes 12 and 13 are similar to the tracking modes 14 and 15 of the winding
machine. The inversion follows the following rules:
- If the Slave it is outside from the thresholds then the axes is forced to return inside the
thresholds, whether the master turns clockwise or counterclockwise sense.
- If the Slave it is inside of the thresholds and, because of the motion of the master, its new
quote is calculated outside from the thresholds, then it is inverted the direction and
ricalculates the new quote taking into account than the inversion takes place precisely to
the threshold.
It is confronted besides that the new threshold is not different from the precedent more of the
delta position of the Slave.

Tracking modes 14 and 15


The tracking modes 14 and 15 are similar to the modes 4 and 5, but do not do the control of the
threshold emergency.
The management of the inversion was completely remaked.
NOTE: If the tracking is enabled and the Slave axes has an outside position to the flange, the
motion is always towards the nearly flange, independently from the direction of the master.

Tracking mode 101


(available from version 5.31 of 3 March 2006)

Mode 101 is selected by setting VN324 to VN331 to 101.

M0000464 Page 205


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

The tracking factor is set in numerator/denominator form (32-bit values)

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.

Desired slave impulses


Slave impulses = Master impulses
Master impulses of reference

Tracking modes 104, 105, 112, 113, 114 and 115


The tracking modes 104, 105, 112, 113, 114 and 115 are similar to the modes 4, 5, 12, 13, 14 and
15 but are using VQ instead VN for nominator and denominator.

Tracking modes 107 and 109


The tracking modes 107 and 109 are similar to the modes 7 and 9 but are using VQ instead VN
for nominator and denominator.

Page 206 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Resetting for Twin Axes


When you use twin axes, you must provide for resetting of axes following very precise
procedures. Below, we list the sets and settings to make for resetting in modes:

A) Resetting without recovery of the position


B) Resetting with recovery of the position

A) Settings:

Parameter Master Slave


Resetting direction 0-1 3
Type of tracking ------- 3
Encoder zero Equal Equal
Reference mm Equal Equal
Reference Imp Equal Equal

Steps:
Perform the resetting of the master axis: the slave axis is automatically zeroed

B) Settings:

Parameter Master Slave


Resetting direction Equal Equal
Home position Equal Equal
Reference mm Equal Equal
Reference Imp Equal Equal

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.

M0000464 Page 207


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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:

A) Numeric Variables VN390 and VN391


B) A user program

A) Variables VN390 and VN391 have the following meaning:

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

Page 208 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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:

Third VN Value Destination variable


1 Position Variable (VQ)
2 Numeric Variable (VN)
3 Binary Variable (VB)
20 Alphanumeric Variable (VA)

In the case in which the destination variable is a:


VA the part of the string read is copied unaltered
VN or VQ the part of the string is converted and copied (in the case of a VQ, the value
copied is in the standard 3 decimal format)
VB it assumes the value 0 if the characteri indicated as the first character is 0 ( 0
ASCII), !0 in all other cases.

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

Second step with VNs with the following values:

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:

M0000464 Page 209


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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.

Page 210 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Dedicated password management


On all the instruments from firmware version 4.18 on, it is possible to define a personalized
password to access all the menus/functions of the control, which it is necessary to type for
accessing it.
In addition, this function is only available in firmware in which user program management is
enabled and must be activated by the following VB:

VB 424 for firmware up to 8 axes.


VB 468 for firmware up to 12 axes.
VB 534 for firmware up to 18 axes.

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,

at this point, the following notice will appear on the screen:

M0000464 Page 211


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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.

Page 212 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

NC Operating in Single State


Firmware versions compiled in mode MULTITASKING = 4 (compilation mode available from
firmware version 4.33 on) can work with the NC in Single State; in this state, the NC can
execute all the principal operations that normally require a passage to several states.
The enbling of SINGLE STATE occurs by setting VB433 to 1
The condition of the NC in SINGLE STATE is signaled by VB283 and by bit 1 of VN401.
SINGLE STATE has a series of dedicated variables (VBs and VNs), listed below, for the
enabling of operations that are different from those normally used; for example, to command the
execution of an NC program, you normally set the NC in AUTOMATIC (after having zeroed the
axes), you select the program to execute from the keyboard or by means of VN257 and VB265
and you order START by means of VB256; in SINGLE STATE an NC program can be executed
(activated) even if the axes have NOT been zeroed; it is, therefore, the programmer's
responsibility to inhibit the activation of those programs that require the resetting of the axes
before this operation has been executed; the number of the program to be executed must be
written in VN402 and VB428 executes the START; the NC provides for resetting VB428 after
executing the START.
In SINGLE STATE no standard displays are performed; only the user pages are displayed, even
as regards the state of EMERGENCY; it is thus the programmers's responsibility to insert all the
pages and information necessary to understanding the state and situation of the NC.

VBs and VNs for managing the SINGLE STATE


The following table shows the VBs and VNs that are used in managing the SINGLE STATE.

VARIABILE NAME Index Auto Meaning


reset
VB_RESET_EMERG VB425# * Emergency Reset
VB_INIT_ERR_MAIN VB426 * Initialization (with Main error)
VB_OM_EXIT VB427 * exits from Single State (if VB433 = 0)
VB_OM_START_AUTO VB428 * START Automatic cycle
VB_OM_START_TEST VB429 goes to TEST state
VB_OM_START_TSTVEL VB430 enables axis Speed Test
VB_OM_START_SEMI VB431 * START semi-automatic
VB_OM_START_ZERO VB432 * START zero axes
VB_OMNI_MODE VB433 enables Single State
VB_OM_DIS_MAN VB434 disables jog (if no job active)
VB_OM_DIS_PAGE_STATE VB435 disables change page on NC change
state
VB_OM_INIT_QUOTE VB436 * initializes objective position
VN_STD_STATE_NUM VN400 current state of NC program
VN_OMNI_OPER VN401 operations in progress in Single State
VN_OM_PRG_NUM VN402 program number to execute
VN_OM_TSTVEL_AX_NUM VN403 num. axes to execute speed test
#
Variable that has an effect even in normal functioning of the NC (functioning in standard
states).
If there is an asterisk (*) in the auto reset box, it means that the variable is automatically reset
after its use by the firmware.
All the VBs and VNs in the table are explained in the chapter VARIABLES

M0000464 Page 213


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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)

Manual Movement (JOG)


The same JOG+ and JOG- variables are used as in the Multiple Manual state; when the JOG+
VB is active, the corresponding axis is moved in a positive direction until the VB returns to 0 or
until the software travel limit is reached; the same is true for movement in a negative direction
(JOG-).
If more than one JOG variable are simultaneously active relative to different axes, all the
corresponding axes will be moved (Multiple Manual Movement).

Below, we list the variables dedicated to manual movement.

Axis JOG+ JOG-


1 VB296 VB336
2 VB297 VB337
3 VB298 VB338
4 VB299 VB339
5 VB300 VB340
6 VB301 VB341
7 VB302 VB342
8 VB303 VB343

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.

Page 214 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

NC Master Protocol
Note: NC Master protocol is available only on some firmware versions.

It is possible to enable a communications port of the NC so that it operates in "Master" mode;


usually the NC's communication ports operate in "Slave" mode, i.e., they receive commands
from a master and provide responses; in "Master" mode, it is the NC that ends commands to read
and write variables and receives responses fromthe NC's "slave."
The "NC Master" protocol is managed with 3 VNs, always in the following order:

In the initialization phase, it is necessary to specify the communications port that you wish to use
in VN_CN_MASTER_STATO (VN394):

VALUE SERIAL PORT USED


1 COM1
2 COM2
3 COM3 (IF ENABLED)

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.

VN_DATA_CN_MASTER_NUM (VN393) specifies the data program number that manages


the sending of commands by the NC Master.
The steps must contain the following information, in the order:

Variable Type Name Meaning


VN CnId NC Slave identifier (0 = do not consider)
VN Rw Operation Value
Write 0
(from Master to Slave)
Read 1
VN TypeVar
Type of variable to Valore
Read/Write
Binary (vb) 1
Numerical (vn) 2
Quote (vq) 3
VN VarIndx Index of the first variable
VN NumVar Number of variables to Read/Write { 1 - 8 }
VN Reserved set to 0

M0000464 Page 215


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

In the case of error, the following codes are returned:

Command error codes set in VN393 (VN_DATA_CN_MASTER_NUM)


Below, we provide a table of the values that VN393 can assume during the use of the NC Master
Protocol.

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)

Status codes set in VN394 (VN_CN_MASTER_STATO)


Below, we provide a table of the values that VN393 can assume during the use of the NC Master
Protocol.

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

Returning the value of VN_DATA_CN_MASTER_NUM to 0, management is disabled and the


serial port is released (standard protocol is restored); this situation is signaled by the value
0x4000 (16384) in VN_CN_MASTER_STATO (VN394).

VN_CN_MASTER_NUM_SENT (VN395) contains the number of packets successfully


transmitted (send request + return response). In the case of communication problems, the timeout
is reported in VN_CN_MASTER_STATO (VN394), then transmission resumes and, if
necessary, the timeout code is written again.
It is, thus, possible, upon detecting the timeout condition, to increase a counter and zero
VN_CN_MASTER_STATO to verify the number of failed transmissions.

Page 216 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

NOTE From firmware version 5.50 is possible to execute the change


of user program run time, without disable the protocol, simply
changing first the number of the serial port to use in the
VN_CN_MASTER_STATO (VN394) and after that, the number of
the program in the VN_DATA_CN_MASTER_NUM (VN393). The
result of the operation is written, also in this case, in the
VN_CN_MASTER_STATO. The firmware deals to terminate all
the commands related to the initial program before exchanging
data required by the new program.

NC-MASTER PROTOCOL with MULTI-CN


The NC-MASTER protocol allows to the main NC, defined Master , to exchange variable with
one or more NC, defined Slave.
For the firmware versions before 5.69 in the case of connection with multiple Nc slave (multi-
nc) it is necessary to use the COM1 of Nc Slave as it is the only port planned for the multi-point
communication.
The other communication ports ignore the command selection of the nc active; this allows
single-point connection, for example debugging purposes or maintenance, even while is active
multi-cn connection on port com1.
A Slave Nc, connected via a port other than com1, always respond to commands of the master
regardless of Nc active at that time thus creating conflict in the case of multi-cn.

ENTER INDIVIDUAL COMMANDS


The functionality of individual commands is activated from firmware version 5.64 of
24.01.2008.

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.

The individual commands are activated with FUN120 of WPLC.

Syntax FUN120:

FUN120 <CmdVnIdx> <StatusVnIdx>

CmdVnIdx index of first VN that contains the parameters of command:

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

M0000464 Page 217


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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.

Page 218 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

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

CANCELLATION OF PROGRAM ( Fw ver. 5.64 24.01.2008 )


CmdCode = 419
CmdPar1 = n. program to delete

PROTOCOL NC MASTER - ONLY INDIVIDUAL COMMANDS

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.

This mode is activated by writing in VN_DATA_CN_MASTER_NUM (VN393) the value


10000 and setting in VN_CN_MASTER_STATO (VN394) communication port you want to
use:

{ 1 = COM1, 2 = COM2, 3 = COM3 (if available), etc. }

There is no need for user program.

M0000464 Page 219


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Modbus Management Protocol


The Modbus protocol managed is an RTU type and, for the firmware that provides for it, is
enabled with VN398 in the following manner:

VN398 = (10000 * D) + (1000 * C) + (100 * B) + A

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:

VN398 = (10000 * 1) + (1000 * 0) + (100 * 0) + 2 = 10002

A MASTER with the same characteristics will be:

VN398 = (10000 * 1) + (1000 * 0) + (100 * 1) + 2 = 10102

Continuing with the last example, if you want to use the old protocol, the value to set in VN398
will be:

VN398 = (10000 *0) + (1000 * 0) + (100 * 1) + 2 = 102

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:

Maximum number of VB's managed by the NC + 10

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.

Page 220 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

The parameters of the serial line are set with VN 399 based on the following table:

VN399 (VN_MODBUS_COM_MODE) Baud rate Communications mode


1 9600 N,8,1
2 19200 N,8,1
3 38400 N,8,1
4 9600 E,8,1
5 19200 E,8,1
6 38400 E,8,1
7 9600 O,8,1
8 19200 O,8,1
9 38400 O,8,1
Others values 9600 N,8,1

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.

Modbus Protocol Functions Implemented

Function Code Function Description Firmware version Firmware version


MASTER SLAVE
01 Read Coils 5.15 4.31
02 Read Discrete Inputs 5.15 4.31
03 Read Holding Registers 5.15 4.31
04 Read Input Register 5.67 5.67
05 Write Single Coil 5.15 4.31
06 Write Single Register 5.15 4.31
16 Write Multiple Register 5.15 4.31

M0000464 Page 221


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

Interface PLC LADDER MASTER


The following PLC functions have been implemented for the use of the Modbus protocol:

PLC LADDER Function Description Firmware


Function Number version
MASTER
110 Protocol MASTER initialization 5.15
111 Start Packet 5.15
112 Set Parameters 5.15
113 Closing packet and sending data 5.15
114 Reading protocol state 5.15

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:

FUN 110 Master Protocol Initialization


Must be executed with the PLC starts-up and whenever an error occurs.

FUN 114 Read Protocol Status


The protocol status must always be read before beginning a packet to be certain that transmission
only occurs when the protocol is ready.

3 FUN 111 Begin Packet


4 FUN 112 Set Parameters
5 FUN 113 Close Packet and Send Data

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).

Page 222 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN110 Intialization ( MdbMasterInitProt )

FUN110 <PAR1>

PAR1= VN Index Error

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

Warning: The VN specified will be reset to zero

The error codes provided are:

Error Code Description


1 Order execution wrong
2 Number node wrong
3 Function unavailable
4 Error Limit managed Bytes
5 TimeOut
6 ChkSum wrong

FUN111: Start Packet ( MdbMasterStartPack )

FUN111 <PAR1> <PAR2>

PAR1 = Function Number


1: Read Coils
2: Read Inputs
3: Read Holding Registers
5: Write Single Coil
6: Write Single Register
16: Write Multiple Registers

PAR2 = ID Node Slave

Ex: FUN111 2 1 ; Reading Dig. In from node 1

o: VN30 = 2
VN31 = 1
FUN111 VN30 VN31

M0000464 Page 223


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

FUN112: Set Parameters ( MdbMasterInsPar )

FUN112 <PAR1> <PAR2>

PAR1 = Variable Address SLAVE

PAR2 = Quantity or Value

Es: FUN112 5 2 ; Variabie Address SLAVE = 5, Variables = 2


o: VN20 = 5
VN21 = 2
FUN112 VN20 VN21

FUN113: Closing packet and sending data ( MdbMasterEndPack )

FUN113 <PAR1> <PAR2>

PAR1 = Variable Address MASTER

PAR2 = Type of variable:


0= No response (Writing Case)
1= VB
2= VN
3= VQ

Ex: FUN113 70 2

o: VN 30 = 70
VN31 = 2
FUN113 VN30 VN31

The response is written starting from the specified variable

Page 224 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

FUN114: Request protocol status

FUN114 <PAR1> <PAR2>

PAR1 = VN state index

PAR2 = VB Protocol index Ready=1/Busy=0

State Name Description Ready=1


Busy=0
0 PROT_M_DISABLE Protocol Disabled 0
1 PROT_M_ENABLED Enabled Protocol and ready 1
2 PROT_M_READY Protocol Initialized 1
3 PROT_M_BUILDING_P Construction packet 0
ACK
4 PROT_M_SENDING_P Sending packet 0
ACK
5 PROT_M_WAIT_ANS Waiting response from Node 0
WER
6 PROT_M_TIMEOUT Receiving end: Timeout 1
7 PROT_M_RX_OK Receiving completed and 1
correct
8 PROT_M_CHKSUM_E Receiving end: ChkSum wrong 1
RROR
9 PROT_M_NODE_ERRO Receiving end: Error from Node 1
R

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.

M0000464 Page 225


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

EXAMPLES

PLC type LADDER

VB Number = 1024
VN Number = 1454
VQ Number = 304
DO Number = 16
DI Number = 16

The VB from 1 to 1024 match coils from 1 to 1024


The outputs from 1 to 16 match to coils from 1042 to 1057
The VN 1 from the 1454 match to registers from 1 to 1454
The VQ from 1 to 304 match to register couples from 1456 a 2062
The inputs from 1 to 16 match to Input Bits from 1 to 16

WARNING: these examples assume the use of the old protocol.

Read the VB100 from node 1 and write in the VB300 MASTER

FUN110 10 0 : VN10 = Error

FUN111 1 1 : Function Number Node Number

FUN112 100 1 : Variable Slave Index Quantity

FUN113 300 1 : Variable Master Index Variable Type

MASTER NODE 1

VB300 VB301 VB302 VB303 VB304 VB100 VB101 VB102 VB103 VB104

Page 226 M0000464


Manuale di programmazione Capitolo 8: Origini7: Parametri utensili

Read VB single

Read coil from NODE 1


Read vb100 from NODE 1
Write value on vb300 of the MASTER
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

Read output 1 from the node 1 and write in the VB310 of the MASTER

FUN110 10 0 : VN10 = Error

FUN111 1 1 : Function Number Node Number

FUN112 1042 1 : Variable Slave Index Quantity

FUN113 310 1 : Variable Master Index Variable Type

MASTER NODE 1

VB310 VB311 VB312 VB313 VB314 DI1 DI2 DI3 DI4 DI5

Read digital output 1 and write on VB310 of the MASTER

Read coil from NODE 1


Read digital output 1 from NODE 1
Write on vb300 of the MASTER
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

M0000464 Page 227


Capitolo 8: Origini7: Parametri utensili Manuale di programmazione

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

FUN110 10 0 : VN10 = Error

FUN111 1 1 : Function Number Node Number

FUN112 1 10 : Variable Slave Index Quantity

FUN113 60 1 : Variable Master Index Variable Type

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 coil from NODE 1


Read of the first 10 VB
Write starting from VB60 (MASTER)
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

Page 228 M0000464


Programming manual Chapter 2: General programming notes

Read the inputs 5 and 6 from the node 1 and write them in the VB 75 and 76 of the
MASTER

FUN110 10 0 : VN10 = Error

FUN111 2 1 : Function Number Node Number

FUN112 5 2 : Variable Slave Index Quantity

FUN113 75 1 : Variable Master Index Variable Type

MASTER NODE 1

........... VB75 VB76 VB77 DI5 DI6 DI7

Copy 2 digital inputs, starting from the input 5, on MASTER, starting from VB75
(to 76)

Read digital input from NODE 1


Read 2 digital inputs
Write starting from VB75 of the MASTER
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

M0000464 Page 229


Chapter 2: General programming notes Programming manual

Force to 1 the VB 20 on the NODE 1

FUN110 10 0 : VN10 = Error

FUN111 5 1 : Function Number Node Number

FUN112 20 1 : Variable Slave Index Value

FUN113 0 0 : Irrelevant Irrelevant

MASTER NODE 1

........... ........... ........... ........... VB20 VB21 VB22

1
Set only VB20 to ON and no writing on MASTER

Write Coil on NODE 1


Set VB20 to ON
No response
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

To reset the VB20 should execute FUN112 with the second parameter to 0.

Page 230 M0000464


Programming manual Chapter 2: General programming notes

Set VB 21 of the node 1 depending on the value of the VN90 of the MASTER

FUN110 10 0 : VN10 = Error

FUN111 5 1 : Function Number Node Number

FUN112 21 VN90 : Variable Slave Index Var.Master (value)

FUN113 0 0 : Irrelevant Irrelevant

MASTER NODE 1

........... VN89 VN90 VN91 VB21 VB22 VB23


0/-1

Set VB21 of the SLAVEON depending on the value of VN90 of the MASTER

Write Coil on NODE 1


Write VB21 of the SLAVE
No response
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

IMPORTANT: VN needs to be set to 1 (65535) if you want to set the VB.

M0000464 Page 231


Chapter 2: General programming notes Programming manual

Read the VN2 and VN3 from the SLAVE and write them on the VN70 and VN71 of the
MASTER

FUN110 10 0 : VN10 = Error

FUN111 3 1 : Function Number Node Number

FUN112 2 2 : Variable Slave Index Quantity

FUN113 70 2 : Variable Master Index Variable Type

MASTER NODE 1

........... VN70 VN71 VN72 VN2 VN3 VN4

Copy 2 VN of the SLAVE, starting from VN2, and write them on the VN70 and 71 of the
MASTER

Read VN/VQ from NODE 1


Read 2 VN starting from VN2
Write on VN70, Type VN
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

Page 232 M0000464


Programming manual Chapter 2: General programming notes

Write on the VN 200, 201, 202 of the SLAVE the value of the VN 100, 101, 102 of the
MASTER

FUN110 10 0 : VN10 = Error

FUN111 16 1 : Function Number Node Number

FUN112 200 3 : Variable Slave Index Quantity

FUN113 100 2 : Variable Master Index Variable Type

MASTER NODE 1

........... VN100 VN101 VN102 VN200 VN201 VN202

of the
CopySLAVE
3 VN of the
the value of starting
MASTER, the VN 100
fromof the MASTER
VN100, on SLAVE, starting from VN200

FUN110 10 0 : VN10 = Error


Multiple writing regist. on NODE 1
Writing of 3 VN starting from VN200
FUN111 6 1 : Function Number Node Number
Reading VN from MASTER (from VN100)
Jump to the next operation
FUN112 199 VN100: Variable Slave Index
Read protocolValue
state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0
FUN113 0 2 : Irrelevant Variable Type

MASTER NODE 1

........... VN100 VN101 VN102 VN199 VN200 VN201

M0000464 Page 233


Chapter 2: General programming notes Programming manual

Write in VN199 of the SLAVE the value of VN100 of the MASTER

Writing single regist. on NODE 1


Writing of VN199 on SLAVE
Reading VN from MASTER
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

Page 234 M0000464


Programming manual Chapter 2: General programming notes

Read the VQ3 and 4 of the SLAVE and write them on the VQ30 and 31 of the MASTER

FUN110 10 0 : VN10 = Error

FUN111 3 1 : Function Number Node Number

FUN112 1460 2 : Variable Slave Index Number of VQ

FUN113 30 3 : Variable Master Index Variable Type

MASTER NODE 1

........... VQ30 VQ31 VQ32 VQ3 VQ4 VQ5

Read VQ3 and 4 of the SLAVE and write them in VQ30 and 31of the MASTER

Reading VN/VQ from NODE 1


Reading VN/VQ (VQ3) for 2 variables
Writing on VN70, type VQ
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

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
.. ..

M0000464 Page 235


Chapter 2: General programming notes Programming manual

Write on VQ10 and 11 of the SLAVE the value of VQ150 and 151 of the MASTER

FUN110 10 0 : VN10 = Error

FUN111 16 1 : Function Number Node Number

FUN112 1474 2 : Variable Slave Index Number of VQ

FUN113 150 3 : Variable Master Index Variable Type

MASTER NODE 1

........... VQ150 VQ151 VQ152 VQ10 VQ11 VQ12

Write on VQ10 a 11 of SLAVE the values of VQ150 and 151 of MASTER

Multiple writing regist. On NODE 1


Writing starting from VQ10 - SLAVE
Read from VQ150 of MASTER
Jump to the next operation
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

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

Page 236 M0000464


Programming manual Chapter 2: General programming notes

1474 10
.. ..

M0000464 Page 237


Chapter 2: General programming notes Programming manual

Set to ON output 16 of the SLAVE

FUN110 10 0 : VN10 = Error

FUN111 5 1 : Function Number Node Number

FUN112 1057 1 : Variable Slave Index Value (0=OFF,1=ON)

FUN113 0 0 : Irrelevant Irrelevant

Force to ON the digital output 16 of the SLAVE

Writing coil on NODE 1


Set digital output 16 to ON
No response
End operations
Read protocol state
Vn8 => state of the operations
Vb5 => Ready = 1 / Busy = 0

In the SIPRO MODBUS SLAVE protocol the digital output starting from the address
1042:

Address DIG OUT


1042 1
1043 2
1044 3
1045 4
1046 5
1047 6
1048 7
1049 8
1050 9
1051 10
1052 11
1053 12
1054 13
1055 14
1056 15
1057 16

Page 238 M0000464


Programming manual Chapter 2: General programming notes

PLC LADDER SLAVE interface old protocol


If in the VN398 is not enabled the new protocol (10000), the relation between the variables
managed by the protocol and the variables managed by the control is as follows:

Modbus Variables Number Variables managed Siax Variables


Coils VB = 1024 The first 1024 are linked to our VBs,
(bit variables) Digital Outputs = (Parameter the next ones are linked to the digital
Number Groups Digital Outputs outputs. The maximum number of
digital outputs that can be managed is
linked to the machine parameter
number groups digital outputs and is
equal to the value of the parameter
multiplied by 16
Input Bits Digital Inputs = (Parameter These are the control's digital inputs.
(bit variables) Number Groups Digital Inputs) The maximum number of digital inputs
*16 that can be managed is linked to the
machine parameter number groups
inputs and is equal to the value of the
parameter multipled by 16
Holding Register ISO PLC These variables require a different
(word variables) VN = 464 discussion depending on whether the
VQ = 256 ISO PLC or LADDER program is
active on the numerical control.
PLC LADDER ISO PLC: the first 464 are linked to the
VN = 1454 VNs, while the next 512 are linked to
VQ = 304 the VQs (there are 256 VQs available
and the value 512 is due to the fact that
for every VQ, there is a need to
read/write 2 Holding registers since
they are 32-bit VQ variables (LONG,
DWORD). We also need to take into
account the distance between two VQs
and two Holding registers).
PLC LADDER: The first 1454 are
linked to the VNs, the next 608 are
linked to the VQs (in this case the
discussion made previously on the
relationship between VQs and Holding
Registers is also valid).

M0000464 Page 239


Chapter 2: General programming notes Programming manual

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.

Page 240 M0000464


Programming manual Chapter 2: General programming notes

PLC LADDER SLAVE interface new protocol


If in the VN398 is enabled the new protocol (10000), you can define a custom mapping of all the
variables handled by the new function 115 of the PLC:

FUN115 Variables Mapping ( WplcMdbConfMap )

FUN115 <PAR1> <PAR2>

PAR1= Index first VN that defines the mapping


PAR2= Error index

Ex: FUN115 10 9

VN10 = First VN variables mapping


VN9 = Error code

The error codes are:

Error Code Description


0 Command executed correctly
1 Mapping already executed

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

M0000464 Page 241


Chapter 2: General programming notes Programming manual

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

Page 242 M0000464


Programming manual Chapter 2: General programming notes

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

VQ64 REG 398, 399 = VQ64


VQ65
REG 400

M0000464 Page 243


Chapter 2: General programming notes Programming manual

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

Error code response

Code Errors Handled Code returned


Function
01 1. Initial address not correct
and Initial address + Node 81 02 CHKS CHKS
number coils in read > Number HIGH LOW
maximum possible value.
Node 81 03 CHKS CHKS
(code 02).
Number HIGH LOW
2. Quantity of Coils in read
> 2000. (code 03).
02 1. Initial address not correct Node 82 02 CHKS CHKS
and Initial address + Number HIGH LOW
number Inputs in read >
maximum possible value.
(code 02).
2. Quantity of Inputs in read Node 82 03 CHKS CHKS
> 2000. (code 03). Number HIGH LOW

03 1. Initial address not correct Node 83 02 CHKS CHKS


and Initial address + Number HIGH LOW
number Holding Registers
in read > maximum
possible value. (code 02).
2. Quantity of Holding
Registers in read > 125.

Page 244 M0000464


Programming manual Chapter 2: General programming notes

(code 03). Node 83 03 CHKS CHKS


Number HIGH LOW
05 1. Coil address not correct Node 85 02 CHKS CHKS
(code 02). Number HIGH LOW
2. New Coil value other than Node 85 03 CHKS CHKS
0x0000 or 0xFF00 (code Number HIGH LOW
03).
06 1. Coil address not correct Node 86 02 CHKS CHKS
(code 02). Number HIGH LOW

16 2. Initial address not correct Node 90 02 CHKS CHKS


and Initial address + Number HIGH LOW
number Holding Registers
in write > maximum
possible. (code 02).
3. Quantity of Holding Node 90 03 CHKS CHKS
Registers in write > 125 Number HIGH LOW
and Byte Count value
other than number bytes *
2. (code 03).

For all other function codes, error code 01 is returned as in the Modbus specifications.

Return message format:


Node Number Function Code + 01 CHKS HIGH CHKS LOW
0x80

M0000464 Page 245


Chapter 2: General programming notes Programming manual

Special handling for rotating table


There are three types of special handling:

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)

2. Movement with specific direction:


Positive target level => clockwise movement
Negative target level => anticlockwise movement

3. Incremental movement optimized with automatic choice of the shortest route.


Movement instruction = AX <nn> INCR <xxxx.xxx>
(from firmware version 4.41 of 20/05/03)

The type of movement is selected with a Numeric Variable (VN):

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:

Reference millimeter: 360 (with the appropriate number of decimal digits)


Pulses reference: number of pulses corresponding to a rotation of 360 degrees

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).

Page 246 M0000464


Programming manual Chapter 2: General programming notes

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.

NOTE: Indexes of variables specified apply to firmware versions up to 8 axes

VB421 1 = enable the special handling for rotating table

VN select the type of movement


for axis
VN348 1
VN349 2
VN350 3
VN351 4
VN352 5
VN353 6
VN354 7
VN355 8

M0000464 Page 247


Chapter 2: General programming notes Programming manual

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:

VQ251scale factor axis 1


VQ252scale factor axis 2
VQ253scale factor axis 3
VQ254scale factor axis 4

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.

Page 248 M0000464


Programming manual Chapter 2: General programming notes

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.

Programs generated with CAD/CAM


It is possible, though a CAD/CAM program to start from a drawing of the piece to be worked to
generate the ISO work file. These programs, once loaded in the memory of the NC, cannot be
seen or edited but only executed.
Below, we provide the complete list of ISO codes recognized.

ISO codes recognized


ISO instructions are parameterized: the values of the axes positions in movement instructions
(G0, G1, G2 e G3) and speed instructions (F) can be on Position Variables (VQ).
The ISO interpreter recognizes the following instructions:

% Begin program

{ Begin comment

F Set speed in mm/min

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).

G17 sets the XY plane as the plane of interpolation


G18 sets the ZX plane as the plane of interpolation
G19 sets the YZ plane as the plane of interpolation
G40 disables tool
G41 tool to left
G42 tool to right
G43 tool outside with respect to the circumference
G44 tool inside with respect to the circumference

M0000464 Page 249


Chapter 2: General programming notes Programming manual

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.

G55 makes origin active


G59 set the origin values

G60 CONT MOVE


G61 NO CONT MOVE

G90 activates absolute coordinates mode


G91 activates incremental coordinates mode (realtive to last point)

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.

Page 250 M0000464


Programming manual Chapter 2: General programming notes

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

M97 VNi = Val + GOSUB 9797

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)

Examples: M100 J#20 jumps to line 20


M101 VB50 = 1 J#20 jumps to line 20 if VB50 = 1
M101 VN23 >= VN4 B#-5 jumps 5 lines more backwards if VN23 is
greater than or equal to the content of VN4.
M100 JN50 jump to block the that begin it with N50
Note: instructions M100 and M101 are legal only in programs residing in the
memory of the NC and not in programs transmitted in temporary form
from a PC.
NOTE: jump to block number (label)
Block numbering must begin in the first column, the letter "N" must be uppercase
and there must not be any spaces between "N" and the number. The type of
"jump to label" can only be absolute, so the only notation allowed in
instructions M100 and M101 is "JN<xx>" (for example: M100 JN30)
M102 VNi enables storing the step in VNi (like instruction 102 MEM STEP VNi).

M750 assumes the one of the last movement as the default G


M751 assumes G1 as the default G

M752 4-axes interpolation (equal to 764)


M753 2-axes interpolation (circular)

M761 1-axes interpolation (linear)


M762 2-axes interpolation (linear)
M763 3-axes interpolation (linear)
M764 4-axes interpolation (linear)
M765 5-axes interpolation (linear)
M766 6-axes interpolation (linear)

M780 Disables the forcing of tool tangency.


M0000464 Page 251
Chapter 2: General programming notes Programming manual

M781 Enables the forcing of tool tangency.


M782 Always sets recalculated speed in arcs.
M783 Sets only recalculated speeds less than current.
M784 Disables the orientation of the tool in arcs of circumference.
M785 Enables the orientation of the tool in arcs of circumference.
M786 Disables the function for the movement only of axes with bit at 1.
M787 Enables the movement only of axes with bit at 1.
M788 Disables the function that interrupts continuous movement if the mask
between one movement and the next is different - secondary axes.
M789 Interrupts continuous movment if the mask between one movement and the
other is different - secondary axes.
M801 P<ParIndx>=<ValQ> allows setting the value of several parameters
internal to the firmware that modify the behavior of several functions (for a
description of the parameters, see the chapter NC Functions, FUN 251).

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.

Page 252 M0000464


Programming manual Chapter 2: General programming notes

Example ISO program

Example ISO file. The work refers to the a sink top,


with peripheral work and central hole.

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

M0000464 Page 253


Chapter 2: General programming notes Programming manual

The ISO program creates the following profile

Programs generated with the editor


In the case in which the numeric provides firmware with interpolation, you can write NC
programs that use ISO instructions recognized by the compiler. To write such programs, you can
use the internal editor of the development system (such as SiaxED) or an external editor
selected by the programmer.
Once the .SRC program is written, the compilation will generate an .EEP file.
Below, we provide a table that illustrates the ISO instructions that are recognized by the NC
compiler and the code of such instructions in the list of NC instructions.

NC instructions code ISO instructions Description


recognized
61 G1 Linear interpolation (G1XY xf yf
with xf and yf final point positions)
62 G2 Circular clockwise interpolation (G2XY xc yc xf yf
with xc and yc center positions, xf yf final point
positions)
63 G3 Counter-clockwise circular interpolation (G3XY xc
yc xf yf with xc and yc center positions, xf yf final
point positions)
34 M02 or M30 End program
38 G60 Enables continuous interpolated movements
39 G61 Disables continuous interpolated movements
40 G40 Disables tool correction
41 G41 Tool position to the left with respect to advancement

Page 254 M0000464


Programming manual Chapter 2: General programming notes

42 G42 Tool position to the right with respect to


advancement
43 G43 Tool outside with respect to the circumference
44 G44 Tool inside with respect to the circumference
45 G45 Third axis oriented parallel to advancement
55 G55 Sets the active origin
56 G102 or G103 Sets the active origin
57 F Interpolation speed in mm/min.
60 FXY Interpolation speed in mm/sec.
72 G2R Arc of circumference clockwise, given the radius
73 G3R Arc of circumference counter-clockwise, given the
radius

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

: G1 X 200 Y 100 // I am taken to point B


: G2 X 300 Y 0 I 200 J 0 // I am taken to point C
: WAIT AX //I enable waiting for axes in position
: WAIT AX 1 IN QUOTE //I wait for axes in position
WAIT AX 2 IN QUOTE
Having used the instruction NO WAIT AX, the program does not wait for the end of axis
movement but immediately goes to execute the next step. So, in our case, the program will
immediately go to step 6 and will remain there until the end of movements.
This involves a disadvantage if I want to associate an action to the arrival of the axes at an
intermediate point.
In fact, suppose we want to set an output when the axes are brought to point B. Having used NO
WAIT AX, any instruction at step 3 (OUTON 1) would be executed immediately and, therefore,
I would not know when the axes were effectively at point B.

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.

Using the instruction CONT MOVE the program becomes:

: FXY 20 // Set working speed


: CONT MOVE //I enable continuous interpolated
movements
: G1 X 200 Y 100 // I am taken to point B
: G2 X 300 Y 0 I 200 J 0 // I am taken to point C
: NO CONT MOVE // Continuous interpolated movements
disabled

N.B.: It is important to note that continuous interpolated movements can only


be obtained with circular connections.

Page 256 M0000464


Programming manual Chapter 2: General programming notes

Types of ISO programming


The Numerical Control is capable of executing ISO programs. In fact, there is an ISO interpreter
resident in the NC that recognizes the codes listed in the paragraph ISO codes recognized of
the NC Programming manual.
The Numerical Control provides different types of ISO file programming. I.e., it is able to
execute ISO instructions in different programming methods. Below, we illustrate these
programming methods.

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

G2 X260.000 Y150.000 I245.000 J154.375 {circular interpolation.}


{Arc of circumference in a clockwise direction}
{with center I=245 Y=154.375 and }
{final point X=260 Y=150}
G1 X225.000 Y18.750 {linear interpolation. Moving axes to the positions}
{X=225 Y=18.750}

G40 {disables tool correction}


G61 {disables continuous movements}
M02 {end of program}

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:

Stop on point and execution of program 1000 because


the angle formed by the directions of the sections of the profile made by
G3 and subsequent G1 ( ) is greater than the value of the machine
parameter Tangency tolerance

C
D
A

Page 258 M0000464


Programming manual Chapter 2: General programming notes

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.

Below, we show two examples of NC program 1000.

Example: 1 : working without tangential axes.

#prog 1000
#name Program 1000

: TOOL ANGLE=VQ0

: END

Example: 2: working with tangential axes

#prog 1000
#name Program 1000

: AX 3 TO VQ0

: END

M0000464 Page 259


Chapter 2: General programming notes Programming manual

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.

Page 260 M0000464


Programming manual Chapter 2: General programming notes

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.

M0000464 Page 261


Chapter 2: General programming notes Programming manual

Machine parameter Acceleration factor between two entities


The value of the speed at points P1 and P2 can be changed using the machine parameter
Acceleration factor between two entities Kbtw.
The default value is 1; the range of possible values is [0.1,10.0].

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:

Kbtw1 > Kbtw2

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.

Page 262 M0000464


Programming manual Chapter 2: General programming notes

Machine parameter Acceleration factor


The speed trend of the master also depends on the machine parameter Acceleration factor
Facc. This parameter has no influence on the speed value at the points of passage between two
subsequent movements as for the parameter Kbtw, but determines the slope of speed in the
sectors of acceleration and deceleration.
The machine parameter Acceleration factor has a default value equal to 1 (slope not
modified); while the range is [0.1,10.0].
The following speed-time graphic of the master axis shows how the slope of speed changes with
two different values of the parameter Facc.

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:

Facc1 > Facc2


where:
Facc1 Facc (section )
Facc2 Facc (section )

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.

M0000464 Page 263


Chapter 2: General programming notes Programming manual

We illustrate the example of an ISO file with Profile by Points programming.


Example:
%2 TEST2
M762 {enables 2-axes linear interpolation}
G60 {enabling continuous movements}
G102 {disables tangency tolerance control (instruction G103)}
M93 VB394=1 {enables profile by points}
F2000 {interpolated axes speed 2000 mm/min}
G0 X30.000 Y40.000 {positioning start work in position X=30 Y=40}
G1 X70.000 Y40.000 {sequence of G1 instructions for work with profile
by points}
G1 X100.000 Y80.000
G1 X130.000 Y40.000
G1 X170.000 Y40.000G1 X170.000 Y70.000
G1 X130.000 Y70.000
G1 X100.000 Y110.000
G1 X70.000 Y70.000
G1 X30.000 Y70.000
G1 X30.000 Y40.000
G0 X0.000 Y0.000
M02 {end of program}

The program listed above produces the following work.

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.

Page 264 M0000464


Programming manual Chapter 2: General programming notes

ISO instructions
G311 and G312
ISO instruction G311 sets the mode Profile by Points (PPP) and is equivalent to the following
sequence of instructions:

G90 {absolute coordinates


M766 {6-axes interpol. (all axes interpolated)
M93VB394=1 {enables Profile by Points
G60 {continuous movement
M787 {moves only axes with bit at 1
M788 {does not perform a check of the movement mask (G311)
G200A<val> {sets the equivalent stop angle to <val>.
{<val> is the machine parameter "tangency tolerance"

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:

G216 <ax> <ax> [<ax>]

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.

N.B.: the identifiers of axes 1, 2, 3, 4, 5, 6, 7 and 8 are, respectively, X, Y, Z, U, V, W, A and B

M0000464 Page 265


Chapter 2: General programming notes Programming manual

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.

G221, G222, G223, G224


Instructions G321, G322, G323 and G324, which set the interpolation mode with G1, G2 and
G3, are equivalent to the following sequence of instructions:

G90 {absolute coordinates


M753 {2-axes interpolation with G1/G2/G3
M93VB394=0 {disables profile by points
G17 {plane of interpolation XY
G60 {continuous movement
G45 {tool parallel to the direction of movement
M786 {(G323 and G324) moves all the axes
M787 {(G321 and G322) moves only axes with bit at 1
M788 {(G321 and G323) doesn't check the mask difference
M789 {(G322 and G324) stop on point if mask different
G103P1000VQ0 {enables check of change of direction

Page 266 M0000464


Programming manual Chapter 2: General programming notes

G220, G221
Instruction G220 and G221 are added to release the axes from the interpolation group

example:

G221 U V {releases axes U and V from the interpolation group

M0000464 Page 267


Chapter 2: General programming notes Programming manual

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).

Variable VB270 allows choosing the mode of displaying the coordinates:


0 the positions of the axes are displayed
1 the coordinates of the working point of the tool are displayed

Example 1

Page 268 M0000464


Programming manual Chapter 2: General programming notes

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

Suppose we want to perform the work in figure 4 (section A-B-C).

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:

: FX 10 //Sets speed of work: 10 mm/sec


: TOOL 5 // Use tool no. 5
: TOOL ANGLE = - 90 //Tool angle = - 90 degrees
: G41 //Tool the right of the path
: VQ1 = 100 + VQ98 //Final position (axis 1) of point B
: G1 X VQ1 Y 50 //Brings the tool to point B
//Tool angle = 180 degrees: along the section
: TOOL ANGLE = 180 //B-C the tool is oriented in a different way
//with respect to section A-B
: G1 X 100 Y 0 //Brings the tool to point C

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:

: VQ1 = 0.000 - VQ98 //Final position (axis 2) of point C


: G1 X 100 Y VQ1 //Brings the tool to point C

Page 270 M0000464


Programming manual Chapter 2: General programming notes

Temporary transmission of ISO programs


A program in ISO language can be sent from a PC to the NC without being stored on the NC
(temporary program).

The management of the transmission of a temporary program is enabled on the NC by setting


variable VB_USE_TX_PRG (VB385) to 1.

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.

VN_TX_PRG_NUM (VN310) contains the number of the requested program; VN_TX_STEP_H


(VN314) and VN_TX_STEP_L (VN315) contain the number of the starting step:
(num. step = VN_TX_STEP_H 65536 + VN_TX_STEP_L).

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.

M0000464 Page 271


Chapter 2: General programming notes Programming manual

Example of PLC logic for temporary transmission

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.

Page 272 M0000464


Programming manual Chapter 2: General programming notes

M0000464 Page 273


Chapter 2: General programming notes Programming manual

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.

Page 274 M0000464


Programming manual Chapter 2: General programming notes

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

M0000464 Page 275


Chapter 2: General programming notes Programming manual

Example of palletization
Now, let's look at a program example having to do with palletization.

Suppose we want to also drive the third axis.

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

Page 276 M0000464


Programming manual Chapter 2: General programming notes

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

: VN51 = NUM_X //NUM_X is the Number pieces along X


: VN52 = NUM_Y //NUM_Y is the Number pieces along Y
: VN53 = NUM_Z //NUM_Z is the Number pieces along Z
: VQ21 = X0 //X0 is the initial position for the axis X
: VQ22 = Y0 //Y0 is the initial position for axis Y
: VQ23 = Z0 //Z0 is the initial position for axis Z
: VQ31 = DELTA_X
: VQ32 = DELTA_Y
: VQ33 = DELTA_Z
: JMP PROG 14 //Jumps to the main program

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

: IF IN 1 GOTO End //If input 1 present doesn't initialize


: VN151 = 0 //ACT_X (current index along X)
: VN152 = 0 //ACT_Y (current index along Y)
: VN153 = 0 //ACT_Z (current index along Z)
: VB159 = 0 //FLAG: 1 = Palletization terminated
: VQ151 = VQ21 //POS_X: current position along X (= X0)
: VQ152 = VQ22 // POS_Y: current position along Y (= Y0)
: VQ153 = VQ23 //POS_Z: current position along Z (= Z0)
:End END

M0000464 Page 277


Chapter 2: General programming notes Programming manual

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

: AX 1 TO VQ151 //Positions X to current Position


AX 2 TO VQ152 //Positions Y to current level
AX 3 TO VQ153 //Positions Z to current level
: INCR VN151 //Increments ACT_X (current x index)
: VQ151 = VQ151 + VQ31 //POS_X = POS_X + DELTA_X
: IF VN151 < VN51 GOTO End //If ACT_X < NUM_X I exit
: INCR VN152 //Increments ACT_Y (current Y index)
: VQ152 = VQ152 + VQ32 //POS_Y = POS_Y + DELTA_Y
: VN151 = 0 // Reset ACT_X (to pass to scanning 2nd line)
: VQ151 = VQ21 //POS_X = XO
: IF VN152 < VN52 GOTO End //If ACT_Y < NUM_Y I exit
: INCR VN153 //Increments ACT_Z (current Z index)
: VQ153 = VQ153 + VQ33 //POS_Z = POS_Z + DELTA_Z
: VN152 = 0 //Reset ACT_Y (to begin another plane)
: VQ152 = VQ22 //POS_Y = YO
: IF VN153 < VN53 GOTO End //If ACT_Z < NUM_Z I exit
: VB159 = 1 //Palletization ended: I set the relative flag
:End END

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

: GOSUB 12 //Variable initialization


:Loop ... //Appropriate operations

: GOSUB 13 //Positioning at current point


... //Appropriate operations

: IF VB159 = 0 GOTO Loop//Resume cycle if palletization not finished


: END

Page 278 M0000464


Programming Manual Chapter 3: Variables

M0000464 Page 279


Chapter 3: Variables Programming Manual

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.

Page 280 M0000464


Programming Manual Chapter 3: Variables

Numerical Control Variables (from 4.37 firmware version)


Variables are available in the Numerical Control that can be used in programming the NC and
PLC.
These variables allow directly managing several functions, without having to make recourse to
inputs, thus allowing their use for other purposes.
In particular, here we will analyze in detail the Binary , Numeric and Position Variables
managed by the PLC to dialogue with/control the Numerical Control.
All the VB, VN and VQ variables can be used by either the NC or the PLC,
by keeping in mind that the variables higher than 255 can only be used by
the NC through assignment instructions.
Example:
VB360 =1 CORRECT
IF VB360 = 1 GOTO LABEL WRONG

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.

M0000464 Page 281


Chapter 3: Variables Programming Manual

Structure of the variables with DOS PLC


Binary Variables
VB0 NC only
VB1 VB1
VB80
VB100 Buffered var. The VB from 101 to 255 if
NC-PLC they are not associated to
VB101
Alarm var. messages can be use as
VB255 VB255 normal variables.
N.B.: they are not buffered.

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

Page 282 M0000464


Programming Manual Chapter 3: Variables

Structure of the variables for Siax 80-100-110-


110Light-150-300
N.B. Structure of the variables using PLC LADDER.
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

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

M0000464 Page 283


Chapter 3: Variables Programming Manual

Structure of the variables for Siax100 Plus


N.B. Structure of the variables using PLC LADDER.

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

VN1198 Battery Buffered


Variables
VN4095

Position Variables
VQ0

VQ97VQ99 Reserved
VQ149
VQ150

VQ256257 Battery Buffered


Reserved
Variables
VQ8191

Page 284 M0000464


Programming Manual Chapter 3: Variables

Structure of the variables for Siax 200


N.B. Structure of the variables using PLC LADDER.
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 Variables
VN600

VN3840
Battery Buffered
Variables
VN4095

Position Variables
VQ0
VQ97-VQ99
Reserved
VQ149
VQ150

VQ256VQ257 Battery Buffered


Reserved
Variables
VQ8191

M0000464 Page 285


Chapter 3: Variables Programming Manual

Binary Variables with dedicated functions

VB256 Start VB312 Axis 1 zeroed


VB257 Stop VB313 Axis 2 zeroed
VB258 JOG+ VB314 Axis 3 zeroed
VB259 JOG- VB315 Axis 4 zeroed
VB260 Emergency VB316 Axis 5 zeroed
L VB261 Indicates if automatic is running VB317 Axis 6 zeroed
VB262 Suspends execution of automatic VB318 Axis 7 zeroed
VB263 Suspends automatic disabling axis movement VB319 Axis 8 zeroed
VB264 Makes a step of aut. at each neg. trans. on VB262 VB320 Disables axis 1 servo
VB265 Sets as prog. no. that contained in VN257 VB321 Disables axis 2 servo
VB266 Enables manual multiple movement VB322 Disables axis 3 servo
L VB267 Indicates end excution automatic program VB323 Disables axis 4 servo
VB268 Access key VB324 Disables axis 5 servo
VB269 Block access to Variable Setting (F1) VB325 Disables axis 6 servo
VB270 Movement in tool coordinates VB326 Disables axis 7 servo
VB271 Self-learning VB327 Disables axis 8 servo
VB272 Interpolated self-learning VB328 Sets axis 1 encoder 0
VB273 Signals NC in Variable Setting (F1) VB329 Sets axis 2 encoder 0
VB274 If = 0 NC in Local, if = 1 NC in Remote VB330 Sets axis 3 encoder 0
VB275 If = 0 NC in Manual, if = 1 NC in Automatic VB331 Sets axis 4 encoder 0
L VB276 NC in Main Menu VB332 Sets axis 5 encoder 0
L VB277 NC in Automatic VB333 Sets axis 6 encoder 0
L VB278 NC in Manual VB334 Sets axis 7 encoder 0
L VB279 NC in Parameter Acquisition VB335 Sets axis 8 encoder 0
L VB280 NC in Test VB336 JOG- in multiple man. movement (axis 1)
L VB281 NC in Speed Test VB337 JOG- in multiple man. movement (axis 2)
L VB282 NC in Semi-automatic VB338 JOG- in multiple man. movement (axis 3)
L VB283 NC in Single State VB339 JOG- in multiple man. movement (axis 4)
L VB284 NC in Resetting VB340 JOG- in multiple man. movement (axis 5)
L VB285 NC in Editor VB341 JOG- in multiple man. movement (axis 6)
L VB286 NC in Emergency (read only) VB342 JOG- in multiple man. movement (axis 7)
L VB287 Enabling Axes VB343 JOG- in multiple man. movement (axis 8)
VB288 Diabling movement axis 1 VB344 Delays the departure of axis 1 while remains 1
VB289 Diabling movement axis 2 VB345 Delays the departure of axis 2 while remains 1
VB290 Diabling movement axis 3 VB346 Delays the departure of axis 3 while remains 1
VB291 Diabling movement axis 4 VB347 Delays the departure of axis 4 while remains 1
VB292 Diabling movement axis 5 VB348 Delays the departure of axis 5 while remains 1
VB293 Diabling movement axis 6 VB349 Delays the departure of axis 6 while remains 1
VB294 Diabling movement axis 7 VB350 Delays the departure of axis 7 while remains 1
VB295 Diabling movement axis 8 VB351 Delays the departure of axis 8 while remains 1
VB296 Selec. axis 1 and JOG+ in multiple man. movement VB352 Enables IRQ TPU encoder 1
VB297 Selec. axis 2 and JOG+ in multiple man. movement VB353 Enables IRQ TPU encoder 2
VB298 Selec. axis 3 and JOG+ in multiple man. movement VB354 Enables IRQ TPU encoder 3
VB299 Selec. axis 4 and JOG+ in multiple man. movement VB355 Enables IRQ TPU encoder 4
VB300 Selec. axis 5 and JOG+ in multiple man. movement VB356 Reserved
VB301 Selec. axis 6 and JOG+ in multiple man. movement VB357 Reserved
VB302 Selec. axis 7 and JOG+ in multiple man. movement VB358 Reserved
VB303 Selec. axis 8 and JOG+ in multiple man. movement VB359 Reserved
L VB304 Axis 1 in position VB360 Enables axis 1 to follow the encoder in VN284
L VB305 Axis 2 in position VB361 Enables axis 2 to follow the encoder in VN285
L VB306 Axis 3 in position VB362 Enables axis 3 to follow the encoder in VN286
L VB307 Axis 4 in position VB363 Enables axis 4 to follow the encoder in VN287
L VB308 Axis 5 in position VB364 Enables axis 5 to follow the encoder in VN288
L VB309 Axis 6 in position VB365 Enables axis 6 to follow the encoder in VN289
L VB310 Axis 7 in position VB366 Enables axis 7 to follow the encoder in VN290
L VB311 Axis 8 in position VB367 Enables axis 8 to follow the encoder in VN291

Page 286 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 287


Chapter 3: Variables Programming Manual

Numeric Variables with dedicated functions

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

Page 288 M0000464


Programming Manual Chapter 3: Variables

VN356 Instantaneous feed mm/min. VN411 VN_PAGE_MODE


L VN357 Connection status VN412 VN_PALM_PUT_KEY
VN358 Command and serial line VN413 VN_CONF_ISTR
VN359 VB index ISO operator message VN414 VN_EMRG_ERR_CODE
L VN360 Flag axes in proximity threshold VN415 VN_EMRG_ERR_AX
L VN361 Type of interpolated movement VN416 VN_CONF_EDIT
VN362 Code of profile sector to self-learn VN417 VN_DATA_EDIT_NUM
VN363 Residual seconds in wait timer VN418 VN_MENU_FUN_CODE
VN364 1st VQ containing axis positions VN419 VN_PRESET_CN_PASSW
VN365 Bit variable, curr. ax position in MmRif VN420 VN_CNT_RTC_FULL
VN366 Instruc. code with 1 par. to be generated in self- VN421
learn.
VN367 Instruc. par. generated in self-learning VN422
VN368 Index First VN for reading a VQ VN423
VN369 VQ index read from two VNs VN424
VN370 Disables specified function keys VN425
VN371 Threshold of begin ISO file exectuion transmitted VN426
from PC
VN372 Date and time format (dedicated FW) VN427
VN373 Date and time management (dedicated FW) VN428
VN374 Type of connection (dedicated FW) VN429
VN375 VN_MAIN_ERR_CODE Main Error Code VN430
VN376 ID active page (user page) VN431
VN377 Base address code user page VN432
VN378 Index first VQ settable objective position VN433
VN379 ID object in input (user page) VN434
VN380 Axis position acqusition MODE | No. Axis VN435
VN381 VQ index acquisition axis position VN436
VN382 Enables user program management index First VN VN437
VN383 Simulated code key VN438
VN384 update period variables user page [tick] VN439
VN385 VN_MODE_PRG_LIST VN440
VN386 Number current language (from 1) VN441
VN387 VN_DISAB_STD_VIEW (bit variable) VN442
VN388 VN_LAST_PRG_REC VN443
VN389 VN_TIME_DATE_IDX VN444
VN390 VN_DATA_BARC_NUM VN445
VN391 VN_BARC_STATO VN446
VN392 VN_COPY_VA VN447
VN393 VN_DATA_CN_MASTER_NUM VN448
VN394 VN_CN_MASTER_STATO VN449
VN395 VN_CN_MASTER_NUM_SENT VN450
VN396 VN_FASE_AZZERAMENTO VN451
VN397 VN_DISAB_NG_COP VN452
VN398 VN_MODBUS_COM VN453
VN399 VN_MODBUS_COM_MODE VN454
VN400 VN_STD_STATE_NUM VN455
VN401 VN_OMNI_OPER VN456
VN402 VN_OM_PRG_NUM VN457
VN403 VN_OM_TSTVEL_AX_NUM VN458
VN404 VN_EDIT2 VN459
VN405 VN_PRG_NUM_TO_EDIT VN460
VN406 VN_FIRST_PRG_LIST VN461
VN407 VN_LAST_PRG_LIST VN462
VN408 VN_PRG_BASE_LIST VN463
VN409 VN_COP_WARN_ERR VN464
VN410 VN_OBJ_DATA_LIST VN465
"L" indicates read-only variables.

M0000464 Page 289


Chapter 3: Variables Programming Manual

Position Variables with dedicated functions


VQ97* Contains the value, in mm, of the circular connection
VQ98* Contains tool length
VQ99* Contains tool increase/decrease
VQ256 Used for the selection of functions on the standard menus from the PLC.
VQ257 Used for the selection of functions on the standard menus of the palm computer from the PLC.
* N.B. These VQs are only used in the event in which you are using tool management in the
program, for use call Sipro technical office..

Page 290 M0000464


Programming Manual Chapter 3: Variables

Binary Variables with dedicated functins


Following are describe Binary Variables with dedicated functions.

Notations
read only variables (its is possible to write a value in these variables but it has no
effect).

M0000464 Page 291


Chapter 3: Variables Programming Manual

VB256 VB_START
If set to 1, starts the execution of the Automatic cycle.

To begin execution of Automatic, it is sufficient to provide an impulse (transition 0-1-0) in


VB256. In this way, it begins the program specified in the Automatic page (Automatic Cycle
menu selection on the Main Menu of the NC).

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.

1 = START (it is equivalent to input START).


In some controls (Siax 300 and Siax 150) digital input 1 is associated to the [START] key of the
Numerical Control. So using the PLC logic, it is easy to associate the event of pressing the
[START] key to VB256 (as explained in chapter 7 of the programming manual).
In some others (Siax 110 and Remote Keyboard) digital input 1 is not associated to the [START]
key, the pressing of which causes, instead, the sending of a code to the control (on VN258).

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).

Page 292 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 293


Chapter 3: Variables 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.

N.B. Also see VB267.

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.

N.B. Also see VB263 and VB264.

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.

N.B. Also see VB262 and VB264.

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.

N.B. Also see VB262 and VB263.

Page 294 M0000464


Programming Manual Chapter 3: Variables

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 Multiple Manual


VB265 set to 1 by the PLC when the control is in Multiple Manual has the effect of
sending the program specified in VN257 into execution. The effect is to give a Start to
the program, which is then executed.

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.

N.B. Also see the documentation for VN257.

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.

M0000464 Page 295


Chapter 3: Variables Programming Manual

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).

Operation on the program Requires the key (VB268=1)


Program editor Yes
List Programs in memory No
Delete Program Yes
Copy programs Yes
Talk with PC No
Total program erasure Yes
Editor display No

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:

If VB269=0, then F1 Variable Setting functions are operational

If VB269=1, then F1 Variable Setting functions are disabled

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.

Page 296 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. See also VN366, VN367 and VB272

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.

M0000464 Page 297


Chapter 3: Variables 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.

Page 298 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 299


Chapter 3: Variables 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.

Page 300 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Also see VB312-VB319

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.

N.B. See VB266 and chapter 5 of the programming manual.

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.

N.B. See the documentation for VB288-VB295.


N.B. Delay Variables functions for ON/OFF AXIS ONLY from firmware version 5.14 of
06/10/04.

M0000464 Page 301


Chapter 3: Variables Programming Manual

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.

N.B. Also see the documentation for VN268-VN271.

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.

Page 302 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 303


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.21c on.


N.B. For a better understanding of the meaning of VB373 and the functioning of the F1
key, also see the flow-chart in the paragraph Variable Setting F1 key in chapter 2 of the
programming manual.

VB374 VB_SET_ORG
If set to 1, it sets as the active origin the one whose number is contained in VN306.

N.B. Variable available from firmware version 3.31c on.


N.B. For additional explanations, consult the documentation for VN306 and chapter 8 of
the programming manual.

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.

Page 304 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Also see the documentation related to Instruction 38 CONT MOVE.

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.

M0000464 Page 305


Chapter 3: Variables 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.

N.B. Variable available from firmware version 3.26b on.

Page 306 M0000464


Programming Manual Chapter 3: Variables

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. Variable available from firmware version 3.26d on.


N.B. The functioning described above is not valid when the program called from F1 is the
one with number 9800. In this case, even if VB391=0, the program to be executed remains
that whose number was set in VN308 before pressing F1.

N.B. Also see the documentation in paragraph Variable Setting F1 Key in the programming
manual and for VN336, VN342, VN308 and VB373.

M0000464 Page 307


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.28b on.


N.B. Also see the documentation for instructions 62 (G2) and 63 (G3)

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).

N.B. Variable available from firmware version 3.28c on.


N.B. For a better description of the utility of VB393, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.

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. Variable available from firmware version 3.28c on.


N.B. VB394 only has meaning for firmware versions that provide for the execution of
profile by points.

N.B. Also see the documentation for instructions 61 (G1), 62 (G2) and 63 (G3)

Page 308 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Variable available from firmware version 3.30b on.


N.B. Also see the documentation in paragraph ISO Codes Recognized in chapter two of the
programming manual and for VN340.

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).

N.B. Variable available from firmware version 3.44c on.


N.B. For a better description of the utility of VB397, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
programming manual.

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.

N.B. Variable available from firmware version 3.30g on.


N.B. Also see documentation for VB271 and the paragraph Self-Leaning by F1 in chapter 2
of the programming manual.

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.

N.B. Variable available from firmware version 3.31a on.


N.B. See documentation for VN344.

M0000464 Page 309


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.31a on.


N.B. Also see the documentation in the paragraphs relative to function keys F1, F2 and F4
in chapter 2 of the programming manual.

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.

N.B. Variable available from firmware version 3.31b on.


N.B. Also see the documentation relative to Instruction 30 RESERVED.

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.

N.B. Variable available from firmware version 3.32 on.


N.B. Also see documentation in the paragraph Self-Leaning by F1 in chapter 2 of the
programming manual.

Page 310 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Variable available from firmware version 3.36a on.


N.B. Also see documentation for VB266 and the paragraph Multiple Manual in chapter 2 of
the Programming Manual.

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.

N.B. Variable available from firmware version 3.37c on.


N.B. See the documentation in the paragraphs Messages and Variable Setting F1 key in
chapter 2 of the Programming Manual and the documentation for instructions 209, 229, 249,
239, 105, 106, 107, 108, 109, 111, 112, 113, 218 and 224 relative to the management of the
F1 key and messages.

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%).

N.B. Variable available from firmware version 3.37c on.


N.B. The set speed instruction is only generated if the axis movement instruction is not
already present in the step; it is not active in Interpolated Self-learning (VB272) and in
Self-learning on variables (F3).
N.B. Also see documentation in the paragraph Self-Leaning in Program Editor in chapter 2
of the Programming Manual.

M0000464 Page 311


Chapter 3: Variables Programming Manual

VB406 VB_MODEM_EN
If set to 1, enables modem management.

N.B. Variable available from firmware version 3.38 on.


N.B. See documentation for VN357 and VN358.

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.

N.B. Variable available from firmware version 3.43 on.


N.B. See the documentation for VB408, VB409 and VB410.

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.

N.B. Variable available from firmware version 3.43 on.


N.B. See the documentation for VB407, VB409 and VB410.

Page 312 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Variable available from firmware version 3.43 on.


N.B. See the documentation for VB407, VB408 and VB410.

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.

N.B. Variable available from firmware version 3.43 on.


N.B. See the documentation for VB407, VB408 and VB409.

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.

N.B. Variable available from firmware version 3.43a on.


N.B. Also see documentation in the paragraph Linear and circular interpolation in the
Programming Manual.

M0000464 Page 313


Chapter 3: Variables Programming Manual

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).

N.B. Variable available from firmware version 3.43a on.


N.B. See documentation relative to VB374, VB375, VB376, VB383, VN305 and VN306. Also
see documentation relative to instruction 47 SET ANGLE ORG n VAL i in the instruction
manual and in chapter 8 of the Programming Manual.

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.

N.B. Variable available from firmware version 3.43a on.

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.

N.B. Variable available from firmware version 3.44a on.

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).

N.B. Variable available from firmware version 3.46d on.

Page 314 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Variable available from firmware version 3.49c on.


N.B. Also see the documentation for VN362.

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.

N.B. Variable available from firmware version 3.54b on.

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.

N.B. Variable available from firmware version 3.57a on.


N.B. Also see documentation for variables VN348-VN355 and the paragraph Self-learning
in Program Editor in chapter 2 of the Programming Manual.

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.

N.B. Variable available from firmware version 3.58a on.

M0000464 Page 315


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.62a on.

VB421 VB_EN_TAV_ROT
Setting VB421 to 1 enables the special rotating table functions. This functions are only available
with dedicated firmware.

N.B. Variable available from firmware version 3.64a on.


N.B. Also see documentation relative to the rotating table example in chapter 2 of the
Programming Manual.

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.

N.B. Variable available from firmware version 3.77 on.

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.

N.B. Variable available from firmware version 4.12 on.

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

N.B. Variable available from firmware version 4.18 on.

Page 316 M0000464


Programming Manual Chapter 3: Variables

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.

VB426 VB_ INIT_ERR_MAIN


VB426 allows initializing the parameters to the default values in the event that the NC goes into
Main errors of the type check EEPROM ...

N.B. Variable available from firmware version 5.08 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

N.B. VB427 is automatically zeroed (zeroed by firmware).


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

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)

N.B. VB428 is automatically zeroed (zeroed by firmware).


N.B. Also see the paragraph Single State in this manual.
N.B. Also see variable VN402.
N.B. Variable available from firmware version 4.33 on.

M0000464 Page 317


Chapter 3: Variables Programming Manual

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.

N.B. Also see the paragraph Single State in this manual.


N.B. Variable available from firmware version 4.33 on.

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:

1. Set the NC in Test State using VB429


2. Set the number of the axis for which you want to perform the test in VN403
3. Prepare a user page in which there is an objective-type index variable as the object equal
to the number of the axis for which you wish to perform the speed test (VN403). This
object must be readable and writable and contains, at the end of the test, the value of the
maximum speed of the axis.

N.B. See documentation relative to VB429 and VN403.


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

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.

N.B. VB431 is automatically zeroed (zeroed by firmware).


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

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.

N.B. See documentation relative to VB428.


N.B. VB432 is automatically zeroed (zeroed by firmware).
N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

Page 318 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Also see the paragraph Single State in this manual.


N.B. Variable available from firmware version 4.33 on.

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.

N.B. Also see the paragraph Single State in this manual.


N.B. Variable available from firmware version 4.33 on.

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)

N.B. Also see the paragraph Single State in this manual.


N.B. Variable available from firmware version 4.33 on.

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.

N.B. VB436 is automatically zeroed (zeroed by firmware).


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

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.

N.B. Also see the paragraph Multiple Manual in this manual.


N.B. See documentation relative to VN345, VN346 and VN375.
N.B. Variable available from firmware version 4.40 on.

M0000464 Page 319


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 4.46 on.

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).

N.B. Variable available from firmware version 5.02 on.

VB440 VB_DIS_PROFI
In system with ProfiBus interface, setting VB440 to 1 disables reading and writing ProfiBus
variables.

N.B. Variable available from firmware version 5.10 on.

Page 320 M0000464


Programming Manual Chapter 3: 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).

M0000464 Page 321


Chapter 3: Variables Programming Manual

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 .

N.B. Also see the documentation for VN292-VN299.

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.

Page 322 M0000464


Programming Manual Chapter 3: Variables

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.

128 64 32 16 8 4 2 1 Value to be set

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

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.

N.B. Also see the documentation for VN352VN355

M0000464 Page 323


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.88c on.


N.B. N.B. See documentation of the axes ON/OFF parameters in the installation manual.

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.

Page 324 M0000464


Programming Manual Chapter 3: Variables

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).

Mode selected Meaning of the value of VN276-VN283


0 Tracking factor x 1000
1 Numerator of the tracking factor
2 Variables not used
3 Variables not used
4 Numerator of the tracking factor
6 Tracking factor x 1000
7 Numerator of the tracking factor
8 Tracking factor x 1000
9 Numerator of the tracking factor

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:

VN with tracking parameters Associated encoder specified in:


VN276 VN284
VN277 VN285
VN278 VN286
VN279 VN287
VN280 VN288
VN281 VN289
VN282 VN290
VN283 VN291

N.B. Also see the documentation for VN360-VN367, VN284-VN291, VN316-VN323 and
VN324-VN331

M0000464 Page 325


Chapter 3: Variables Programming Manual

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.

Page 326 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 327


Chapter 3: Variables Programming Manual

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.

Page 328 M0000464


Programming Manual Chapter 3: Variables

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.

M0000464 Page 329


Chapter 3: Variables 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.

N.B. See description VN312.

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.

Page 330 M0000464


Programming Manual Chapter 3: Variables

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).

Mode selected Meaning of the value of VN276-VN283


0 Variables not used
1 Denominator of the tracking factor
2 Variables not used
3 Variables not used
4 Denominator of the tracking factor

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:

VN with tracking parameters Associated encoder specified in:


VN316 VN284
VN317 VN285
VN318 VN286
VN319 VN287
VN320 VN288
VN321 VN289
VN322 VN290
VN323 VN291

N.B. Also see the documentation for VB360-VB367, VN284-VN291, VN276-VN283 and
VN324-VN331.

M0000464 Page 331


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 2.21 on.

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:

VQ251scale factor axis 1


VQ252scale factor axis 2
VQ253scale factor axis 3
VQ254scale factor axis 4

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.

N.B. Variable available from firmware version 2.21 on.


N.B. Also see documentation in the paragraph Scale Factor in the Programming Manual.

Page 332 M0000464


Programming Manual Chapter 3: Variables

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.

Error Code Error Type


1 Emergency input active
2 Tracking error
3 End of travel switch triggered
4 Out of software limits
5 Emergency from PLC
6 CAN Controller error
7 Node Guarding Life Time error
8 Slave Node error
9 Request Start with error Can Open active
10 Nothing Open Can Node Found
11 Open Can Parameters error
12 Can Open error from Drive
13 Future Use
14 Future Use
15 Internal error
16 ProfiBus not in-line error. This error appears
in VN344 when it happens that the NC is no
longer connected to the master through the
ProfiBus.
17 Profibus Read Mail Data error. This error
appears in VN344 when the NC is not able to
read the ProfiBus card in the Mail Data
memory area.
18 Profibus Write Mail Data error. This error
appears in VN344 when the NC is not able to
write to the ProfiBus card in the Mail Data
memory area.
19 Profibus Request in Area error.
20 Profibus Release in Area error.
21 Profibus in phase of Initialization of ProfiBus
Card error.
22 Spartan Card error
23 Number of last emergency error

N.B. Also see the documentation relative to error codes in chapter 6 of the Programming
Manual and for VN335.

M0000464 Page 333


Chapter 3: Variables Programming Manual

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

Emergency error Meaning of the Parameter values


(VN334) parameter associated to
the error (VN335)
1 Null No Value
2 Axis number From 1 to 8
3 Code See the following Code
layout
4 Axis number From 1 to 8
5 Null No Value
6 Null No Value
7 Node Number 1-127
8 Node Number 1-127

Code VN335 with VN334 = 3


In the case in which VN334 has a value of 3, a number appears in VN335 that indicates which
limit switches were triggered. In this case, VN335 becomes a bit variable. Each bit indicates an
axis limit switch according to the following layout:

Bit Value Meaning


0 1 Min limit switch axis 1
1 2 Max limit switch axis 1
2 4 Min limit switch axis 2
3 8 Max limit switch axis 2
4 16 Min limit switch axis 3
5 32 Max limit switch axis 3
6 64 Min limit switch axis 4
7 128 Max limit switch axis 4

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.

Page 334 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Variable available from firmware version 3.26c on.


N.B. Also see documentation of VN342, VN308, VB261 and VB373 and the flowchart in the
paragraph Variable Setting-F1 key in the Programming Manual

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.

N.B. Variable available from firmware version 3.28b on.

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.

N.B. Variable available from firmware version 3.28c on.


N.B. For a better description of the utility of VB338, see the documentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
Programming Manual.

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.

M0000464 Page 335


Chapter 3: Variables 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.

N.B. Variable available from firmware version 3.30b on.


N.B. Also see the documentation in paragraph ISO Codes Recognized in chapter 2 of the
Programming Manual and for VB396, VN303 and VN356.
N.B. VN340 can be used to set the speed, in [mm/min], for movements in Cartesian
coordinates in Multiple Manual. If VN_VQ_INDX_SET_F (VN340) contains a value other
than 0, this value is considered the index of the VQ that contains the speed value in
[mm/min] to be set (VN340 function implemented in firmware version 3.73a).

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.

N.B. Variable available from firmware version 3.30g on.


N.B. Also see documentation in the paragraph Self-Leaning by F1 in chapter 2 of the
Programming Manual.

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.

N.B. Variable available from firmware version 3.31a on.

Page 336 M0000464


Programming Manual Chapter 3: Variables

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).

N.B. Variable available from firmware version 3.31a on.


N.B. Also see documentation for VB399 and the paragraph Messages in chapter 2 of the
Programming Manual.

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:

0 normal page (position);


1 page F1 (variable setting);
2 page F2 (Editor display);
4 page F4 (active alarms).

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.

M0000464 Page 337


Chapter 3: Variables Programming Manual

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:

Error Code Error Type


17 Automatic cycle error
20 Resetting cycle error

N.B. Variable available from firmware version 3.31b on.


N.B. Also see the documentation relative to error codes in chapter 6 of the Programming
Manual and for VN346.

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.

N.B. Variable available from firmware version 3.31b on.


N.B. Also see the documentation relative to error codes in chapter 6 of the Programming
Manual and for VN345.

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.

N.B. Variable available from firmware version 3.31b on.

Page 338 M0000464


Programming Manual Chapter 3: Variables

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

N.B. Variable available from firmware version 3.37c on.


N.B. Also see documentation for variable VN418 and the paragraph Self-learning in
Program Editor in chapter 2 of the Programming Manual.

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].

N.B. Variable available from firmware version 3.37e on.


N.B. Also see documentation in the paragraph Linear and circular interpolation in chapter 2
of the Programming Manual and for VN340 and VN303.

M0000464 Page 339


Chapter 3: Variables Programming Manual

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:

VN357 Value Meaning.


0 Modem mode not enabled (at power-up)
1 send Modem initialization string
2 awaiting response to status 1 command
3 awaiting confirmation of "autoanswer" set-up
4 awaiting "RING"
5 awaiting "CONNECT"
34 - $22 error or disabling during status 2
35 - $23 error or disabling during status 3
36 - $24 error or disabling during status 4
37 - $25 error or disabling during status 5
64 - $40 connection made.

N.B. Variable available from firmware version 3.38 on.


N.B. Also see the documentation for VN356, VN358 and VB406.

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.

the command [low byte (L)]:


0 - initializes in "autoanswer"

and the serial line used [high byte (H)]:


0 - uses COM1
1 - uses COM2

In practice, the following values are set:


0 uses COM1 - initializes in "autoanswer"
256 uses COM2 - initializes in "autoanswer"

N.B. Variable available from firmware version 3.38 on.


N.B. Also see the documentation for VN356, VN357 and VN406.

Page 340 M0000464


Programming Manual Chapter 3: Variables

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).

N.B. Variable available from firmware version 3.43a on.

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.

Bit No. Interpolated movement associated to the bit


0 ARC arc (0 = circumference)
1 CW direction (1 = CW, 0 = CCW)
2 AGG additional axes
3 RG arc given the radius
4 LIN linear movement
5 MOV point to point movement
6 EXE movement execution
7 G0 interpolated type G0

N.B. Variable available from firmware version 3.43a on.

M0000464 Page 341


Chapter 3: Variables Programming Manual

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

N.B. Variable available from firmware version 3.49c on.


N.B. Also see the documentation for VB416.

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.

N.B. Variable available from firmware version 3.50a on.


N.B. Also see documentation for instruction 17 TIME ValQ.

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.

N.B. Variable available from firmware version 3.51 on.

Page 342 M0000464


Programming Manual Chapter 3: Variables

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:

Movement of Reference = 360.00


Impulses of Reference = 4096

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.

N.B. Variable available from firmware version 3.52d on.

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

N.B. Variable available from firmware version 3.52e on.


N.B.: the NC automatically resets the value of VN366 to 0.
N.B. Also see documentation in the paragraph Self-Leaning from the Program Editor in
chapter 2 of the Programming Manual.

M0000464 Page 343


Chapter 3: Variables Programming Manual

VN367 VN_INS_PAR1
Also see the documentation for VN366.

N.B. Variable available from firmware version 3.52e on.

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.

N.B. Variable available from firmware version 3.56h on.

Page 344 M0000464


Programming Manual Chapter 3: Variables

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:

128 64 32 16 8 4 2 1 Value to be set

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

PAGE Key

F1 key

F2 key

F3 key

F4 key

F5 key

F6 key

UP/DOWN key in Manual

HIGH BYTE:

65536 32768 16384 8192 4096 2048 1024 512 256 Value to be set

Bit16 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8

MENU key in Automatic

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.

N.B. Variable available from firmware version 3.59 on.


N.B. For a better description of the utility of VB371, see the doucmentation and PLC
examples in the paragraph Temporary transmission of ISO programs in chapter 2 of the
Programming Manual.
Also see the documentation for VB385VB389 and VB393.

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.

VN374 Value Type of CONNECTOR


0 connector disabled
1 connector with specification of the distance
from the transition point
2 connector with specification of the radius

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).

N.B. Variable available from firmware version 3.61c on.


N.B. Function only enabled for controls with dedicated firmware.

Page 346 M0000464


Programming Manual Chapter 3: Variables

VN375 VN_ MAIN_ERR_CODE


VN375 contains several error codes regarding the movement of the axes in Automatic. The
following table shows the values of the codes and a brief description.

VN375 Value Description


5 Axis number error
6 Phase error
7 Objective position out of range
8 Change speed type parameter error
9 Pointer to invalid CHG structure
-1001 Axis disabled for movement (see VB288)
-1002 Axis not active (set from axis parameters)
-1101 Out of software limits (_LineAx())
-1102 Delta calculation error (_LineAx())
-1103 Out of software limits (Linear interp.)
(_LineAx2())
-1104 DeltaS calculation error (Lineare interp.)
(_LineAx2())
-2003 Error radius difference (CircleAx())
-2004 Error radius difference (ExecGtcCircAx())
-4000 Error type of movement requested
-4001 Error movement beyond the revolution (Type 1)
-4002 Error movement beyond the revolution (Type 2)
-5001 Error in calculating circular connector
-5002 Error in calculating circular connector
-5003 Error in calculating circular connector
-5004 Error in calculating circular connector
-5005 Error in calculating circular connector
-5006 Error in calculating circular connector
-5007 Error in calculating circular connector
-5008 Error in calculating circular connector
-5009 Error in calculating circular connector

N.B. Variable available from firmware version 3.61c on.


N.B. Also see documentation in the paragraph Error Codes in Automatic in chapter 6 of the
Programming Manual.

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.

M0000464 Page 347


Chapter 3: Variables Programming Manual

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).

Page 348 M0000464


Programming Manual Chapter 3: Variables

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).

VN377 layout Memory type Address (HEX)


(0) (Internal to Firmware) ****** (1)
1 FlashROM (80000 H)
2 RAM H 110000
3 RAM H 200000
4 RAM 2C0000 H
(1)
The LAYOUT VN377=0 is used for special firmware implementations.

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.

N.B. This VN is only available for dedicated firmware.


N.B. Also see the documentation for VB266.

M0000464 Page 349


Chapter 3: Variables Programming Manual

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

Page 350 M0000464


Programming Manual Chapter 3: Variables

Example:
If the following VNs are set with:

VN380 = 301 Hex = 769 Dec


VN381 = 200 Dec

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).

N.B. Variable available from firmware version 3.63 on.


N.B. Also see the documentation for VN381.

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.

N.B. Variable available from firmware version 3.63 on.


N.B. After the acquisition, VN381 is ZEROED by the NC
N.B. Also see the documentation for VN380.

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.

N.B. Variable available from firmware version 3.72a on.


N.B. N.B. Also see documentation in the paragraph Uses Program Object Manger in chapter
3 of the SiaxEd Manual.

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.

N.B. Variable available from firmware version 3.65 on.


N.B. Also see documentation in the paragraph Key Codes in the Appendix of the
Programming Manual.

M0000464 Page 351


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.65c on.

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):

128 64 32 16 8 4 2 1 Value to be set

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

NC Prg.

ISO Prg.

Data Prg.

With Range

With Specification

Also hidden

Page 352 M0000464


Programming Manual Chapter 3: Variables

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.

BIT Name Description


0 NC Prg. List with NC programs
1 ISO Prg. List with ISO programs
2 Data Prg. List with user programs. In this case, you must specify the
base matrix of the user programs to be displayed. To do this,
you must enable bit 6 of VN385 and specify the number of the
base matrix in VN408
3 Not used
4 Not used
5 With Range Enables the possibility of displaying only programs whose
numbers are found within a range. In addition to enabling
VN385 with bit 5, you must specify the limits of the display
interval. The lower limit is specified in VN406, while the
upper limit of the interval is specified in VN407 (limits
inclusive)
6 With Enables the possibility of specifying the number of the
Specification program of the base matrix if the list also contains user
programs (bit 2 of VN385 active). In the case in which bit 6 of
VN385 is active, the number of the base matrix is specified in
VN408.
7 Also hidden Enables the possibility of also displaying programs hidden by
machine parameter in the list.

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

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8

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.

M0000464 Page 353


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 3.70 on.


N.B. Also see documentation for Machine Parameters in the Installation Manual.

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.

STATE BIT DESCRIPTION VALUE


ST_MENU 0 machine stopped (in menu) 1
ST_AUTO 1 Automatic cycle 2
ST_MAN 2 axes in manual 4
ST_PARAM 3 parameter acquisition 8
ST_TEST 4 test state 16
ST_TSTV 5 speed test state 32
ST_SEMI 6 semi-automatic cycle 64
ST_INIEE 7 EEPROM initialization 128
ST_ZERO 8 axes resetting 256
ST_EDIT 9 program editor 512
ST_EMERG 10 emergency 1024
ST_APPR 11 self-learning state 2048

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

N.B. Variable available from firmware version 3.76 on.

VN388 VN_LAST_PRG_REC
Variable VN388 contains the number of the last program sent to the NC and correctly stored.

Page 354 M0000464


Programming Manual Chapter 3: Variables

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:

Hours Minutes Seconds Day Month Year Day of the Week

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:

VN390 Value (Error Code) Meaning


-1 Program number specified in VN390
not valid (>9999)
-2 Data program specified in VN390 not
present
-3 The program specified in VN390 is
not a data program
-4 The serial port (COM) specified in
VN391 in the initialization phase is
not valid

N.B. VN390 is only available for dedicated firmware.

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:

Serial port used Value in VN391


Com1 1
Com2 2
Com3 (if available) 3

Correct initialization is reported by the value 8192 in VN391.


After initialization, VN391 indicates the state of the NC as regards the reading of the barcode.

M0000464 Page 355


Chapter 3: Variables Programming Manual

If the reading of the barcode is successful, VN391 contains the following coding:

High byte Low byte


Number of steps of the data Number of characters received
program processed

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:

VN391 Value Meaning


8192 Initialization correctly executed
16384 Release serial port and disable barcode
management
I*256+Num Number of steps processed (i) *256 +
Num characters received
-n String reception timeout; n = number
of characters received

N.B. VN391 is only available for dedicated firmware.

VN392 VN_COPY_VA
VN392 (VN_COPY_VA) allows copying a VA t another VA. VN392 contains:

- Index of the source VA on the High byte


- Index of the destination VA on the Low byte

BYTE BYTE
HIGH LOW

VA destination index
VA source index

Example:
If you want to copy VA2 to VA10, VN392 is set to:

VN392 = 2 * 256 + 10 = 522

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.

Page 356 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Also see paragraph NC Master Protocol in this manual.

VN395 VN_CN_MASTER_NUM_SENT
VN395 contains the number of packets successfully transmitted (send request + return response)
in managing the NC Master Protocol.

N.B. Also see paragraph NC Master Protocol in this manual.

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

N.B. Variable available from firmware version 4.23 on.

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.

M0000464 Page 357


Chapter 3: Variables Programming Manual

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.

N.B. Also see the paragraph Instruction Priorities in this manual.


N.B. Variable available from firmware version 4.33 on.

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.

BIT VALUE NAME MEANING


0 0 OMNI_ACTIVE Single State active
1 1 OM_OP_AUTO NC with Automatic cycle active in Single State
2 4 OM_OP_MAN NC with Manual active in Single State
3 8 OM_OP_SER NC with Serial operation in progress in Single State
4 16 OM_OP_TEST NC with Test active in Single State
5 32 OM_OP_TSTVEL NC with Speed Test active in Single State
6 64 OM_OP_SEMI NC with Semi-automatic active in Single State
7
8 256 OM_OP_ZERO NC with Resetting active in Single State
9
10 1024 OM_OP_EMERG NC with Emergency active in Single State
11 2048 OM_OP_ERR_MAIN NC with Main error active

N.B. Also see the paragraph Single State in this manual.


N.B. Variable available from firmware version 4.33 on.

Page 358 M0000464


Programming Manual Chapter 3: Variables

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.

N.B. Also see variable VB428.


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

VN403 VN_OM_TSTVEL_AX_NUM
In Single State, VN403 contains the number of the axis on which to perform the speed test.

N.B. See documentation relative to VB430 and VB429.


N.B. Also see the paragraph Single State in this manual.
N.B. Variable available from firmware version 4.33 on.

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.

N.B. Variable only available on palm computers.

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.

N.B. Variable available from firmware version 4.36 on.

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.

N.B. Variable only available on palm computers. Also see VN385.


N.B. Variable available from firmware version 4.35 on.
N.B. Also see documentation in the paragraph I/O Descriptors in this manual.

M0000464 Page 359


Chapter 3: Variables Programming Manual

VN407 VN_LAST_PRG_LIST
See description VN406.

N.B. Variable only available on palm computers. Also see VN385.


N.B. Variable available from firmware version 4.35 on.
N.B. Also see documentation in the paragraph I/O Descriptors in this manual.

VN408 VN_PRG_BASE_LIST
See description VN406.

N.B. Variable only available on palm computers. Also see VN385.


N.B. Variable available from firmware version 4.35 on.
N.B. Also see documentation in the paragraph I/O Descriptors in this manual.

VN409 VN_COP_WARN_ERR
VN409 contains the warning number on a Can Bus network.

N.B. Variable available from firmware version 4.36 on.

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.

128 64 32 16 8 4 2 1 Value to be set

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

NC Prg.

ISO Prg.

Data Prg.

With Range

With Specification

Also hidden

Page 360 M0000464


Programming Manual Chapter 3: Variables

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.

BIT Name Description


0 NC Prg. List with NC programs
1 ISO Prg. List with ISO programs
2 Data Prg. List with user programs. In this case, you must specify the
base matrix of the user programs to be displayed. To do this,
you must enable bit 6 of VN410 and specify the number of the
base matrix in VN408
3 Not used
4 Not used
5 With Range Enables the possibility of displaying only programs whose
numbers are found within a range. In addition to enabling
VN410 with bit 5, you must specify the limits of the display
interval. The lower limit is specified in VN406, while the
upper limit of the interval is specified in VN407 (limits
inclusive)
6 With Enables the possibility of specifying the number of the
Specification program of the base matrix if the list also contains user
programs (bit 2 of VN410 active). In the case in which bit 6 of
VN385 is active, the number of the base matrix is specified in
VN408.
7 Also hidden Enables the possibility of also displaying programs hidden by
machine parameter in the list.

N.B. Variable available from firmware version 4.37 on.


N.B. Variable VN410 has the same functionality as VN385 with the only exception that
VN410 is used when you implement a project with User Program Manager object while
VN385 is used in the NC Program Editor with the GOSUB instruction.

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.

N.B. Variable available from palm firmware version 1.34 on.


N.B. Also see documentation in the paragraph Key Codes in the Appendix of the
Programming Manual.

M0000464 Page 361


Chapter 3: Variables Programming Manual

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.

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

N.B. Variable available from firmware version 4.43 on.


N.B. Also see instruction VEL Ax = m of change of speed.

VN414 VN_EMRG_ERR_COD
In Sipro systems with CANopen interface, it displays the number of the network that generated
the error.

N.B. Variable available from firmware version 5.01 on.


N.B. Also see variable VB335, which displays the number of the node 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

N.B. Variable available from firmware version 5.01 on.


N.B. See also variables VN414, which displays the number of the network, and VB335,
which displays the number of the node, that generated the error.

Page 362 M0000464


Programming Manual Chapter 3: Variables

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
|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
+

Index of the VA from which to


copy the name to assign to a new
program (VA0 is excluded).

1 = disables the reacquisition


of the program name.

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)

M0000464 Page 363


Chapter 3: Variables Programming Manual

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.

N.B. Variable available from firmware version 5.13 of 09/09/2004 on.

15 VQ97 This function is only implemented in specific firmwares.

VN420 VN_CNT_RTC_FULL
Counter closing routine interrupt system (RTC).

N.B. Variable is read only.


N.B. Variable available from firmware version 5.61 of 26/10/2007 on.

VN421 VN_FLOPPY_STATE
The VN421 contains the Floppy state.

Page 364 M0000464


Programming Manual Chapter 3: Variables

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).

M0000464 Page 365


Chapter 3: Variables Programming Manual

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

Type of VN374 circular connector Meaning VQ97 value


0 No meaning
1 distance from the transition point in [mm]
2 radius of connector in [mm]

N.B. Variable available from firmware version 3.61c on.


N.B. Also see the documentation for VN374.

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.

N.B. Variable available from firmware version 4.35 on.

VQ257 VQ_MENU_LEVEL_PALM
VQ257 is used by the PLC to select functions from the standard menu on the palm computer.

N.B. Variable available from firmware version 4.35 on.

Page 366 M0000464


Programming Manual Chapter 4: Program Management

M0000464 Page 367


Chapter 4: Program Management Programming Manual

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.

Page 368 M0000464


Programming Manual Chapter 4: Program Management

List Programs in memory


No. PROGRAMS 5 Free Memory: 15432
Prg. Name Steps Bytes
1 Welding 5 50
3 Milling 10 66

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].

M0000464 Page 369


Chapter 4: Program Management Programming Manual

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:

Program already exists:


Confirm? <ENTER> = YES <MENU> = NO

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:

Program inexistent; press any key

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.

Total program deletion


By activating function [6] from the Program Management menu it is possible to display
information about the programs present in memory. To access this function, you must enter the
password consisting of the numbers 4 - 5- 6 - 2 - 5 - 8.
To proceed to deletion, you must type key [7], otherwise, to exit without deleting, the [MENU]
key.

Page 370 M0000464


Programming Manual Chapter 4: Program Management

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.

M0000464 Page 371


Chapter 6: Automatic Programming Manual

Chapter 5

Manual Movement
We analyze the manual movement function which permits
moving the axes directly from the keyboard or from the axis
inputs.

Page 372 M0000464


Programming Manual Chapter 6: Automatic

NOTE The single manual movement, described in the following


chapter, has been overcome by the advent of the single state.
It is valid only multiple manual movement .

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.

Manual Movement in the SIAX150 and SIAX300C


When it leaves Sipro, the standard PLC program in the Numerical Control provides for the
following commands:
the JOG+ key, positive movement of the selected axis.
the JOG- key, negative movement of the selected axis.
You select the desired axis by typing a number on the keyboard and confirming it with
[ENTER].
Using the [] and [] keys, you can change the manual speed, i.e., the speed with which axis
movements occur (this change has a local effect, i.e., the Manual Speed parameter in Machine
Parameters is not changed).
Obviously, if Speed Override is active, this option has no effect.

M0000464 Page 373


Chapter 6: Automatic Programming Manual

Example of PLC logic for manual movement in the SIAX150 and


SIAX300C

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.

Page 374 M0000464


Programming Manual Chapter 6: Automatic

Manual movement in the SIAX110 and SIAX110L


When it leaves Sipro, the standard PLC program in the Numerical Control provides for the
following commands:
key positive movement of axis 1
key negative movement of axis 1
key positive movement of axis 2
key negative movement of axis 2
The selection of the axis to move is made in Automatic mode and the manual speed is that set in
the axis parameters.

Example of PLC logic for manual movement in the SIAX110 and


SIAX110L

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.

M0000464 Page 375


Chapter 6: Automatic Programming Manual

In this section the movement of the selected axes is defined.


The pressing of the keys and (codes 62 and 59) corresponds to JOG+.
The pressing of the keys and (codes 60 and 58) corresponds to JOG-.
VB417 allows keeping the movement command active so long as a key is pressed.

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.

Page 376 M0000464


Programming Manual Chapter 6: Automatic

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:

VB296 JOG+ axis 1 VB336 JOG- axis1


VB297 JOG+ axis 2 VB337 JOG- axis2
VB298 JOG+ axis 3 VB338 JOG- axis3
VB299 JOG+ axis 4 VB339 JOG- axis4

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.

M0000464 Page 377


Chapter 6: Automatic Programming Manual

Chapter 6

Automatic
We analyze the Automatic function, which allows the
execution of programs.

Page 378 M0000464


Programming Manual Chapter 6: Automatic

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

When you enter Automatic the following screen appears:

IN STOP Prog 4 Step 1 St 0


LOC N0 Target Current Ovd 100.0 %
AX 1 0.00 0.00 *

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.

M0000464 Page 379


Chapter 6: Automatic Programming Manual

Example of PLC logic for automatic in the SIAX150 and SIAX300C

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.

Example of PLC logic for Automatic in the SIAX110 and SIAX110L

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.

Page 380 M0000464


Programming Manual Chapter 6: Automatic

Selection of the program to execute


In the Automatic page, when the [PRG] key is pressed, the words: "Executing Program No.";
appear and, at this point, it is possible to set the number of the program that you wish to execute
(as in previous versions), or press the [F1] key.
When the [F1] key is pressed, a window appears with the list of visible programs present in
memory; the Number and Name are displayed for each program.
With the [] and [] keys and the [PAGE] key, it is possible to move the cursor to the desired
program and confirm it with the [ENTER] key.

Displaying the executing program


When you press the [F3] key, a window appears that displays the Number, Name, Step and
current State of the active programs. When you press the [MENU] key, you exit from the page.
N.B.: The [F3] key is active if Binary Variable VB390 is 1.

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.

M0000464 Page 381


Chapter 6: Automatic Programming Manual

Local/Remote control mode


The Numerical Control offers the possibility of also having REMOTE control, which can also be
used to limit the menus and possible settings to the end user.
The control mode in which the NC is found is given by VB274 (0 = LOCAL, 1 = REMOTE) driven
by the PLC (see chapter Variables Managed by the PLC*) and is displayed on the screen by the
word LOC or REM in the various menus (see relative screens).

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.

Example of PLC logic for LOCAL/REMOTE management

This section performs the decoding of the keys:


- code 123 corresponds to CODE which is activated by the key sequence SHIFT and CODE.
- code 72 corresponds to key F8 (in the SIAX110, it is possible to use the AUT/MAN key, which
has code 130).

Page 382 M0000464


Programming Manual Chapter 6: Automatic

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.

M0000464 Page 383


Chapter 7: Tool Parameters Programming Manual

Chapter 7

Tool Parameters
The Tool Parameters function is analyzed, which allows
setting the values of interest for the tools used.

Page 384 M0000464


Programming Manual Chapter 7: Tool Parameters

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.:

Tool length: 0.0

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).

M0000464 Page 385


Programming Manual Chapter 8: Origins

Chapter 8

Origins
The Origins function is analyzed, which allows setting
several origins of reference with respect to the absolute
origin.

M0000464 Page 387


Chapter 8: Origins Programming Manual

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.

However, it is possible to set different working origins (up to a maximum of 20).


This allows performing work with an origin of reference on the piece.
If, for example, you wish to execute the same work on several pieces present on the work
surface, it is possible to use the same program and change only the origin of reference.

These origins always refer to the absolute origin (Origin 0).


The indication of the active origin is displayed on the upper left of the screen (near the word
LOC or REM).
For example, the text LOC N0 indicates that origin 0 is active.

There are two methods available for setting new origins:


1) Setting the positions of the origins directly
2) Self-learning the origins.

Setting the positions directly


When you know the positions of the origins with respect to Origin 0, it is possible to set them in
the ORIGINS menu (item 8 on the Main Menu).
To access the setting, you must type the password: 4 - 5 - 6 - 2 - 5 - 8.
The following screen will then appear:

ORIGIN 1
1 - AX1 0.000
2 - AX2 0.000
3 - AX3 0.000
4 - AX4 0.000

This page shows the positions of origin 1 with respect to origin 0.


To set the desired origin, you must type the values and confirm with [ENTER]. To go to the
positions of the next origin, press the [PAGE] key. To return to the Main Menu, use the [MENU]
key.

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.

Page 388 M0000464


Programming Manual Chapter 8: Origins

Self-learning the origins


It is possible to set the origins automatically, rather than from the keyboard.
By using Self-learning of the origins, it is possible to move the axes in Manual to the desired
point and set the relative positions as the origin of reference.
This Self-learning must only be performed after the Resetting of the axes has been carried out, in
order to have an exact reference with the machine zero.

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.

Other useful instructions for managing origins


There are also other instructions available that allow managing the origins from the program.

Instruction 49 INCR ORG m AX n VAL q allows adding an offset or increment q to the


position of an origin m relative to an axis n.
Instruction 59 INCR ORG m AX n VAL q allows setting a value q in the desired origin m
relative to an axis n.

It is, thus, possible to set the positions of the origins directly from a program.

M0000464 Page 389


Chapter 8: Origins Programming Manual

Example of PLC logic

Page 390 M0000464


Programming Manual Chapter 8: Origins

M0000464 Page 391


Chapter 8: Origins Programming Manual

Page 392 M0000464


Programming Manual Chapter 9: User Programs

Chapter 9

User programs
The Numerical Control allows the management of Data
Setting programs, called User Programs.

M0000464 Page 393


Chapter 9: User Programs Programming Manual

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:

The number of slabs (we will use VN120)


The thickness of the slab (we will use VQ100)

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:

#name Base Matrix


#prog 9000

: 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):

Page 394 M0000464


Programming Manual Chapter 9: User Programs

VNs for managing User Programs


VN Function
VN50 base matrix no.
As was said above, the base matrix is an editable NC program and, therefore, like
all NC programs, it has an identification number (in the base matrix example
shown above, it is #9000). At the time you wish to work on user programs, you
must specify which base matrix you are referring to. To do this, you must indicate
the number that identifies the base matrix in VN50.
VN51 edit matrix no.
Like the base matrix, the edit matrix is also an editable NC program and it also
has an identification number (in the base matrix example shown above, it is
#9001). At the time you wish to work on user programs, you must specify which
edit matrix you are referring to by indicating the identification number of the edit
matrix in VN51.
In the case in which the edit matrix provides for the presence of a single editable
step at a time, then the base and edit matrices coincide and the value of VN50
coincides with that of VN51.
VN52 VA length (H byte) and data coding (L byte)
VN52 consists of two bytes with the following meaning:

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

Example: if VN52 contains the number 6401, its meaning is:

640110 = 190116 from which:

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.

M0000464 Page 395


Chapter 9: User Programs Programming Manual

VN54 no. of active user program


VN54 contains the number that identifies the selected user program.

NOTE
Writing the program number in VN54 is equivalent to writing the program number
in VN53 together with writing the LOAD command in VN58.

VN55 no. of the current step of the active program


VN55 contains the number that identifies the step on which you are working. The
step on which you are working belongs to the user program specified in VN54.

NOTE
Writing the number of the step of the active program in VN55 has the effect of
loading that step.

VN56 no. of (total) steps present in the active program


Each user program has a total number of steps. At the time in which you select a
user program in the phase of creating, renaming, deleting (VN53) or in the editing
phase (VN54), its total number of steps is specified in VN56.
VN57 additional parameter
Currently not used; implemented for future developments
VN58 Command VN
Operations can be performed on user programs. Each operation is identified by a
code according to Table 2 explained below. In VN58, you enter the code of the
command that you wish to execute on the selected user program (selection of the
program with its number specified in VN53 in the case of creating, renaming and
deleting or specified in VN54 in the case of just editing its steps).
In the case in which the operation on the user program specified in VN58 is
successful, the Numerical Control sets VN58 to the value 0 at the end of the
operation. Otherwise, if the operation fails, the Numerical Control sets it to the
error code of the command, whose coding is illustrated in Table 3, below.
VN59 State VN
The Numerical Control allows knowing the state of the system that is managing
the user programs. VN59 contains a number that identifies this information. VN59
is managed by bits. Each bit has a meaning. When a bit is active, it means that the
user program manager is in a state corresponding to the coding shown in Table 5
below.
VN60 return parameter
At the end of executing an operation on a user program (the operation specified in
VN58), the Numerical Control returns a value in VN60 that represents the
outcome of the operation. In the case in which the operation is successful, the
value will be 0; otherwise, if the operation fails, the value specified below in
Table 4 is returned.

VN61 Header Matrix VN


In the case of a type 2 data Program (with Step Header), it indicates the program
number that represents the Header matrix.

Page 396 M0000464


Programming Manual Chapter 9: User Programs

VN62 Header Step String Length VN


In the case of a type 2 data Program (with Step Header), it indicates the number of
characters anticipated for the alphanumeric variables contained in the header
matrix.

VN63 VN step offset in DEL and INS


(valid only if enabled by the command VN, in this example, VN58)
when an EDIT is in use, in the cancel step (DEL) and insert step (INS)
instructions, it allows specifying the step offset with respect to the current step.

VN64 VN step number


(valid only if enabled by the command VN, in this example, VN58)
indicates the step number to load when the LOAD_STEP command (command
19) is used.

Table 1

M0000464 Page 397


Chapter 9: User Programs Programming Manual

User Program Command Coding (VN58)

Command Code Operation


0 No command
1 Create new program
2 Load already existing program
3 Save program
4 Save program with name
5 Delete program
6 Copy program
7 Change program name
8 Load program and set its identification number to 0
9 Set-up program in work buffer
10 Loading data stream
11 Saving data stream
14 Loading program without setting step 1
15 Update work buffer header
16 Append a new step to the end of the steps in the selected program
(VN54)
17 Insert a new step at the current position in the selected program (VN54)
18 Delete the step on which you are positioned from the selected program
(VN54)
19 Load the step of the selected program (VN54)
20 Reload the step of the selected program (VN54)
21 Save the step of the selected program (VN54) on which you are
positioned
22 Disable the read only step loading mode
(see following note)
23 Enable the read only step loading mode
(see following note)
24 Disable the Block on the Display of Empty Steps in a Multiple-Step Edit
Matrix (Default)
25 Enable the Block on the Display of Empty Steps in a Multiple-Step Edit
Matrix
26 Disable the Automatic Overwriting of the Program If Already Existing
(Default)
27 Enable the Automatic Overwriting of the Program If Already Existing
(Default)
28 Assign VN for last command code
30 Doesn't use new VNs
31 Uses new VNs
Table 2

Page 398 M0000464


Programming Manual Chapter 9: User Programs

NOTE There are two modes for loading a step of a user program.

Read Only Mode: The data of the step specified in VN55 is


loaded in the support variables (base matrix variables) and the
data relative to the previously loaded step is NOT saved in
memory.

Normal Mode: The data of the step specified in VN55 is loaded


in the support variables (base matrix variables) and the data
relative to the previously loaded step is saved in memory.

M0000464 Page 399


Chapter 9: User Programs Programming Manual

Code of the operation that generated an error (VN58)

Error Code Operation in which the error occurred


0 No Error
-1 create new program
-2 load already existing program
-3 save program
-4 Save program with name
-5 Delete Program
-6 copy program
-7 redimension the program
-8 load program and set its identification number to 0
-9 Error set-up program in work buffer
-10 Error Loading data stream
-11 Error Saving data stream
-14 Error Loading program without setting step 1
-15 Error Update work buffer header
-16 Error append a new step to the end of the steps of the selected user
program (VN54)
-17 Error insert a new step at the current position of the selected user program
(VN54)
-18 Error delete the current step of the selected user program (VN54)
-19 Error load the step of the selected user program (VN54)
-20 Error reload the step of the selected user program (VN54)
-21 Error save step
-28 Error assign VN for last command code
Table 3

Page 400 M0000464


Programming Manual Chapter 9: User Programs

Error Type Code (VN60)

Error Code Meaning


0 Operation executed correctly
-1 The specified matrix program does not exist
-2 The matrix program is not an NC program
-3 Maximum number of variables exceeded
-4 Data structure not managed
-5 Unanticipated variable type in matrix program
-21 Base matrix not loaded in memory
-22 Requested step non-existent
-23 Data structure type not recognized
-24 Data structure type not managed
-25 Head matrix not loaded in memory
-26 Step type not managed
-41 Program number not valid
-81 Edit matrix not loaded in memory
-83 Data structure type not recognized
-84 Data structure type not managed
-101 Step number not valid
-121 Data structure type not managed
-122 Data structure type not managed
-141 Data structure type not managed
-161 Storage not possible because cycle in RUN
-162 Error deleting program
-181 The requested program is not present
-182 The requested program is not a data program (lacks instruction 255)
-183 Data structure type not managed
-201 Storage not possible because cycle in RUN
-202 Program name absent and number = 0
-203 Program number not valid (number not between 1 and 9999)
-204 There is a program with the same name
-205 There is a program with the same number
-206 Insufficient memory for storing the program
-207 Error storing in Flash
-208 No program number available
-209 Program in work area not valid
-210 Program number = 0
-221 Deletion not executed because number of steps present <=1
-222 Data structure type not recognized
-223 Data structure type not managed
-224 Step offset wrong
-241 No step present
-242 Data structure type not recognized
-243 Data structure type not managed
-261 Edit matrix not loaded in memory
-263 Data structure type not recognized
-264 Data structure type not managed
M0000464 Page 401
Chapter 9: User Programs Programming Manual

-265 Current step number not valid


-301 The requested program is not present
-302 The requested program is not a data program
-303 Index of the first VN wrong
-304 Variable type not managed
-305 Wrong parameters
-306 Structure type not managed
-321 Cycle running: storage not possible
-322 Variable type not managed
-323 Wrong parameters
-324 Index of the current VN wrong
-325 No sequence entered
-326 Structure type not managed
-327 Insufficient memory for storage
-328 No program number available
-329 Program number not valid
-330 Error storing program
Table 4

User Program Management State Codes (VN59)

Bit Number Management State


0 Program being edited
1 Step being loaded
2 Step being saved
3 Program being loaded
4 Program being saved
5 Program being deleted
6 Read only step
7 Generic operation in progress
8 Program name null
9 Waiting long command
10 No empty step mode
11 Overwrite on SAVE AS
12 Uses new VNs
Table 5

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.

Page 402 M0000464


Programming Manual Chapter 9: User Programs

Creating a "User Program"


The operation of creating a "new user program" makes available a user program consisting of a
single step (step 1); to this, others can be added with the "append step" and "insert step"
commands.

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.

USER PROGRAM MANAGER Object

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.

M0000464 Page 403


Chapter 9: User Programs Programming Manual

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

Page 404 M0000464


Programming Manual Chapter 9: User Programs

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.

M0000464 Page 405


Chapter 9: User Programs Programming Manual

Figure 3-64

Page 406 M0000464


Programming Manual Chapter 9: User Programs

Implementation of New Program Function


After having set the graphic page with the insertion of the objects described above and, most of
all, the user object, you can set the latter to perform the operations of creating a user program.
To do this, in the Parameters panel of the User Program Manager object, we set the HotKey
parameter for the new program function with the key that we wish to use to execute the new
program function (in the example, PROG).

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.

M0000464 Page 407


Chapter 9: User Programs Programming Manual

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

Number Object Associated to VN53


The number object highlighted in the figure above is set as follows.

Figure 3-69

Page 408 M0000464


Programming Manual Chapter 9: User Programs

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.

Number Object Associated to VN54

Figure 3-70

This object is set as follows

Figure 3-71

This object has a concealment mask associated to VN80, too.


The concealment mask allows activating one object or the other depending on whether bit 2 of
VN80 (for the number object associated to VN53) or bit 1 of VN80 (for the number object
associated to VN54) is active. The masking of one object or the other is done on the PLC, as
explained in the paragraph PLC of the Example.

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.

M0000464 Page 409


Chapter 9: User Programs Programming Manual

Link Object Associated to VN54

Link Object Associated to VN53

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.

Page 410 M0000464


Programming Manual Chapter 9: User Programs

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.

M0000464 Page 411


Chapter 9: User Programs Programming Manual

Implementing the Add Step Function


After creating a new program, you can add new steps to it. To do this, you must enter the key
associated with this operation in the Append box of the Step Management HotKey section of
the User Program Manager object. As can be seen in the following figure, in our case we entered
the [INS] key.

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

Page 412 M0000464


Programming Manual Chapter 9: User Programs

This link object is set as follows.

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:

M0000464 Page 413


Chapter 9: User Programs Programming Manual

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:

Page 414 M0000464


Programming Manual Chapter 9: User Programs

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.

M0000464 Page 415


Chapter 9: User Programs Programming Manual

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.

Page 416 M0000464


Programming Manual Chapter 9: User Programs

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

The page created has the following objects:

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:

Page 418 M0000464


Programming Manual Chapter 9: User Programs

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

The page created has the following objects:

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

M0000464 Page 419


Chapter 9: User Programs Programming Manual

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.

M0000464 Page 421


Chapter 9: User Programs Programming Manual

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

Page 422 M0000464


Programming Manual Chapter 9: User Programs

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).

NOTE Each user program is identified by a number and a name. It can be


managed in the Numerical Control by referring just to the number, just
to the name, or to both.

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.

M0000464 Page 423


Chapter 9: User Programs Programming Manual

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.

Page 424 M0000464


Programming Manual Chapter 9: User Programs

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:

M0000464 Page 425


Chapter 9: User Programs Programming Manual

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.

Page 426 M0000464


Programming Manual Chapter 10 : Appendix

Chapter 10

Appendix
Various subjects are described (programs, utilities,
connections, etc.) that can be useful in programming SIPRO
Numerical Controls.

M0000464 Page 427


Chapter 10: Appendix Programming Manual

Writing a program with any editor


N.B. The information that follows is relative to development systems preceding SiaxED.
The SiaxED development system incorporates all the functions (editor, compilation, etc.)
described in this paragraph (see the relative SiaxED manual).

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.

Compiling a program with CSX


The CSX program allows compiling program (*.src) files written with a text editor or through
the easy case of the SiaxED editor, into user files (i.e., in machine language), to then be
transferred to the SIAX.
To compile a program, you must type csx <filename> ; for example, for program
prg1000.src, you must type csx prg1000.src.

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
-----------------------------

CSX - PRG1000.src : generated the file PRG1000.EEP

The compiler thus generates a user file called PRG1000.eep.


The user files produced in compilation always have the extension "eep" and can be transferred to
the control using the SiaxED program.

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.

Page 428 M0000464


Programming Manual Chapter 10 : Appendix

Example:
-----------------------------
SIPRO - VERONA
CSX - ver 4.9a - 22 Oct 1997
-----------------------------

PRG1000.src: line 23 - illegal instruction

*** 1 - compilation errors ***


In this case, you must correct the errors by referring to the directives shown in the file
CSX.DOC, and repeat the compilation.
The user files produced by the compilation always have the extension "EEP".
These must then be transferred to the control using a transmission program: SiaxED or TXP.

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

PLC development system

ISO PLC o WPLC

M0000464 Page 429


Chapter 10: Appendix Programming Manual

Utilities provided with the program


N.B. The information that follows is relative to development systems preceding SiaxED.
The SiaxED development system incorporates all the utilities described in this paragraph
(see the relative SiaxED manual).

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).

Getvb.exe and Getvn.exe


These are programs that, starting from the PLC files <name>.FLG and <name>.AFL in machine
language format (containing the list of Binary Variables and Numeric Variables with relative
comments), generate the relative files <name>.VB and <name>.VN in text format.
A brief description of these functions is contained in the file PLCVAR.DOC

Setvb.exe and Setvn.exe


These perform the opposite operations of GETVB and GETVN. Starting from the files
<name>.VB and <name>.VN in text format, they generate the relative PLC files <name>.FLG
and <name>.AFL.
A brief description of these functions is contained in the file PLCVAR.DOC

Page 430 M0000464


Programming Manual Chapter 10 : Appendix

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.

The syntax is:


STDPRINT [ProgNum]
where ProgNum is an optional parameter that specifies the number of the program you wish to
convert; if this parameter is not specified, the program asks for the number.

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.

Since it is used through the function STDEDIT.BAT, its syntax is as follows:


STDEDIT
The editor will then ask for the number of the program that you wish to open

M0000464 Page 431


Chapter 10: Appendix Programming Manual

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.

Alphanumerical display (4 x 40 , 4 x 20)


The file of the logo should be a text file in which are defined lines that you want to
display made up of a first line with the characters ML followed by:
- 4 lines of maximum 39 characters for display 4 x 40;
- 4 lines of maximum 19 characters for display 4 x 20.

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).

Example (File Sipro.txt):

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.

Key pressed Code Key pressed Code


ENTER 13 HELP 63
+/- 45 PRG 125
. 46 SHIFT 124
0 48 MENU 77
1 49 PAGE 80
2 50 MEMO 83
3 51 INS 126
4 52 DEL 127
5 53 CODE 123
6 54 VAR 86
7 55 MAN/AUT 130
8 56 EDIT 159
9 57 X 88
F1 65 Y 89
F2 66 Z 90
F3 67 R 82
F4 68 ABC 99
F5 69 DEF 102
F6 70 GHI 105
F7 71 JKL 108
F8 72 MNO 111
F9 73 PQR 114
F10 74 STU 117
F11 75 VWX 120
F12 76 YZ 122
F13 131 START 128
F14 132 STOP 129
F15 133 JOG+ 140
+ 36 JOG- 141
- 64
59
58
62
60

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.

M0000464 Page 433


Chapter 10: Appendix Programming Manual

Key codes for the palm computer keyboard


In addition to the key codes in the table in the preceding paragraph, the palm computer has other
codes for its particular keys. These codes are shown in the table below.

Key pressed Code Key pressed Code


X+ 160 SHIFT X+ 180
X- 161 SHIFT X- 181
Y+ 162 SHIFT Y+ 182
Y- 163 SHIFT Y- 183
Z+ 164 SHIFT Z+ 184
Z- 165 SHIFT Z- 185
+ 166 SHIFT + 186
- 167 SHIFT + 187
+ 168 SHIFT + 188
- 169 SHIFT - 189
+ 170 SHIFT + 190
- 171 SHIFT - 191
SHIFT PAGE 196
SHIFT SAVE 197
SHIFT EDIT 198
SHIFT PROG 199
SHIFT +/- 200
SHIFT . 201

Page 434 M0000464


Programming Manual Chapter 10 : Appendix

Use of the shift register


This function is only present in dedicated firmware versions.
The PLC has a Shift Register whose maximum size is 1023 samples: this means that the
maximum delay between the incoming data and the same data exiting is 1023 latch impulses.
The variables for managing it are:

VB368 Data insertion latch


VB369 Data extraction latch
VB370 Input data
VB371 Output data
VB372 Clear shift register

VN300 Shift register delay (range 0-1023)


(Indicates the number of elements present in the Shift Register)

Reset Shift Register


At every rising front of the DATA INSERTION LATCH variable (VB368) or of the DATA
EXTRACTION LATCH variable (VB369) and if the CLEAR variable (VB372) is active, all the
data contained in the shift register is zeroed; the variable VN300 is not altered.

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.

M0000464 Page 435


Chapter 10: Appendix Programming Manual

Serial connection with a PC


The characteristics of the cable that is used for the serial connection between the Numerical
Control with a PC are shown below.
Using this cable, you can talk with both data transmission systems and NC programs (TXP or
SiaxED), and the PLC Software.
In the first case, the Numerical Control must be in the screen relative to TALKING WITH THE
PC (in the Program Management menu) or in the AUTOMATIC page in a state of STOP.
On the other hand, talking with the PLC Software is always possible, except when the Numerical
Control is in the TALKING WITH THE PC screen.
In machine parameters, the parameter PLC COM must be 1.

Page 436 M0000464


Programming Manual Chapter 10 : Appendix

In the case of a 25-pin connecter, the cable is as follows:

Serial connection with two PCs


In the event that you want to connect two Personal Computers to the Numerical Control at the
same time, one to use the SIAXPC (on COM1) and one to use the PLC (on COM2), it is possible
to use both serial ports available according to the following layout:

N.B.: In machine parameters, the parameter PLC COM must be set to 2.

In this case, the SIAX, as regards the NC, only talks on COM1, while as regards the PLC, only
on COM2.

M0000464 Page 437


Chapter 10: Appendix Programming Manual

Enabling Management Manual Brake onTW3 Drives

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)

Page 438 M0000464


Revisions
Version Date Changes
2.5 30/08/05 Added VB426, VB438-440, VN414-419, reused VB283; creation of distinct
VARIABLE STRUCTURE tables with PLC Ladder: one for
Siax80/100/110/110L/150/300 and one for Siax200; added note about VB301.
Add NC Functions list. Addend ISO instruction M801.
Up date ISO and Automatic Cycle codes.
Up date VN334,VN375,VN401 tables. Addend chapter User Programs.

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.8 31/01/08 Update FUN61. Update chapter NC Master Protocol

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.

3.0 08/09/09 Update Instruction change of speed (85) according to VN413.

3.1 25/11/09 Update Instruction 178 and FUN200


3.2 02/04/10 Added note on Tools Instructions G40.. e VQ9799.
3.3 28/05/12 Update function section. Update MODBUS protocol.
Added Enable Management Manual Brake on TW3 Drives

Copy conforms to the original


Signature ________________

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 ______________________

You might also like