Sei sulla pagina 1di 358

OPENcontrol

Manuale di Programmazione

NUMERO DOCUMENTO: 45004606R


REF. RELEASE: 5.0.2
EDIZIONE: 13
AUTORE: PRIMA ELECTRO S.p.A.
DATA: Febbraio 2018

Il contenuto di questo manuale è a solo scopo illustrativo e può essere soggetto a variazioni senza che ne
sia data comunicazione preventiva. La Prima Electro S.p.A. non assume responsabilità per errori o
conseguenti danni che possano risultare dall'uso o da errate interpretazioni delle procedure contenute in
questa pubblicazione.

COPYRIGHT 2017- Prima Electro S.p.A.


Tutti i diritti riservati. Questo documento non può essere riprodotto, né interamente né in parte, senza
autorizzazione scritta.
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Edizione Data Note Autore

13 Febbraio 2018 Prima Electro S.p.A.

45004606R 2
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Contenuto

1. Prefazione ......................................................................................................................................... 10
1.1 Introduzione ............................................................................................................................................................................... 10
1.1.1 Riferimenti ................................................................................................................................................ 10
1.1.2 Comandi .................................................................................................................................................... 10
1.1.3 Convenzioni sintattiche............................................................................................................................. 10
1.1.4 Terminologia ............................................................................................................................................. 11
1.2 Attenzione e Note ................................................................................................................................................................... 11

1.3 Legenda ....................................................................................................................................................................................... 11

1.4 Aggiornamenti relativi alla presente edizione .................................................................................................................... 12

2. PROGRAMMARE CON IL SISTEMA OPEN .................................................................................. 13


2.1 I file di programma ................................................................................................................................................................... 13

2.2 Componenti del programma ISO ......................................................................................................................................... 14

2.3 Tipi di blocchi ............................................................................................................................................................................ 17


2.3.1 Blocchi di commento ................................................................................................................................ 17
2.3.2 Blocchi di definizione alias ........................................................................................................................ 17
2.3.3 Blocchi di movimento ............................................................................................................................... 18
2.3.4 Blocchi di assegnazione ............................................................................................................................ 18
2.3.5 Blocchi con codici triletterali ..................................................................................................................... 18

2.4 Funzioni programmabili ........................................................................................................................................................... 19


2.4.1 Coordinate degli assi ................................................................................................................................. 19
2.4.2 Coordinata R ............................................................................................................................................. 19
2.4.3 Coordinate I J – Funzione K ....................................................................................................................... 19
2.4.4 Funzione t ................................................................................................................................................. 20
2.4.5 Funzione F e attributi dinamici ................................................................................................................. 21
2.4.6 Funzione M ............................................................................................................................................... 21
2.4.7 Funzione S ................................................................................................................................................. 21
2.4.8 Funzione T ................................................................................................................................................. 22
2.4.9 Funzione h ................................................................................................................................................. 22
2.4.10 Funzioni G ................................................................................................................................................. 22

2.5 Codici G ...................................................................................................................................................................................... 23

2.6 Sincronizzazione ed esecuzione del programma ISO ...................................................................................................... 28


2.6.1 Sincronizzazione di default ....................................................................................................................... 28
2.6.2 Modifica della sincronizzazione di default ................................................................................................ 29
2.6.3 Interprete del Part Program...................................................................................................................... 29
2.6.4 Ordine di attuazione comandi ISO ............................................................................................................ 30
2.6.5 Limiti nella programmazione per numeri double ..................................................................................... 30
2.6.6 TRACE – Maschera per tracciare informazioni di log su file ..................................................................... 30

45004606R 3
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3. PROGRAMMAZIONE DEGLI ASSI ................................................................................................. 31


3.1 MOVIMENTO DEGLI ASSI .................................................................................................................................................... 31
3.1.1 Definizione del movimento degli assi ....................................................................................................... 31
3.1.2 ACCUR – Precisione di calcolo ................................................................................................................... 32
3.1.3 MOVNULL – Soglia di movimento nullo .................................................................................................... 32
3.1.4 ISOCOMP – Maschera delle compatibilità ................................................................................................ 32
3.1.5 G93 G94 G95 – Modalità di programmazione feed .................................................................................. 34
3.1.6 F – Definizione parametri dinamici e Feed di lavoro ................................................................................ 35
3.1.7 G00 – Posizionamento rapido degli assi ................................................................................................... 37
3.1.8 G01 – Interpolazione lineare..................................................................................................................... 38
3.1.9 G10 – Interpolazione lineare con parametri dinamici di rapido ............................................................... 39
3.1.10 G02 G03 – Interpolazione circolare .......................................................................................................... 40
3.1.11 G12 G13 – Interpolazione circolare oraria ed antioraria nello spazio ...................................................... 43
3.1.12 G14 – Interpolazione circolare per tre punti nello spazio......................................................................... 46
3.1.13 CET – Tolleranza di precisione in interpolazion circolare ......................................................................... 48
3.1.14 FCT – Soglia per cerchio completo ............................................................................................................ 49
3.1.15 ARM – Definizione della modalità di normalizzazione dell’arco ............................................................... 50
3.1.16 SHAPERR – Soglia per riduzione velocità in interpolazione circolare / KVGAIN – costante di riduzione
della velocità in interpolazione circolare .................................................................................................................. 54
3.1.17 Interpolazione elicoidale ........................................................................................................................... 55
3.1.18 G33 – Filettatura a passo costante o variabile .......................................................................................... 57
3.1.19 Assi rotativi ............................................................................................................................................... 61
3.1.20 Assi Rollover .............................................................................................................................................. 62
3.1.21 ROLLOPT – Movimento ottimizzato assi rollover...................................................................................... 65
3.1.22 Pseudo assi................................................................................................................................................ 65
3.1.23 Attributi del movimento ........................................................................................................................... 65
3.1.24 Assi diametrali........................................................................................................................................... 66
3.1.25 UDA – Assi duali ........................................................................................................................................ 69
3.1.26 SDA – Assi duali speciali ............................................................................................................................ 71
3.1.27 XDA – Assi Master/Slave ........................................................................................................................... 73
3.1.28 Dissociazione Master/Slave ...................................................................................................................... 78
3.1.29 Definizione/variazione rapporto di inseguimento .................................................................................... 78
3.1.30 Attivazione inseguimento ......................................................................................................................... 79
3.1.31 Disattivazione inseguimento ..................................................................................................................... 80
3.1.32 AXT – Controllo asse tangenziale .............................................................................................................. 82
3.1.33 AXS – Assi condivisi con il PLC ................................................................................................................... 86
3.1.34 AXF- Definizione assi ad inseguimento dinamico ..................................................................................... 87
3.1.35 CAM-Camma Elettronica........................................................................................................................... 89
3.2 Controllo delle coordinate e della dinamica ..................................................................................................................... 97
3.2.1 G17 G18 G19 – Selezione del piano di interpolazione .............................................................................. 98
3.2.2 G16 – Definizione del piano di interpolazione .......................................................................................... 99
3.2.3 G31 – Preparazione movimento per funzione ActiveReset .................................................................... 100
3.2.4 G26 G27 G28 G29 – Definizione della modalità dinamica ...................................................................... 101
3.2.5 Decelerazione automatica sugli spigoli in G27 ....................................................................................... 106
3.2.6 UDR / UVR– Forza dinamica / velocità di rapido .................................................................................... 106
3.2.7 URL / UWL - Abilita controllo feed-override ........................................................................................... 107
3.2.8 URLFVAL / UWLFVAL Valore di feed override con override abilitato ..................................................... 107

45004606R 4
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.9 DLA – Decelerazione Look Ahead ........................................................................................................... 108


3.2.10 LKH – Accesso alla dimensione della coda di Look Ahead ...................................................................... 109
3.2.11 CRV – Parametro di ottimizzazione velocità ........................................................................................... 110
3.2.12 MDA – Calcolo del massimo angolo di decelerazione ............................................................................ 112
3.2.13 MOM Manual Operating Modality ......................................................................................................... 113
3.2.14 EMGERR – Emergency to Error ............................................................................................................... 115
3.2.15 MOA – Motion Auxiliary ......................................................................................................................... 116
3.2.16 ERF – Errore di Forma ............................................................................................................................. 117
3.2.17 Jerk Limitation ......................................................................................................................................... 118
3.2.18 RAMP – Modalità di movimentazione .................................................................................................... 119
3.2.19 JRK – Jerk Constant ................................................................................................................................. 125
3.2.20 FEEDROT – Feed programmata solo sugli assi lineari ............................................................................. 126
3.2.21 FRM – Modifica comportamento con FEEDROT attiva ........................................................................... 127
3.2.22 RAPSTOP – Attivazione frenata rapida.................................................................................................... 128
3.2.23 ODH – Online Debug Help ....................................................................................................................... 129
3.2.24 MBA – MultiBlock retrace Auxiliary functions ........................................................................................ 131
3.2.25 REM – Ritorno automatico sul profilo a fine movimento ....................................................................... 131
3.2.26 G70 G71 - Unità di misura ....................................................................................................................... 132
3.2.27 G90 G91 G79 G78 - Programmazione assoluta, incrementale, riferita alle quote macchina (ABSOLUTE) o
riferita alla punta utensile (WORK) ......................................................................................................................... 133
3.2.28 G92 G98 G99 - Presetting dell'asse ......................................................................................................... 136
3.2.29 G04 G09 - Attributi della modalità dinamica .......................................................................................... 137
3.2.30 G05 G06 – Entrata in FeedHold a fine / inizio movimento ..................................................................... 138
3.2.31 t - Tempo di esecuzione blocco............................................................................................................... 138
3.2.32 DWT - Tempo di sosta ............................................................................................................................. 139
3.2.33 G93 – Velocità di avanzamento V/D ....................................................................................................... 139
3.2.34 VFF - Velocity Feed Forward ................................................................................................................... 140
3.2.35 FOP – Feed Override on Programmed Feed ........................................................................................... 140
3.3 Modifica del sistema di riferimento dell’asse ................................................................................................................... 141
3.3.1 SCF - Fattori di scala ................................................................................................................................ 142
3.3.2 MIR – Uso della lavorazione speculare ................................................................................................... 143
3.3.3 ROT – Rotazione del piano d’interpolazione........................................................................................... 145
3.3.4 UAO – Uso delle origini assolute ............................................................................................................. 149
3.3.5 UTO – Uso di origini temporanee ........................................................................................................... 150
3.3.6 UIO – Uso delle origini incrementali ....................................................................................................... 152
3.3.7 RQO – Riqualifica delle origini................................................................................................................. 153
3.4 Fine corsa e aree protette.................................................................................................................................................... 154
3.4.1 SOL – Fine corsa software ....................................................................................................................... 155
3.4.2 DPA – Definizione di un’area protetta .................................................................................................... 157
3.4.3 PAE – Abilitazione dell’area protetta ...................................................................................................... 159
3.4.4 PAD – Disabilitazione dell’area protetta ................................................................................................. 161
3.5 Modifica dei parametri dell’asse e dell’azionamento ...................................................................................................... 162
3.5.1 CPA - Lettura / scrittura di un parametro relativo a un asse .................................................................. 162
3.5.2 CPD - Lettura/Scrittura di un parametro di un azionamento .................................................................. 168

4. PROGRAMMAZIONE DI UTENSILI E CORRETTORI ................................................................ 170

45004606R 5
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.1 Indirizzo T per programmazione utensile ........................................................................................................................ 171

4.2 Indirizzo T per programmazione multiutensile ............................................................................................................... 172

4.3 TMT – Parametro utensile per PLC .................................................................................................................................. 173

4.4 Indirizzo h ................................................................................................................................................................................. 174

4.5 AXO – Definizione del correttore dell’asse.................................................................................................................... 176

4.6 RQT – Riqualifica dei correttori utensili attuali .............................................................................................................. 178

4.7 RQP – Riqualifica dei correttori utensili (valori di presetting) ................................................................................... 179

4.8 TOU – Dichiarazione di utensile scaduto ........................................................................................................................ 180

5. COMPENSAZIONE DIAMETRO UTENSILE ............................................................................... 181


5.1 TTC – Tipo Compensazione utensile ............................................................................................................................... 182

5.2 G40 G41 G42 – Compensazione utensile ....................................................................................................................... 183


5.2.1 Abilitazione della compensazione utensile ............................................................................................. 183
5.2.2 Compensazione diametro utensile (TTC,0) ............................................................................................. 184
5.2.3 Compensazione spessore utensile (TTC, 1) ............................................................................................. 186
5.2.4 Note relative all'uso della compensazione utensile................................................................................ 189
5.2.5 Ottimizzazione del percorso utensile (Tool Path Optimization) ............................................................. 189
5.2.6 Disabilitazione della compensazione diametro utensile......................................................................... 190
5.2.7 Disabilitazione della compensazione con TPO attivo ............................................................................. 191
5.2.8 Disabilitazione della compensazione spessore disco .............................................................................. 192
5.2.9 Cambio compensazione utensile in lavoro ............................................................................................. 193
5.2.10 Percorso utensile lineare/lineare ............................................................................................................ 193
5.2.11 Percorsi utensile Lineare/Circolare, Circolare/Lineare, Circolare/Circolare ........................................... 195
5.3 r – Raccordi su profili compensati ..................................................................................................................................... 197

5.4 b – Smussi nei profili compensati ....................................................................................................................................... 198

5.5 IBSIZE – Correzione interference sul profilo in G41/G42 .......................................................................................... 201


5.5.1 Interferenza data da un solo movimento circolare ................................................................................ 202
5.5.2 Interferenza data da una combinazione di più movimenti lineari e circolari ......................................... 203
5.6 TPO – Ottimizzazione del percorso utensile in G41/G42 .......................................................................................... 206
5.6.1 Modalità TPO=1, TPO=33 e TPO=65 ....................................................................................................... 207
5.6.2 Modalità TPO=2 ...................................................................................................................................... 211
5.6.3 Modalità TPO = 3 .................................................................................................................................... 212
5.6.4 Modalità TPO=8 e TPO=16 ...................................................................................................................... 214
5.6.5 Modalità TPO=32 e 64 ............................................................................................................................ 214
5.7 TPA – Angolo di soglia per TPO ........................................................................................................................................ 215

5.8 TPT – Soglia di scostamento dallo spigolo (Tool Path Threshold) ............................................................................ 216

5.9 u v w – Compensazione parassiale .................................................................................................................................... 217


5.9.1 Esempi d'uso dei fattori di compensazione u, v, w ................................................................................. 218

5.10 U V W – Definizione assi per compensazione parassiale ............................................................................................ 221

5.11 MSA – Definizione di sovrametallo .................................................................................................................................... 222

5.12 CURDIAM / CURDIAM2 – Modifica del raggio utensile / raggio utensile toroidale ............................................ 223

45004606R 6
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6. PROGRAMMAZIONE DEL MANDRINO ..................................................................................... 224


6.1 G96 G97 – Programmazione CSS e RPM ........................................................................................................................ 225
6.1.1 Modifica dell'indirizzo S durante G96 - cancellazione del modo CSS ..................................................... 226

6.2 SSL – Limite della velocità di rotazione del mandrino .................................................................................................. 227

6.3 M19 – Arresto della rotazione mandrino con orientamento ..................................................................................... 228

6.4 GTS – Condivisione del mandrino ..................................................................................................................................... 229

7. FUNZIONI AUSILIARIE M ............................................................................................................. 231


7.1 Le funzioni M standard .......................................................................................................................................................... 231

7.2 Funzione M (prelude, expedite, postlude) ........................................................................................................................ 233

7.3 M parametriche ....................................................................................................................................................................... 234

8. PROGRAMMAZIONE PARAMETRICA ........................................................................................ 235


8.1 Funzioni trigonometriche ..................................................................................................................................................... 236

8.2 Funzioni matematiche ............................................................................................................................................................ 236

8.3 Funzioni logaritmiche ed esponenziali ............................................................................................................................... 236

8.4 Funzioni booleane ................................................................................................................................................................... 237

8.5 Variabili locali ........................................................................................................................................................................... 237


8.5.1 Parametri E ............................................................................................................................................. 237
8.5.2 ! – Variabili utente .................................................................................................................................. 239
8.5.3 Variabili Real Time – RTV ........................................................................................................................ 241
8.5.4 LINENO – Numero della linea di programma selezionata ....................................................................... 241
8.5.5 $BRK – Punto di break-point per esecuzione parziale di un programma ............................................... 242
8.5.6 GPRG – Stato delle G programmate ....................................................................................................... 243
8.5.7 RCD – Disabilita contatore per RCM ....................................................................................................... 244
8.5.8 CURPROC – Numero del processo attivo ................................................................................................ 245

8.6 Variabili di Sistema .................................................................................................................................................................. 246


8.6.1 SN – Numero di Sistema ......................................................................................................................... 246
8.6.2 SC – Carattere di Sistema ........................................................................................................................ 247
8.6.3 LS – Stringhe di Sistema .......................................................................................................................... 249
8.6.4 TIM – Temporizzatore di Sistema ........................................................................................................... 250

8.7 @ - Variabili WinPLUS .......................................................................................................................................................... 251

8.8 Variabili L .................................................................................................................................................................................. 252

8.9 Assegnazioni multiple............................................................................................................................................................. 253

9. PARAMACRO ................................................................................................................................. 254


9.1 Definizione di paramacro ...................................................................................................................................................... 254

9.2 Parametri HC........................................................................................................................................................................... 256

9.3 DAN – Definizione del nome asse ..................................................................................................................................... 259

9.4 SCRLPAR – Stato scrolling paramacro ............................................................................................................................. 260

9.5 DGM – Sospensione scrolling ............................................................................................................................................. 261

45004606R 7
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.6 PMS – S come paramacro / PMT – T come paramacro / PMM – M come paramacro ....................................... 262
9.6.1 Funzioni ausiliarie S, T, M eseguite come paramacro ............................................................................. 262

10. MODIFICA DELLA SEQUENZA DI ESECUZIONE DEL PROGRAMMA ................................ 266


10.1 Generalità ................................................................................................................................................................................. 266
10.1.1 Comandi per la ripetizione di parti di programma .................................................................................. 266
10.1.2 Comandi per l'esecuzione di sottoprogrammi ........................................................................................ 266
10.1.3 Comandi per la modifica del flusso del programma ............................................................................... 267
10.1.4 Comandi di ritardo esecuzione programma e di disabilitazione di blocchi barrati................................. 267
10.1.5 Comandi per il rilascio e la sospensione dell'esecuzione del programma .............................................. 267
10.1.6 Comandi per la modifica dell’esecuzione in semi auto ........................................................................... 267
10.2 RPT e ERP - Comandi per la ripetizione di parti di programma ................................................................................ 268
10.2.1 Lavorazione di fori equidistanti .............................................................................................................. 270
10.2.2 Lavorazione con tagli di sgrossatura e finitura ....................................................................................... 270

10.3 Comandi per l’esecuzione di sottoprogrammi ................................................................................................................ 272


10.3.1 CLS – CLD – CLT - $() – Chiamata di subroutine ...................................................................................... 272
10.3.2 PTH – Dichiarazione del pathname di default ......................................................................................... 279

10.4 Comandi per la modifica del flusso del programma ...................................................................................................... 280
10.4.1 EPP – Esecuzione di una porzione di programma ................................................................................... 280
10.4.2 EPB – Esecuzione di un blocco di part program ...................................................................................... 283
10.4.3 GTO – Comando di salto ......................................................................................................................... 285
10.4.4 IF ELSE ENDIF .......................................................................................................................................... 289
10.5 Comandi di ritardo esecuzione programma e di disabilitazione di blocchi barrati ............................................... 291
10.5.1 DLY – Definizione del tempo di attesa .................................................................................................... 291
10.5.2 DSB – Disabilitazione di blocchi barrati................................................................................................... 291

10.6 Comandi per il rilascio e la sospensione dell'esecuzione del programma ............................................................... 291
10.6.1 REL – Deseleziona il part program .......................................................................................................... 291
10.6.2 WOS – WAIT su segnale .......................................................................................................................... 292

10.7 Comandi per la modifica dell’esecuzione in semi-auto ................................................................................................. 293


10.7.1 STPMOV – passaggio da “blocco a blocco” a “movimento a movimento” ............................................. 293

11. Stima del tempo di esecuzione programma .............................................................................. 294


11.1 CYCTIME – Variabile di abilitazione del calcolo tempo ciclo ..................................................................................... 294

11.2 CTV – Valori calcolati del tempo ciclo ............................................................................................................................. 294

11.3 EVM – Stima del tempo di esecuzione di un movimento lineare ............................................................................... 295

12. APPENDICE A: Sommario dei caratteri e dei comandi ............................................................ 296


12.1 Caratteri consentiti ................................................................................................................................................................ 296

12.2 Sommario dei codici G .......................................................................................................................................................... 299

12.3 Funzioni matematiche e logiche .......................................................................................................................................... 301

12.4 Variabili locali e di sistema modificabili anche da programma ..................................................................................... 302

12.5 TRILETTERALI ........................................................................................................................................................................ 305

45004606R 8
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12.6 Codici ASCII ............................................................................................................................................................................ 314

13. APPENDICE B: Messaggi d’errore ............................................................................................. 316


13.1 Descrizione dei messaggi di errore ed azione di recupero ......................................................................................... 316
13.1.1 Errori generati dalla libreria PLC – interpolatore .................................................................................... 316
13.1.2 Errori generati dalla libreria Processo ..................................................................................................... 332
13.1.3 Errori della libreria tabelle ...................................................................................................................... 353
13.1.4 Errori generati dalla libreria geometrica ................................................................................................. 355
13.1.5 Errori della libreria security..................................................................................................................... 356
13.1.6 Errori della libreria trasformazioni tridimensionali ................................................................................. 357

45004606R 9
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

1. Prefazione

1.1 Introduzione
Questo manuale descrive le procedure utilizzate per la scrittura di Part Program con il sistema
OPENcontrol. Vengono fornite ai programmatori tutte le informazioni necessarie per la creazione di
programmi per il controllo della macchina.

1.1.1 Riferimenti
Per ulteriori informazioni:
OPEN Manuale di Caratterizzazione Software
OPEN Manuale di Uso

I capitoli di questo manuale descrivono gli elementi del linguaggio (comandi e funzioni) utilizzati per
trattare una specifica attività, es. programmazione degli assi, programmazione degli utensili, gestione
della tastatura. Per meglio assistere il programmatore, la descrizione dei comandi è stata integrata con
degli esempi di programmazione.

1.1.2 Comandi
I comandi vengono trattati nei capitoli che ne descrivono l'attività specifica. Per ciascun comando
vengono fornite le seguenti informazioni:
Nome del comando
Funzionalità
Sintassi
Parametri
Caratteristiche e note
Esempi
Dove possibile, gli esempi riportano parti di programma e diagrammi che illustrano il modo in cui
operano i comandi.

1.1.3 Convenzioni sintattiche


Nella descrizione dei comandi vengono utilizzate le seguenti convenzioni:
SIMBOLO SIGNIFICATO
Le parentesi quadre racchiudono dati opzionali. Non introdurre le parentesi quadre nel
[]
comando vero e proprio.
Le parentesi graffe indicano che l'elemento in esse racchiuso può essere ripetuto più
volte. L'elemento può anche essere descritto come una serie di dati alternativi, cioè
{}
soltanto uno di essi può essere introdotto. I dati alternativi sono separati da una barra
verticale (|). Non introdurre le parentesi graffe nel comando vero e proprio.
La barra verticale separa i dati alternativi. Non introdurre la barra nel comando vero e
|
proprio.

Le parole chiave vengono scritte in neretto e devono essere digitate come vengono rappresentate nella
descrizione sintattica. I parametri che devono essere passati con i comandi vengono indicati da un codice
mnemonico scritto in corsivo. I valori appropriati dei parametri devono essere digitati al posto del codice

45004606R 10
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

mnemonico. Lo zero può essere omesso; per esempio, si può programmare G00 come G; G01 come G1.

Esempio:
(SCF, [value])
Il triletterale SCF, la virgola e la parentesi sono parole chiave e devono essere digitate nell'ordine
descritto. Value è il nome di un parametro e deve essere sostituito da un valore specifico. Le parentesi
quadre indicano che value è un valore opzionale.

1.1.4 Terminologia
Di seguito vengono spiegati alcuni termini particolari utilizzati nel manuale:

Controllo Si riferisce all'unità di controllo numerico OPEN comprendente il pannello frontale


e l'unità base.

Pannello frontale È il modulo di Interfaccia tra macchina e operatore, dotato di uno schermo su cui i
messaggi vengono visualizzati e di una tastiera per inserire i dati. E' collegato
all'unità base.

Unità base È l'unità hardware-software che gestisce tutte le funzioni di controllo, ed è


collegata al pannello frontale e alla macchina utente.

1.2 Attenzione e Note


Questo manuale distingue due tipi di istruzioni di sicurezza:
ATTENZIONE è I’equivalente inglese di WARNING ed è usato per richiamare I'attenzione su situazioni che
possono portare a gravi condizioni di errore, danni fisici e morte.
Le NOTE sono usate per richiamare I'attenzione del lettore o fornire ulteriori informazioni utili
sull'argomento trattato. Le NOTE sono meno critiche dei richiami indicati con "ATTENZIONE", ma non
dovrebbero essere trascurate.

1.3 Legenda
ATTENZIONE: il lettore è informato di situazioni che possono provocare gravi danni fisici e/o gravi danni
alle apparecchiature con i seguenti simboli:

ATTENZIONE! Tensione Pericolosa: avverte di situazioni in cui è presente un


livello di tensione che può provocare danni fisici e/o danni alle apparecchiature.
II testo accanto al simbolo spiega come evitare il pericolo di danno.

ATTENZIONE! Pericolo Generico: avverte di situazioni che possono provocare danni fisici
e/o danni alle apparecchiature ma per cause non elettriche. II testo accanto al simbolo
spiega come evitare il pericolo.

Nota: Fornisce o mette in rilievo ulteriori informazioni sull'argomento.

45004606R 11
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

1.4 Aggiornamenti relativi alla presente edizione


La presente emissione è conseguente alle seguenti modifiche apportate al manuale con riferimento alla
versione software 3.4.5 di OPENcontrol.

CAPITOLO AGGIORNAMENTO

Capitolo 2
2.2 Corretto tabella relativa alla sintassi del blocco
Aggiornato descrizione label

Capitolo 3
3.2.7 Aggiunto descrizione UWL
3.2.8 Aggiunto descrizione UWLFVAL e URLFVAL
3.4.1 Esteso nota nelle caratteristiche di SOL
3.5.1 Aggiornato elenco parametri per CPA

Capitolo 5
5.12 Aggiunto descrizione variabili CURDIAM e CURDIAM2

Capitolo 10
Tutto Rivisto organizzazione paragrafi
10.7 Aggiunto descrizione variabile STPMOV

Appendice A
12.4 Aggiunto descrizione variabili UWL, UWLFVAL, URLFVAL, CURDIAM e CURDIAM2
in tabella variabili

Appendice B
13.1.2 Aggiornato dimensione label in descrizione errore 23/157
Aggiornato errore 23/575

45004606R 12
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2. PROGRAMMARE CON IL SISTEMA OPEN

I part program vengono scritti con un linguaggio specifico definito dallo standard ISO oppure tramite
comandi XML associati a paramacro. Questo capitolo descrive gli elementi dei due linguaggi ed introduce
i relativi argomenti di programmazione.

2.1 I file di programma


Sul sistema OPEN, i Part Program sono memorizzati su file i quali possono essere identificati tramite
indirizzo fisico, tramite DRIVE logico oppure ancora direttamente specificando il solo nome.

I nomi fisici possono avere una lunghezza massima di 127 caratteri, compresa l’eventuale
estensione e path, e identificano file che risiedono in direttori fisici del sistema

I nomi specificati attraverso un DRIVE logico identificano i programmi memorizzati nei direttori
logici configurati sulla macchina. La configurazione dei direttori logici o DRIVE avviene durante
la fase di caratterizzazione della macchina, in AMP. Dato un path di un file contenente un DRIVE
logico il sistema ricaverà automaticamente l’indirizzo fisico associato, che deve rispettare i
limiti di lunghezza precisati precedentemente

Dai programmi identificati dal semplice nome file, il sistema risalirà al relativo path fisico
cercandolo tra i path di default specificati in AMP in fase di caratterizzazione della macchina

Utilizzando Editors di Windows, bisogna ricordarsi di dare il comando “enter” sull’ultima riga
inserita nel programma. L’uscita dal programma senza questo comando viene segnalato con un
apposito errore durante l’esecuzione del programma stesso.

L’attivazione/disattivazione programma può essere effettuata specificandone il nome sia attraverso un


indirizzo fisico che con DRIVE, oppure direttamente con il semplice nome, mentre le subroutine e tutte
le istruzioni ISO per le quali è necessario specificare un file devono avere il nome fornito direttamente o
per indirizzo logico mediante DRIVE.

45004606R 13
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.2 Componenti del programma ISO


Indirizzo
Un indirizzo è una lettera che identifica il tipo di istruzione. Per esempio, i seguenti sono indirizzi:

G, X, Y, F

Word
Una word (parola) è un indirizzo seguito da un valore numerico. Per esempio, le seguenti sono word:

G1 X50.5 Z-3.15 F200 T1.1

Il valore numerico assegnato ad una word deve essere espresso nel sistema di misurazione della word
senza gli zeri di testa e di coda. Se il valore numerico ha una frazione decimale, inserire la porzione
decimale dopo il punto decimale.

Blocchi
Il blocco è la componente fondamentale di un part program e consiste di uno o più campi. Quando
vengono usati più campi nello stesso blocco, essi devono apparire nell'ordine mostrato nella seguente
tabella:

cancellazione numero di sincronizzazione /


etichetta codici ISO
di blocco sequenza desincronizzazione

TUTTI I CARATTERI
/ ETICHETTA NUMERO #o&
CONSENTITI

La lunghezza massima di un blocco è di 256 caratteri.


Il programma tecnologico, o part program, è una sequenza di blocchi che descrivono un'operazione di
lavorazione.
Ciascun blocco deve terminare con <CR><LF>.

Blocco di commento
Può essere inserito in una qualsiasi posizione all'interno del blocco attuale.
L’inizio del commento è identificato da una di queste tre stringhe:
;
//
(*
Tutti i caratteri del blocco posti dopo l’inizio commento sono considerati parti del commento.

Blocco di definizione alias


Mediante la definizione di un alias è possibile associare una stringa personalizzata a un’istruzione del
linguaggio.
All’interno di un blocco di definizione alias non devono essere presenti altre istruzioni ad eccezione del
commento.
La definizione di un alias ha la seguente sintassi: {define} {nome alias} {istruzione del linguaggio}.

45004606R 14
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Cancellazione di blocco
Il campo cancellazione di blocco (block delete) è opzionale. Permette all'operatore di scegliere se
eseguire blocchi di programma che cominciano con il carattere "/", chiamati blocchi barrati.

Esempio:
/N100 G00 X100
Il blocco dell'esempio può essere abilitato o disabilitato tramite l’interfaccia utente o eseguendo il
triletterale DSB.

Etichetta
Il campo etichetta è opzionale. Consente al programmatore di assegnare un nome simbolico ad un
blocco. Un'etichetta può essere costituita da un massimo di quaranta caratteri alfanumerici. I caratteri
devono apparire tra doppi apici. Se il blocco è barrato, l'etichetta deve essere inserita dopo la barra.

I caratteri consentiti per definire un’etichetta sono i caratteri alfabetici ASCII compresi tra ‘a’..’z’ e tra
‘A’..’Z’, i caratteri numerici compresi tra ‘0’..’9’ ed i seguenti caratteri:
# & * + - . / < = >[ \ ] ^ _

È possibile definire un tipo particolare di etichette chiamato marker. I marker vengono utilizzati nella
ricerca memorizzata e identificano un punto dal quale iniziare la ricerca o sul quale terminarla. Per
maggiori dettagli consultare il Manuale d’Uso.
Per definire un marker è necessario anteporre il carattere ‘$’ al nome della label.

Esempio:
"START"
/"END"
$"MARKER"
Quando un campo etichetta viene usato in un comando 'GTO' l'etichetta definisce il blocco al quale il
controllo deve effettuare un salto.
Nel caso di comando ‘EPP’ le etichette servono a delimitare la sezione di part program che dovrà essere
eseguita.

Numero di sequenza
Il campo 'numero di sequenza' è opzionale. Permette al programmatore di numerare i blocchi di
programma. Il numero di sequenza è composto dalla lettera N seguita da un numero intero, inferiore a
due miliardi (N0-N1999999999).
Il numero di sequenza deve apparire davanti al primo operando e dopo l'etichetta.

Esempio:
N125 X0
"START" N125 X0
"END" N125 X0

45004606R 15
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Sincronizzazione/desincronizzazione
I caratteri # e & vengono utilizzati per modificare rispettivamente lo stato di
sincronizzazione/desincronizzazione di default. Vedere in seguito la sezione "Sincronizzazione ed
Esecuzione del Programma" per ulteriori informazioni relative alla sincronizzazione.
Il campo di sincronizzazione/desincronizzazione deve apparire prima degli operandi (codici word) e dopo
blocco barrato, etichetta e numero di sequenza.

Esempio:
#(GTO,START, @PL1=1)

45004606R 16
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.3 Tipi di blocchi


In un part program si possono usare quattro tipi di blocchi:
Blocchi di commento
Blocchi di definizione alias
Blocchi di movimento
Blocchi di assegnazione
Blocchi con codici triletterali

2.3.1 Blocchi di commento


Un blocco di commento permette al programmatore di inserire delle frasi libere nel programma. Queste
frasi possono descrivere la funzione da eseguire o fornire elementi di informazione che rendono il
programma più comprensibile e documentato. Un blocco di commento non produce messaggi per
l'operatore. Durante l'esecuzione del programma il controllo ignora i blocchi di commento.
Il primo carattere di un blocco di commento deve essere uno di questi tre caratteri: ‘;’ o ‘//’ oppure
ancora ‘(*. Il resto del blocco di commento è una sequenza di caratteri alfanumerici. Per esempio:

;QUESTO E' UN ESEMPIO DI BLOCCO DI COMMENTO

Oltre che in un blocco a sé stante, si può inserire un commento anche negli altri tipi di blocchi, a partire
dal carattere sopra citato.

Tutti i caratteri che seguiranno sono considerati come commento.

Esempio:
G1 X100 Y50 ; Blocco di movimento
E1=10 // Variabile locale E
(ROT,45) (* Comando di rotazione

2.3.2 Blocchi di definizione alias


Un blocco di definizione alias permette di associare a una stringa, un’istruzione o una costante di
utilizzo frequente. Durante l’esecuzione del programma, agli eventuali alias presenti, sono sostituite le
istruzioni o costanti corrispondenti. Un blocco di definizione alias non produce del codice operativo;
durante l'esecuzione del programma il controllo ignora i blocchi di definizione alias.

Un blocco di definizione alias ha la sequente struttura: {define} {nome alias} {valore alias}.

Nei parametri “nome alias” e “valore alias” sono accettati tutti i caratteri, compresi gli spazi e gli
apici singoli e doppi, ad esclusione dei caratteri aperta e chiusa graffa.

La definizione di un alias può essere seguita solo da un eventuale commento, ma non da altre istruzioni.
La stringa “valore alias”, deve contenere istruzioni e/o valori riconosciuti dal controllo.

Esempi validi:
{define} {LINEARE} {G1} ; Associo all’alias LINEARE l’istruzione G1.
{define} {RESET} {E100=0} ; Associo all’alias RESET la cancellazione della variabile E100.
{define} {MSG} {“MIO MSG”} ; Associo all’alias MSG la stringa “MIO MSG”.

45004606R 17
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio non valido:


{define} {LIN} {G1} E100=0 ; La definizione di un alias non può essere seguita da altre istruzioni

2.3.3 Blocchi di movimento


I blocchi di movimento sono quelli conformi agli standard ISO e ASCII per la programmazione di blocchi.
Non c'è un ordine particolare per programmare i componenti di un blocco di movimento.

Esempio:
G1 X500 Y20 F200

2.3.4 Blocchi di assegnazione


I blocchi di assegnazione vengono usati per scrivere i valori delle variabili direttamente da programma.
La seguente tabella mostra i numerosi tipi di assegnazione possibili.
Tipo di assegnazione Esempio
Assegnazione semplice E10=123.567
Assegnazione multipla E1=10, 15.5, 123.467
L'assegnazione carica i valori:
10 in E1
15.5 in E2
123.467 in E3
Assegnazione di espressione matematica E20=(E10+125*SQR(E23))
Numero di sistema SN=1.5

2.3.5 Blocchi con codici triletterali


I blocchi con codici triletterali definiscono un'operazione con un'istruzione triletterale conforme allo
standard RS-447.

Per esempio:
(ROT,45)
(DIS,"message text")

45004606R 18
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.4 Funzioni programmabili


I valori programmati per le diverse funzioni possono essere preceduti dal segno =.

Esempio:
I seguenti blocchi sono equivalenti
G1X100 G1X=100
G2X10Y10R200 G2X=10Y10R=200

2.4.1 Coordinate degli assi


Le coordinate degli assi possono essere chiamate con le lettere ABCUVWXYZPQD (secondo la
configurazione definita in AMP) e possono essere programmate nei seguenti intervalli di valori:

-99999.99999 -0.00001 mm/pollici


+0.00001 +99999.99999 mm/pollici

NOTA:
Non è possibile programmare valori nell'intervallo +0.00001 perché 0.00001 è il valore minimo accettato
dal controllo.

2.4.2 Coordinata R
In una interpolazione circolare (G02- G03 -G12- G13) la coordinata R rappresenta il raggio del cerchio.
In un blocco per filettatura (G33), la coordinata R rappresenta lo sfasamento rispetto alla posizione
angolare zero del mandrino (per filetti a più principi).
In un ciclo fisso standard (G81-G89), la coordinata R definisce la quota di inizio lavoro o la quota di
risalita. Questa funzione è programmabile nei seguenti intervalli:

-99999.99999 -0.00001 mm/pollici


+0.00001 +99999.99999 mm/pollici

NOTA:
Non è possibile programmare i valori nell'intervallo +0.00001, perché 0.00001 è il valore minimo
accettato dal controllo.

2.4.3 Coordinate I J – Funzione K


Nell’interpolazione circolare nel piano (G02- G03) quando il bit 0 della variabile ISOCOMP non è settato
(Compatibilità comandi ISO settato a compatibilità Serie10 in AMP) i valori di I e J indicano
rispettivamente le coordinate dell’ascissa e dell’ordinata del centro dell’arco, indipendentemente dal
piano di interpolazione attivo
Nell’interpolazione circolare nel piano (G02- G03) quando il bit 0 della variabile ISOCOMP è settato a uno
(Compatibilità comandi ISO settato a ISO standard in AMP) i valori di I, J e K indicano la coordinate,
riferite rispetto al punto corrente, del centro. Il loro uso deve essere coerente con il piano di
interpolazione attivo in quel momento.
Nell’interpolazione circolare spaziale programmata usando il centro (G12- G13) i valori di I, J e K
indicano le coordinate del centro cerchio rispetto l’ascissa, l’ordinata e il terzo asse attive.
Nell’interpolazione circolare per tre punti (G14) I, J e K indicano le coordinate del terzo punto del
cerchio.

45004606R 19
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Le coordinate I e J sono anche usate nel ciclo foratura profonda (G83).


In un blocco per filettatura (G33), l'indirizzo I definisce la variazione del passo per filettature a passo
variabile:
I+ passo crescente
I- passo decrescente
In un blocco per maschiatura con trasduttore (G84), la coordinata I rappresenta lo sfasamento rispetto
alla posizione angolare zero del mandrino (per maschiatura a più principi).

Nel ciclo di foratura profonda (G83), K definisce il valore incrementale da applicare per ridurre la
profondità iniziale del passo (I) al valore di profondità minima (J).
In un blocco di filettatura (G33) o in un ciclo di maschiatura (G84), K definisce il passo del filetto .
Nell'interpolazione elicoidale (G02-G03), K definisce il passo dell'elica.

Questa funzione è programmabile nei seguenti intervalli:

-99999.99999 -0.00001 mm/pollici


+0.00001 +99999.99999 mm/pollici

NOTA:
Non è possibile programmare i valori nell'intervallo +0.00001, perché 0.00001 è il valore minimo
accettato dal controllo.
Quando i valori degli assi corrispondenti (secondo la configurazione definita in AMP) sono in unità
diametrali anche i valori delle coordinate del centro per I e J sono espressi in unità diametrali.

2.4.4 Funzione t
La funzione t definisce il tempo necessario a percorrere lo spostamento definito in un blocco. Questa
funzione è programmabile nel seguente intervallo:

+0.00001 +99999.99999 s

Nel caso di programmazione della funzione t la velocità di avanzamento sarà:

distanza totale
F= *60
tempo

Il valore di definito da una funzione t è valido solo all'interno del blocco in cui è programmato.
La funzione t e altre definizioni di velocità sul profilo o sul blocco (come gli attributi dinamici di Feed o
la funzione F) non possono essere programmati nello stesso blocco.

45004606R 20
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.4.5 Funzione F e attributi dinamici


Il codice F corrisponde a due diverse funzionalità: la regolazione della velocità di lavoro (Feed) e la
definizione degli attributi dinamici modali o locali ad un blocco.
Nel primo caso la funzione F definisce la velocità di avanzamento degli assi, la sintassi corrisponde al
codice F seguito da un numero reale compreso nel seguente intervallo:

+0.00001 +99999.99999 mm/pollici

In G94 la funzione F definisce la velocità di avanzamento in millimetri al minuto (G71) o in pollici al


minuto (G70).
In G93 la funzione F definisce l'inverso del tempo necessario, espresso in minuti, per completare lo
spostamento:

velocità
F= = 1/t (minuti)
distanza totale

La funzione F è obbligatoria nei blocchi quando G93 è attivo ed è valida solo per quel blocco.
In G95, F specifica la velocità di avanzamento degli assi espressa in millimetri al giro (G71) o in pollici al
giro (G70) del mandrino.

La sintassi da utilizzare nel caso in cui il codice F venga utilizzato per specificare gli attributi dinamici è
descritta nel Capitolo 2 del presente manuale.

2.4.6 Funzione M
La funzione M può attivare diverse operazioni di macchina. L'intervallo programmabile va da 0 a 9999.
Consultare il Capitolo 7 per ulteriori informazioni.

2.4.7 Funzione S
La funzione S specifica la velocità di rotazione del mandrino. È programmabile nel seguente intervallo:

+0.001 999999.999 giri/min

In G97, la funzione S definisce la velocità di rotazione del mandrino espressa in giri/min.


In G96, la funzione S definisce la velocità di taglio espressa in metri al minuto (G71) o in piedi al minuto
(G70). Tale velocità di taglio rimane costante sulla superficie.
Fare riferimento al Capitolo 6 per ulteriori informazioni sulla programmazione della funzione S.

45004606R 21
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.4.8 Funzione T
La funzione T definisce l'utensile e il correttore necessari per la lavorazione. Il codice utensile è
programmabile su 32 caratteri alfanumerici mentre il correttore è programmabile in un intervallo che va
da 0 a 300.

Il Capitolo 4 fornisce una dettagliata descrizione delle funzioni T.

Le funzioni M, S, T, hanno funzionalità diverse a seconda di come sono state caratterizzate


nell’AMP.
È possibile l'emissione di queste funzioni anche durante il movimento continuo (G26-G27-
G28).

Per questi tipi di applicazioni il costruttore deve:


Configurare in AMP la funzione desiderata come "AMMESSO IN CONTINUO".
Scrivere una logica di macchina che la gestisca.
Il programmatore di part program, da parte sua deve tenere presente che queste
funzioni si comportano in modo diverso a seconda della modalità in cui ci si trova:
In continuo: la funzione dichiarata " AMMESSO IN CONTINUO " verrà emessa nello
stesso ordine in cui è stata programmata.
L'emissione sarà di tipo "NO WAIT" per non bloccare l'esecuzione del continuo.
In punto-punto: la funzione dichiarata " AMMESSO IN CONTINUO" verrà emessa nella
modalità standard.

2.4.9 Funzione h
La funzione h permette il cambio del correttore sia durante il movimento continuo sia durante il
movimento punto a punto.
Deve essere l'unica funzione programmata nel blocco, il suo valore può variare tra 0 e 300.
Tale valore può essere espresso come numero intero o tramite variabile E.

2.4.10 Funzioni G
I codici G programmano funzioni preparatorie per la lavorazione. Essi vengono trattati nella sezione
seguente.

45004606R 22
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.5 Codici G
Questa sezione spiega come utilizzare i codici G di preparazione nei blocchi del part program. Un codice
G di preparazione è identificato dall'indirizzo G seguito da una o due cifre (G00-G99). Attualmente sono
disponibili solo alcuni dei 100 codici G possibili.

I sottoprogrammi paramacro possono essere richiamati con un codice G di tre cifre. Questa classe di
codici G viene descritta nel Capitolo 9. I codici G a tre cifre sono classificati come segue:

G100 - G699 Paramacro non modali


G700 - G998 Paramacro modali
G999 Reset di paramacro modali

In un blocco, il codice G deve essere programmato dopo il numero di sequenza (se definito) e prima di
qualunque altro operando.

Per esempio:
N100 G01 X0 - operando
È possibile programmare più codici G nello stesso blocco, ammesso che siano tra loro compatibili. La
tabella seguente definisce la compatibilità tra codici G. Lo zero indica che i codici G sono compatibili e
possono essere programmati nello stesso blocco; uno significa che i codici G non sono compatibili e non
possono essere programmati nello stesso blocco senza determinare errori.

Codici G compatibili
G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 77 18 98
38 19
39
G00 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0

G01 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0

G02 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0

G03 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0

G04 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0

G05 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0

G06 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0

G09 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0

G10 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0

G12 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0

G13 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0

G14 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0

45004606R 23
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 77 18 98
38 19
39
G16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G26 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0

G27 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0

G28 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0

G29 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0

G31 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1

G33 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0

G35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G36 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G37 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G39 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G40 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0

G41 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0

G42 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0

G60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G61 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G63 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G66 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G67 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G70 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0

45004606R 24
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

G 00 01 02 12 33 35 60 81 80 72 93 96 41 40 27 29 04 09 90 79 70 16 92 31
10 03 13 36 67 89 73 94 97 42 28 05 91 78 71 17 99
14 37 74 95 26 06 77 18 98
38 19
39
G71 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0

G72 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G73 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G77 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0

G78 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0

G79 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0

G80 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1

G81 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1

G82 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G83 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G84 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G85 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G86 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G89 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1

G90 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0

G91 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0

G92 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G93 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0

G94 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0

G95 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0

G96 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0

G97 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0

G98 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

G99 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

45004606R 25
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

NOTA: 0 indica codici compatibili - 1 indica codici non compatibili

La tabella che segue fornisce un riassunto dei codici G disponibili nel controllo. Questa configurazione di
default può essere modificata mediante il configuratore AMP.

Riassunto codici G
CODICE GRUPPO MODALE DESCRIZIONE ALL’ACCENSIONE
G00 a sì Posizionamento dell'asse in rapido sì
G01 a sì Interpolazione lineare no
Interpolazione lineare con parametri dinamici di
G10 a sì no
rapido.
G02 a sì Interpolazione circolare oraria no
G03 a sì Interpolazione circolare antioraria no
G12 a sì Interpolazione circolare 3D oraria no
G13 a sì Interpolazione circolare 3D antioraria no
G14 a sì Interpolazione circolare 3D per 3 punti no
G33 a sì Filettatura a passo costante o variabile no
Interpolazione circolare e correzione profilo su un
G16 b sì no
piano definito
Interpolazione circolare e correzione profilo sul
G17 b sì sì
piano XY (1-2 asse)
Interpol. circolare e correzione profilo sul piano ZX
G18 b sì no
(3-1 asse)
Interpol. circolare e correzione profilo sul piano YZ
G19 b sì no
(2-3 asse)
Funzionamento continuo con velocità nulla a fine
G26 c sì no
enti
Funzionamento continuo con riduzione automatica
G27 c sì sì
della velocità sugli spigoli
Funzionamento continuo senza riduzione della
G28 c sì no
velocità sugli spigoli
G29 c sì Funzionamento punto a punto no
G92 d no Presetting dell'asse senza mirror no
G98 d no Presetting dell’asse con mirror no
G99 d sì Cancellazione di G92 sì
G40 e sì Disabilita correzione su profilo sì
G41 e sì Correzione su profilo (utensile a sinistra) no
G42 e sì Correzione su profilo (utensile a destra) no
G70 f sì Programmazione in pollici no
G71 f sì Programmazione in mm sì
G80 g sì Chiusura cicli fissi sì
G81 g sì Ciclo fisso foratura no
G82 g sì Ciclo fisso lamatura no
G83 g sì Ciclo fori profondi (con scarico trucioli) no
G84 g sì Ciclo fisso maschiatura no
G85 g sì Ciclo fisso alesatura no
G86 g sì Ciclo fisso barenatura no
G89 g sì Ciclo fisso barenatura con sosta no

45004606R 26
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE GRUPPO MODALE DESCRIZIONE ALL’ACCENSIONE


G90 h sì Programmazione assoluta sì
G91 h sì Programmazione incrementale no
G77 K No Calcolo delle quote giunto date le quote pezzo no
Programmazione riferita alla punta utensile e
G78 k no no
movimentazione riferita allo zero macchina
Programmazione e movimentazione riferita allo zero
G79 k no no
macchina
G04 i no Sosta a fine blocco no
G05 i no FeedHold a fine movimento no
G06 i no FeedHold a inizio movimento no
G09 i no Decelerazione a fine blocco no
G72 j no Misura di un punto con compensazione raggio no
G73 j no Misura dei parametri di un foro no
Misura dello scostamento teorico da un punto senza
G74 j no no
compensazione raggio
Velocità di avanzamento espressa come inverso del
G93 l sì no
tempo di esecuzione dell'ente
G94 l sì Velocità di avanzamento in mm/min. o pollici/min. sì
G95 l sì Velocità di avanzamento in mm/giro o pollici/giro no
G96 m sì Velocità di taglio in m/min. o piedi/min no
G97 m sì Velocità di rotazione mandrino in giri/min sì
G35 sì Rototraslazione assoluta di una terna di assi lineari no
Rototraslazione di una terna di assi lineari rispetto
G36 sì no
all’origine attiva
no Coordinate dei punti teorici per la definizione della no
G37
rototraslazione per tre punti
no Coordinate dei punti misurati per la definizione no
G38
della rototraslazione per tre punti
Attivazione della rototraslazione definita da tre
sì no
G39 punti

G60 sì Chiude il profilo spline (HSM) sì


G61 sì Apre il profilo spline (HSM) no
G62 no Spezza il profilo spline in due con continuità no
G63 no Spezza il profilo spline in due con raccordo no
G66 no Spezza il profilo spline in due con spigolo no
Spezza il profilo spline in due con velocità contratta
G67 no no
sullo spigolo
no Identifica un movimento interrompibile con Active no
G31
Reset

45004606R 27
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.6 Sincronizzazione ed esecuzione del programma ISO


I termini "sincronizzato" e "non sincronizzato" si applicano solo ai blocchi di part program che non
implicano uno spostamento, cioè ai blocchi di assegnazione o di calcolo. Un blocco di movimento è
qualunque blocco che contenga, insieme ad altre azioni, un movimento degli assi. In altre parole:

Spostamento dell'asse
Codici M
Codici S
Codici T

Un blocco sincronizzato viene preso in considerazione, e quindi eseguito, solo dopo che il blocco di
movimento che lo precede nel programma è stato completato, cioè quando il movimento effettivo
dell'asse è stato eseguito. Al contrario, un blocco non sincronizzato viene eseguito non appena è stato
letto dall'interprete del part program, quindi quando magari un movimento precedente è ancora in
corso.

Il vantaggio dell'esecuzione del blocco asincrono consiste nel fatto che si possono realizzare assegnazioni
e calcoli complessi tra un movimento e l'altro. Questo permette di eliminare le attese tra due blocchi di
movimento dovute al tempo di esecuzione dei calcoli.

2.6.1 Sincronizzazione di default


Ad ogni accensione del sistema, vengono automaticamente sincronizzati i seguenti comandi e codici:

G16, G17, G18, G19, G35, G36, G80


AXF, AXS, AXT, CAM, CPA, CPD, DER, DEW, DLY, FLT, GTA, GTS, INP, LKH, LTH, PAD, PAE, REL,
RQO, SCF, SDA, SND, TCP, TTC, UDA, UPR, UVA, UVC, UVP, XDA, WAI, WOS
Tutti gli altri comandi non sono sincronizzati.

Questa assegnazione di default può essere cambiata. Ciò significa che i comandi che sono sincronizzati
per default all'accensione possono diventare asincroni e i comandi che non sono sincronizzati per default
all'accensione possono diventare sincroni. La sezione successiva spiega come modificare la
sincronizzazione di default.

NOTA:
Non può essere modificata la sincronizzazione di default per i triletterali AXF, AXS, AXT, CAM, FLT, GTA,
GTS, INP, LKH, LTH, TCP, TTC, UPR, UVA, UVC, UVP, XDA e per i codici G35 e G36.

45004606R 28
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.6.2 Modifica della sincronizzazione di default


In certe circostanze, il part program può richiedere la modifica della sincronizzazione di default.
Se il comando è sincronizzato per default ed il programmatore desidera che il comando sia eseguito
dall'interprete non appena viene letto (operazione asincrona), deve essere programmato un carattere "&"
nella prima posizione del blocco, cioè immediatamente dopo il numero "n".
Se il comando è asincrono e si vuole attivare un'operazione sincrona, il primo carattere nel blocco deve
essere un "#".
Sia # che & sono attivi solo nel blocco in cui sono programmati.

Per evitare possibili danni al pezzo in lavorazione, si tenga presente che programmare dei
blocchi sincronizzati tra i blocchi di contornitura causa lo svuotamento del buffer dei movimenti
(o coda enti) ad ogni esecuzione di un blocco sincronizzato. Questo determina un arresto per il
tempo necessario a ricaricare il buffer ed eseguire tutti i calcoli.

2.6.3 Interprete del Part Program


La lettura di un blocco di part program genera l'esecuzione di attività diverse in funzione del tipo di
blocco:
Un blocco di movimento sarà caricato in coda al buffer di movimento. La dimensione del buffer è
caratterizzata in AMP, tramite ODM, ed è compresa tra 2 e 1024 blocchi.

Un blocco asincrono di assegnazione o di calcolo verrà eseguito.

Tre tipi di eventi interrompono la lettura dei blocchi da parte dell'interprete del part program:
Il buffer di movimento è pieno. Quando il blocco di movimento attivo sarà eseguito, l'interprete
potrà leggere un altro blocco di movimento e caricarlo in coda al buffer.

Viene letto un blocco non di movimento che contiene un comando sincronizzato o un codice che
forza la sincronizzazione. L'interprete non riparte finché l'ultimo blocco di movimento caricato
non è eseguito. A questo punto viene eseguito il blocco che programma la sincronizzazione e
l'interprete inizia la lettura dei blocchi successivi.

Le condizioni di errore.

45004606R 29
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.6.4 Ordine di attuazione comandi ISO


1. Asse diametrale
2. Fattore di scala (SCF)
3. Unità di misura (G70 G71)
4. Compensazioni vettoriali (u v w)
5. Modalità di programmazione (G90 G91)
6. Lavorazione in Mirror (MIR)
7. Rotazione (ROT)
8. Origini (UAO UTO UIO G92)

2.6.5 Limiti nella programmazione per numeri double


Il numero double viene rappresentato coerentemente allo standard numerico IEEE attraverso un floating-
point su 32bit.
La precisione del numero è quindi limitata a 17 cifre in totale, con un massimo di 17 cifre per il numero
intero e 16 per i decimali.
Se vengono programmate più cifre di quelle consentite, il sistema non visualizza nessun errore ma
esprime il valore nel formato scientifico (numero con esponente) e tronca il numero programmato alla
diciassettesima cifra perdendo così precisione.

2.6.6 TRACE – Maschera per tracciare informazioni di log su file


L’istruzione TRACE definisce una variabile, su 4 byte, il cui valore permette di tracciare su file
informazioni tipo comandi o posizioni eseguiti dal Processo. Se la variabile TRACE è diversa da 0 viene
creato, nella cartella temporanea di Windows dove risiede il sistema OPEN, il file CNCdebug_log.txt.
Questo file è comune a tutti i Processi configurati e quindi permette di tener traccia anche della
sequenzialità dei comandi tra loro scambiati. A fronte di un comando RESET su un qualunque Processo,
se le variabili TRACE di tutti i Processi sono nulle il file viene chiuso.
Per accedere al file creare un drive logico, di generico nome e path “\temp”. Trascinare quindi il file
CNCdebug_log.txt in un’altra cartella, nella quale si potrà accere al file in lettura e/o scrittura. Per
maggiori informazioni sulla configurazione di drive logici fare riferimento al manuale d’uso.

Il significato dei vari bit della variabile TRACE è il seguente:

Bit 0: se il bit è settato a 1, vengono salvati su file tutti i comandi esterni ricevuti da quel
Processo e relativo ambiente mittente.

Bit 1: se il bit è settato a 1, vengono salvati su file tutti i comandi e sottocomandi ricevuti dai
task SPV, ELB e SYNC con relativo stato e sottostato del task.

Bit 2: se il bit è settato a 1 vengono salvate varie informazioni relative al blocco di programma
analizzato, alle posizioni dell’ente di movimento calcolato e a meccanismi di sincronizzazione
quote tra Processo e Interpolatore.

45004606R 30
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3. PROGRAMMAZIONE DEGLI ASSI

3.1 MOVIMENTO DEGLI ASSI


3.1.1 Definizione del movimento degli assi
In questo manuale le direzioni di movimento dell'asse vengono definite secondo lo standard EIA RS267.
Per convenzione, si assume sempre che lo spostamento dell'asse sia quello dell'utensile verso il pezzo in
lavorazione. Non importa se l'utensile si sposti verso il pezzo in lavorazione o se sia il pezzo in
lavorazione a spostarsi verso l'utensile.

Il controllo dispone di quattro livelli di definizione dei parametri dinamici dei movimenti (accelerazione,
decelerazione, jerk, dejerk, tempo di rampa in accelerazione e tempo di rampa in decelerazione):
parametri di default, sul profilo, locali al blocco e legati all’asse.

I parametri di default e quelli legati all’asse vengono definiti in AMP, mentre quelli sul profilo e quelli
locali al blocco vengono definiti tramite il codice F.

La feed di lavoro può essere programmata in diverse modalità.

Per definire tali modalità si utilizzano i G code elencati nella seguente tabella:
CODICE G FUNZIONE
G93 Avanzamento espresso come l’inverso del tempo necessario a completare lo
spostamento
G94 Avanzamento in mm o pollici al minuto
G95 Avanzamento specificato come mm o pollici a giro del mandrino

I principali tipi di movimento sono definiti dai codici G elencati nella seguente tabella:
CODICE G FUNZIONE
G00 Posizionamento degli assi in rapido
G01 Interpolazione lineare
G10 Interpolazione lineare con parametri dinamici di rapido
G02 Interpolazione circolare oraria
G03 Interpolazione circolare antioraria
G12 Interpolazione circolare oraria nello spazio
G13 Interpolazione circolare antioraria nello spazio
G14 Interpolazione circolare per tre punti nello spazio
G33 Filettatura a passo costante o variabile

45004606R 31
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.2 ACCUR – Precisione di calcolo


Il codice ACCUR definisce la precisione di calcolo interna.

Sintassi

ACCUR = valore

dove:
valore è un valore che indica il valore della precisione di calcolo e utilizza l’unità di misura attiva
(mm o inch). Può essere programmato direttamente tramite un numero reale o
indirettamente tramite un parametro E

Caratteristiche:
Il valore di precisione indica il valore numerico al disotto del quale un numero reale viene assimilato a 0.
Generalmente la precisione di calcolo viene utilizzata all’interno per identificare angoli, lunghezze e
distanze che possono essere considerati nulli.

3.1.3 MOVNULL – Soglia di movimento nullo


Il codice MOVNULL definisce la soglia di movimento nullo

Sintassi

MOVNULL = valore

dove:
valore è un valore che indica il valore della soglia di movimento nulloo e utilizza l’unità di misura
attiva (mm o inch). Può essere programmato direttamente tramite un numero reale o
indirettamente tramite un parametro E

Caratteristiche:
Il valore di soglia di movimento nullo indica la lunghezza minima che deve avere un movimento perché
questo venga effettuato.
Tutti i movimenti la cui lunghezza è inferiore alla soglia di movimento nulla vengono scartati.

3.1.4 ISOCOMP – Maschera delle compatibilità


L’istruzione ISOCOMP definisce una variabile di sola lettura che contiene, su di un byte, le informazioni
di compatibilità.
Il significato dei vari bit della variabile è il seguente:

Bit 0: se il bit è settato i codici G2 e G3 funzionano in modalità ISO compatibile. Se il bit non è
settato i codici G2 e G3 funzionano come sui controlli Serie10 OSAI.
Bit 1: se il bit è settato le variabili di tipo H sono locali, cioè ogni livello di esecuzione dispone
del proprio gruppo di variabili H. Se il bit non è settato esiste solamente un solo gruppo di
variabili H che verrà condiviso per tutti i livelli di paramacro. Il caso di bit non settato
corrisponde alla comportamento dei sistemi Serie10 OSAI.

45004606R 32
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Bit 2: se il bit è settato a 1 l’accesso alla tabella tecnologica estesa in lettura è permesso
soltanto agli elementi appartenenti a una riga definita come valida (valore a 1 per il primo
elemento della riga. Se il bit è settato a 0 non viene effettuato nessun nessun controllo di
validità dei dati.
Bit 3: se il bit è settato a 0 il calcolo della riqualifica delle origini si considera come riferito alle
origini (come nei controlli Serie10 di OSAI). Se il bit è settato a 1 il calcolo della riqualifica delle
origini si considera come riferito all’asse.
Bit 4: se il bit è settato a 1 e le variabili H sono di tipo locale (bit 1 settato a 1), allora durante il
passaggio di livello verso una subroutine / paramacro le variabili H non esplicitamente assegnate
vengono azzerate. In caso contrario le variabili H non esplicitamente assegnate ereditano il
valore delle H del programma chiamante, ma la corrispondente variabile di controllo HF rimane
a 0.
Bit 5: se il bit è settato a 1 è possibile, tramite opportune funzioni PLC, ripristinare la situazione
di lavoro dopo alcuni tipi di emergenza, detti emergenze recuperabili
Bit 6: se il bit è settato a 1 il Reset non annulla le origini applicate agli assi. Tale
comportamento vale per tutti i tipi di origine: assoluta, incrementale e temporanea.
Bit 7: se il bit è settato a 1 è possibile migrare (rilasciare o acquisire) assi sui quali sia applicato
il correttore di lunghezza utensile. In caso contrario il controllo non permette tale operazione
andando in errore

Le informazioni di compatibilità sono settate nell’AMP attivo tramite ODM e corrispondono a


differenti parametri della ‘Configurazione Processo’ in ODM.
Il bit 0 di ISOCOMP corrisponde al parametro ‘Compatibilità comandi ISO’.
I bit 1 e 4 di ISOCOMP sono controllati dal parametro ‘Campo di esistenza delle variabili H’.
Il bit 2 di ISOCOMP corrisponde al parametro ‘Controllo accesso variabile $PTECH’.
Il bit 3 di ISOCOMP corrisponde al parametro ‘Modalità riqualifica origini’.
Il bit 5 di ISOCOMP corrisponde al parametro ‘Ripresa lavoro dopo emergenza’.
Il bit 6 di ISOCOMP corrisponde al parametro ‘Mantiene origini attive dopo Reset’.
Il bit 7 di ISOCOMP corrisponde al parametro ‘Permette migrazione di assi con lunghezza
utensile attiva’

45004606R 33
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.5 G93 G94 G95 – Modalità di programmazione feed


I codici G93, G94, G95 definiscono tre diverse modalità di programmazione per la feed.

Sintassi

G93[codici-G]
G94[codici-G]
G95[codici-G]

dove:
codici-G Altri codici G compatibili con G93, G94 e G95 (consultare "Codici G compatibili" nel Cap. 2)

Caratteristiche:
In G93 la funzione F definisce l'inverso del tempo necessario, espresso in minuti, per completare lo
spostamento:

F= velocità = 1/t (minuti)


distanza totale

La feed di lavoro deve essere obbligatoriamente specificata in ogni blocco quando G93 è attivo ed è
valida solo per quel blocco.
In G94 la funzione F definisce la velocità di avanzamento in millimetri al minuto (G71) o in pollici al
minuto (G70).
In G95, F specifica la velocità di avanzamento degli assi espressa in millimetri al giro (G71) o in pollici al
giro (G70) del mandrino.

45004606R 34
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.6 F – Definizione parametri dinamici e Feed di lavoro


Il codice F permette, a seconda della sintassi utilizzata, di definire i parametri dinamici o il solo valore
di feed di lavoro sul profilo. I parametri dinamici, che contengono anche il valore di feed di lavoro,
possono essere definiti come parametri validi sull’intero profilo (valori modali) o sul solo blocco ove
appaiono.

Sintassi

Fvalore

dove:
F identifica la feed di lavoro sul profilo
valore è un valore reale positivo che può essere specificato direttamente o indirettamente
tramite un parametro E. Specifica il valore di feed di lavoro sul profilo. L’unità di misura
dipende dall’unità di misura attiva e dal tipo di codice G attivo (G93-G94-G95).

Sintassi

{F|f}[%][[FvalF][,AvalA] [,DvalD] [,JvalJ] [,KvalK] [,TvalT] [,BvalB]]

dove:
{F|f} Indicatore per identificare il campo di validità dei parametri dinamici. F indica che i parametri si
riferiscono al profilo, mentre f indica che i parametri si riferiscono soltanto al blocco corrente.

% parametro opzionale. Indica che i valori specificati per i parametri dinamici sono da intendersi
come valore percentuale del valore di default definito nei parametri dinamici di processo dell’AMP
attivo.

F identificativo del parametro: feed di lavoro


A identificativo del parametro: accelerazione
D identificativo del parametro: decelerazione
J identificativo del parametro: jerk
K identificativo del parametro: dejerk
T identificativo del parametro: tempo di rampa (accelerazione)
B identificativo del parametro: tempo di rampa (decelerazione)

valF
valA
valD
valJ
valK
valT
valB sono valori reali positivi che possono essere specificati direttamente o indirettamente tramite un
parametro E. Specificano il valore del corrispondente parametro dinamico. L’unità di misura
dipende dall’unità di misura attiva e dal tipo di codice G attivo (G93-G94-G95).

45004606R 35
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche:
La sintassi completa per l’assegnazione dei parametri dinamici permette di specificare quattro tipi di
valori:
Valori assoluti lungo il profilo (modali):
F[[FvalF][,AvalA] [,DvalD] [,JvalJ] [,KvalK] [,TvalT] [,BvalB]]
Il parametro assumerà il valore specificato nel comando. Tale valore sarà valido fino al RESET
successivo o fino ad un’altra assegnazione.

Valori percentuali lungo il profilo (modali):


F%[[FpercF][,ApercA] [,DpercD] [,JpercJ] [,KpercK] [,TpercT] [,BpercB]]
Il valore specificato dal comando corrisponde alla percentuale del default definito nei parametri
dinamici di processo dell’AMP attivo per il parametro corrente. Il valore risultante sarà valido
fino al RESET successivo o fino ad un’altra assegnazione.

Valori assoluti per il blocco corrente.


f[[FvalF][,AvalA] [,DvalD] [,JvalJ] [,KvalK] [,TvalT] [,BvalB]]
Il parametro assumerà il valore specificato nel comando. Tale valore sarà valido soltanto durante
l’esecuzione del blocco al quale appartiene il comando.

Valori percentuali per il blocco corrente:


f%[[FpercF][,ApercA] [,DpercD] [,JpercJ] [,KpercK] [,TpercT] [,BpercB]]
Il valore specificato dal comando corrisponde alla percentuale del default definito nei parametri
dinamici di processo dell’AMP attivo per il parametro corrente. Il valore risultante sarà valido
soltanto durante l’esecuzione del blocco al quale appartiene il comando.

E’ possibile programmare nello stesso blocco sia grandezze modali (precedute da F[])
che non modali (precedute da f[])

Per ogni parametro dinamico (per esempio l’accelerazione) esistono fino a quattro “livelli” di
definizione:

1. Valore locale al blocco (specificato tramite la sintassi f[Avalore]


2. Valore lungo il profilo o valore modale (specificato tramite la sintassi F[Avalore]
3. Valore di default (specificato nell’AMP attivo nella configurazione processo)
4. Valore fisico dell’asse (specificato nell’AMP attivo nella configurazione assi)

La precedenza tra i livelli corrisponde a quella dell’elenco: il valore locale al blocco è quindi quello con
precedenza maggiore, il valore fisico dell’asse è quello a precedenza minore.

Il comando di RESET ripristina per tutti i parametri i valori di default specificati nell’AMP.

Esempio 1:
Questo esempio mostra come programmare nello stesso blocco una Feed di lavoro sul profilo (grandezza
modale) e una accelerazione valida solo sul movimento programmato (grandezza non modale):

G90 G1 X100 F1000 f[A20000]

Esempio 2:
G71
G90 G1 X100 F[A2000, T200] ; La feed modale viene settata a 2000 mm / min, il tempo minimo di
rampa in accelerazione a 200 ms

45004606R 36
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 3:
G70
G91 G1 X200 f%[F50] ; La feed applicata a questo blocco equivale al 50% della feed di default
definita in AMP,espressa in pollici / min.

3.1.7 G00 – Posizionamento rapido degli assi


G00 definisce uno spostamento lineare alla velocità di rapido, simultaneo e coordinato su tutti gli assi
programmati nel blocco.

Sintassi

G00 [codici-G] [assi] [offset ] [F..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G00 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico. Il valore


numerico può essere programmato direttamente con un valore decimale o indirettamente
con un parametro E. Possono essere definiti fino a dodici assi.

offset Fattori di correzione sul profilo. Questi fattori vengono introdotti per tre assi
rispettivamente con i caratteri u, v, w. Per ulteriori informazioni consultare la sezione
"Compensazione parassiale" nel capitolo 5.

F Parametri dinamici movimenti coordinati. Viene specificata dall'indirizzo F rispettandone


la sintassi. Questo parametro non incide sullo spostamento degli assi programmato nel
blocco G00, ma definisce i parametri dinamici per spostamenti successivi e come tale
viene memorizzato. La velocità di avanzamento rapido forzata da G00 è la composizione
vettoriale delle velocità di rapido degli assi programmati nel blocco. La velocità di
avanzamento rapido massima per ogni asse viene definita durante la caratterizzazione
tramite ODM.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

Esempio:
G90 G0 X100 f[A2000, T200] ; Il movimento in rapido viene eseguito con una accelerazione di 2000
mm/min e con un tempo minimo di rampa in accelerazione di 200 ms

45004606R 37
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.8 G01 – Interpolazione lineare


G01 definisce un movimento lineare alla velocità di lavoro programmata, simultaneo e coordinato su
tutti gli assi programmati nel blocco.

Sintassi

G01 [codici-G] [assi] [offset ] [F..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G01 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico. Il valore


numerico può essere programmato direttamente con un valore decimale o indirettamente
con un parametro E. Possono essere definiti fino a dodici assi.

offset Fattori di correzione sul profilo. Questi fattori vengono introdotti per tre assi
rispettivamente con i caratteri u, v, w. Per ulteriori informazioni consultare la sezione
"Compensazione parassiale" nel Capitolo 5.

F Parametri dinamici da utilizzare per eseguire il movimento. Vengono specificati


dall'indirizzo F (o f nel caso di parametri relativi al solo blocco corrente) rispettandone la
sintassi.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

Esempio:
Questo esempio mostra come programmare un codice G01.

Y
Programma:

N70 G0 X10 Y10


40
N80 G01 X90 Y40 F200

10

x
0
90
10
0

45004606R 38
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.9 G10 – Interpolazione lineare con parametri dinamici di rapido


G10 definisce un movimento lineare calcolato utilizzando i parametri dinamici di rapido (feed,
accelerazione, jerk…), simultaneo e coordinato su tutti gli assi programmati nel blocco.

Sintassi

G10 [codici-G] [assi] [offset ] [F|f..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G10 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico. Il valore


numerico può essere programmato direttamente con un valore decimale o indirettamente
con un parametro E. Possono essere definiti fino a dodici assi.

offset Fattori di correzione sul profilo. Questi fattori vengono introdotti per tre assi
rispettivamente con i caratteri u, v, w. Per ulteriori informazioni consultare la sezione
"Compensazione parassiale" nel capitolo 5.

F
f Parametri dinamici movimenti coordinati. Vengono specificati dall'indirizzo F
rispettandone la sintassi. Questo parametro non incide sullo spostamento degli assi
programmati con G10 attiva, ma definisce i parametri dinamici per spostamenti successivi
a velocità di lavoro. I parametri dinamici di rapido forzati da G10 sono la composizione
vettoriale dei parametri dinamici di rapido degli assi programmati nel blocco. I valori
massimi per ogni asse vengono definiti in AMP durante la caratterizzazione tramite ODM.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

45004606R 39
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.10 G02 G03 – Interpolazione circolare


I movimenti circolari vengono definiti dai seguenti codici:

G02 Interpolazione circolare oraria


G03 Interpolazione circolare antioraria

Il movimento circolare viene eseguito alla velocità di lavoro programmata ed è coordinato e simultaneo
su tutti gli assi programmati nel blocco.

Sintassi

G02 [codici-G] [assi] I.. J.. K.. [F|f..] [ausiliarie]


oppure
G02 [codici-G] [assi] R.. [F|f..] [ausiliarie]

G03 [codici-G] [assi] I.. J.. K.. [F|f..] [ausiliarie]


oppure
G03 [codici-G] [assi] R.. [F|f..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G02 e G03 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico programmato


direttamente con un valore decimale o indirettamente con un parametro E.
Se non vi sono assi programmati nel blocco, il movimento eseguito è un cerchio completo
nel piano di interpolazione attivo.

I A seconda del valore della variabile di compatibilità ISO (ISOCOMP) il significato del
parametro varia:
Compatibilità Serie10 OSAI: il parametro corrisponde all’ascissa del centro
del cerchio. Il simbolo usato per l'ascissa è sempre l indipendentemente
dal piano di interpolazione attivo.
Compatibilità ISO Standard: il parametro corrisponde alla coordinata del
centro del cerchio rispetto al primo asse del processo. Il valore indicato
corrisponde allo spostamento incrementale rispetto al punto corrente. Può
essere omesso nel caso in cui il primo asse non appartenga al piano di
interpolazione.
Questo valore, espresso in millimetri o pollici, può essere programmato direttamente o
indirettamente con un parametro E. Quando l'asse corrispondente è un asse diametrale,
viene espresso in modo diametrale.

45004606R 40
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

J A seconda del valore della variabile di compatibilità ISO (ISOCOMP) il significato del
parametro varia:
Compatibilità Serie10 OSAI: il parametro corrisponde all’ordinata del
centro del cerchio. Il simbolo usato per l'ordinata è sempre J
indipendentemente dal piano di interpolazione attivo.
Compatibilità ISO Standard: il parametro corrisponde alla coordinata del
centro del cerchio rispetto al secondo asse del processo. Il valore indicato
corrisponde allo spostamento incrementale rispetto al punto corrente. Può
essere omesso nel caso in cui il secondo asse non appartenga al piano di
interpolazione.
Questo valore, espresso in millimetri o pollici, può essere programmato direttamente o
indirettamente con un parametro E. Quando l'asse corrispondente è un asse diametrale,
viene espresso in modo diametrale.

K Il parametro viene utilizzato soltanto se la variabile di compatibilità ISO (ISOCOMP) è


settata a compatibilità ISO Standard.
Corrisponde alla coordinata del centro del cerchio rispetto al terzo asse del processo.
Può essere omesso nel caso in cui il terzo asse non appartenga al piano di
interpolazione.
Questo valore, espresso in millimetri o pollici, può essere programmato direttamente o
indirettamente con un parametro E. Quando l'asse corrispondente è un asse
diametrale, l'ordinata viene espressa in modo diametrale.

R Raggio del cerchio, alternativo alle coordinate I e J. Se l'arco di cerchio è minore o uguale
a 180 gradi, il raggio deve essere programmato con segno positivo; se l'arco di cerchio è
maggiore di 180 gradi il raggio deve essere programmato con segno negativo.

NOTA: Non si può usare la R per archi di 360 gradi.

F
f Parametri dinamici da utilizzare per eseguire il movimento. Vengono specificati
dall'indirizzo F (o f nel caso di parametri relativi al solo blocco corrente)
rispettandone la sintassi.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

Caratteristiche:
Il massimo arco programmabile è di 360 gradi, cioè un cerchio completo. Il piano di interpolazione va
definito in precedenza tramite i codici G16, G17, G18, G19. Il piano di interpolazione iniziale viene
definito nell’AMP tramite ODM. Le coordinate del punto iniziale (programmate nel blocco precedente),
del punto finale e del centro della circonferenza devono essere calcolate in modo tale che la differenza
tra raggio iniziale e raggio finale sia inferiore al valore di default (0,01 mm o 0,00039 pollici). Se la
differenza è uguale o maggiore il controllo visualizza un messaggio di errore e la circonferenza non viene
eseguita.

L'interpolazione circolare può essere programmata anche in modo incrementale (G91), cioè con le
coordinate del punto finale e del centro della circonferenza riferite a quelle del punto iniziale
precedente del movimento circolare.

45004606R 41
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Se nella configurazione AMP il parametro “Compatibilità comandi ISO” è settato a “ISO standard” i
parametri I, J e K sono sempre considerati come valori incrementali rispetto al punto iniziale del
movimento circolare.

Il verso (orario o antiorario) dell'interpolazione circolare viene stabilito guardando il piano sul quale
viene eseguita dal lato positivo dell'asse normale ad esso (vedere esempio).
La figura seguente mostra le direzioni di interpolazione circolare riferite ai piani di esecuzione.

G03
G02
XY
Y

G02
G02

G03
G03

Z
Y
ZX

Direzioni per interpolazione circolare

Interpolazione circolare in programmazione assoluta con le coordinate I e J del centro del cerchio.
N14 X10 Y20
N15 G2 X46 Y20 I28 J20 F200
N16 G3 X64 Y38 I46 J38

Y
G02
38

G03
20

X
46

64
28
0

Interpolazione circolare in programmazione assoluta con il valore R del raggio del cerchio.
N14 X10 Y20
N15 G2 X46 Y20 R18 F200
N16 G3 X64 Y38 R18

Interpolazione circolare in programmazione incrementale con le coordinate.


N14 X10 Y20
N15 G2 G91 X36 I18 J0 F200
N16 G3 X18 Y18 I0 J18

45004606R 42
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Interpolazione circolare in programmazione incrementale con il valore del raggio.


N14 X10 Y20
N15 G2 G91 X36 R18 F200
N16 G3 X18 Y18 R18

3.1.11 G12 G13 – Interpolazione circolare oraria ed antioraria nello spazio


I movimenti circolari nello spazio con senso di rotazione definito esplicitamente vengono definite dai
seguenti codici:

G12 Interpolazione circolare oraria nello spazio


G13 Interpolazione circolare antioraria nello spazio

Il movimento circolare viene eseguito alla velocità di lavoro programmata ed è coordinato e simultaneo
su tutti gli assi programmati nel blocco.

Sintassi

G12 [codici-G] [assi] I.. J.. K.. [x.. y..z..] [F|f..] [ausiliarie]

G13 [codici-G] [assi] I.. J.. K.. [x.. y..z..] [F|f..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G12 e G13 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico programmato


direttamente con un valore decimale o indirettamente con un parametro E.
Se non vi sono assi programmati nel blocco, il movimento eseguito è un cerchio completo
nel piano di interpolazione attivo.

I Ascissa del centro del cerchio. Questo valore, espresso in millimetri o pollici, può essere
programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ascissa viene espressa in modo diametrale. Il
simbolo usato per l'ascissa è sempre l indipendentemente dal piano di interpolazione
attivo.

J Ordinata del centro del cerchio. Questo valore, espresso in millimetri o pollici, può essere
programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ordinata viene espressa in modo diametrale. Il
simbolo usato per l'ordinata è sempre J indipendentemente dal piano di interpolazione
attivo.

K Coordinata del terzo asse del centro del cerchio. Questo valore, espresso in millimetri o
pollici, può essere programmato direttamente o indirettamente con un parametro E.
Quando l'asse corrispondente è un asse diametrale, l'ordinata viene espressa in modo
diametrale. Il simbolo usato per la coordinata del terzo asse è sempre K
indipendentemente dal piano di interpolazione attivo.

45004606R 43
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

xyz Indicano le tre componenti di un versore ortogonale al piano cui appartiene il movimento
circolare programmato. Questi parametri sono utilizzati, e richiesti, soltanto nel caso in
cui il movimento corrisponda ad una circonferenza intera o ad una semicirconferenza

F
f Parametri dinamici da utilizzare per eseguire il movimento. Vengono specificati
dall'indirizzo F (o f nel caso di parametri relativi al solo blocco corrente)
rispettandone la sintassi.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

Caratteristiche:
Il massimo arco programmabile è di 360 gradi, cioè un cerchio completo.

La terna cartesiana di riferimento va definita in precedenza tramite i codici G16, G17, G18, G19. La
terna cartesiana iniziale viene definita nell’AMP tramite ODM.
Le coordinate del punto iniziale (programmate nel blocco precedente), del punto finale e del centro
della circonferenza devono essere calcolate in modo tale che la differenza tra raggio iniziale e raggio
finale sia inferiore al valore di default (0,01 mm o 0,00039 pollici). Se la differenza è uguale o maggiore
il controllo visualizza un messaggio di errore e la circonferenza non viene eseguita.
L'interpolazione circolare può essere programmata anche in modo incrementale (G91), cioè con le
coordinate del punto finale e del centro della circonferenza riferite a quelle del punto iniziale del
movimento circolare.

Se nella configurazione AMP il parametro “Compatibilità comandi ISO” è settato a “ISO standard” i
parametri I, J e K sono sempre considerati come valori incrementali rispetto al punto iniziale del
movimento circolare.

Il piano cui appartiene l’arco programmato corrisponde al piano ottenuto:


ruotando la terna cartesiana in modo da sovrapporre l’asse delle ascisse con il segmento che
unisce il centro dell’arco con il punto iniziale dell’interpolazione
imponendo l’appartenenza del punto finale a tale piano
Poiché nel caso di cerchi completi o semicerchi i tre punti dell’arco di circonferenza (punto iniziale,
punto finale e centro) sono allineati, è necessario specificare tramite gli indirizzi x, y, z le componenti
di un versore ortogonale al piano di interpolazione.

Il verso (orario o antiorario) dell'interpolazione circolare viene stabilito guardando il piano sul quale
viene eseguita dal lato positivo dell'asse normale ad esso (vedere esempio).

45004606R 44
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Se la funzionalità di controllo asse tangenziale (corrispondente al triletterale AXT) è attiva


allora il movimento circolare nello spazio viene considerato come un movimento rettilineo nel
piano definito per il controllo.
Se esistono aree protette attive, il movimento circolare nello spazio verrà approssimato
tramite due movimenti rettilinei nel piano di definizione dell’area protetta. I movimenti
corrisponderanno rispettivamente al movimento tra il punto iniziale ed il punto corrispondente
alla semiapertura dell’arco ed al movimento tra il punto corrispondente alla semiapertura
dell’arco ed il punto finale del movimento circolare. La funzione di correzione raggio utensile
(codici G41-G42) non è compatibile con i movimenti circolari nello spazio

Esempi:
Z
G17
G1X10Y5Z0 F[F2000, A3000,D3000] Y
G13X15Y10Z5I15J10K0

X
Profilo programmato

G17 Y
G1X10Y5Z0 F[F2000, A3000,D3000]
G12X20I15J10K0y1

Profilo programmato

45004606R 45
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.12 G14 – Interpolazione circolare per tre punti nello spazio


Tramite il codice G14 è possibile definire un movimento circolare nello spazio specificando, oltre al
punto finale, un altro punto appartenente alla circonferenza.
I tre punti specificati non devono essere allineati, non è quindi possibile utilizzare questo codice G per
descrivere una circonferenza completa.

Sintassi:

G14 [codici-G] [assi] I.. J.. K.. [F|f..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G14 (consultare "Codici G compatibili" nel Cap. 2).

assi Carattere corrispondente ad un nome asse seguito da un valore numerico programmato


direttamente con un valore decimale o indirettamente con un parametro E.
Se non vi sono assi programmati nel blocco, il movimento eseguito è un cerchio completo
nel piano di interpolazione attivo.

I Ascissa del terzo punto del cerchio. Questo valore, espresso in millimetri o pollici, può
essere programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ascissa viene espressa in modo diametrale. Il
simbolo usato per l'ascissa è sempre l indipendentemente dal piano di interpolazione
attivo.

J Ordinata del terzo punto del cerchio. Questo valore, espresso in millimetri o pollici, può
essere programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ordinata viene espressa in modo diametrale. Il
simbolo usato per l'ordinata è sempre J indipendentemente dal piano di interpolazione
attivo.

K Coordinata del terzo asse del terzo punto del cerchio. Questo valore, espresso in
millimetri o pollici, può essere programmato direttamente o indirettamente con un
parametro E. Quando l'asse corrispondente è un asse diametrale, l'ordinata viene espressa
in modo diametrale. Il simbolo usato per la coordinata del terzo asse è sempre K
indipendentemente dal piano di interpolazione attivo.

F
f Parametri dinamici da utilizzare per eseguire il movimento. Vengono specificati
dall'indirizzo F (o f nel caso di parametri relativi al solo blocco corrente) rispettandone la
sintassi.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

45004606R 46
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche:
La terna cartesiana di riferimento va definita in precedenza tramite i codici G16, G17, G18, G19. La
terna cartesiana iniziale viene definita nell’AMP tramite ODM.
Il terzo punto utilizzato per definire la circonferenza deve stare tra il punto iniziale ed il punto finale
della stessa. La sua posizione definisce anche il verso di percorrenza della circonferenza.
Le coordinate del punto iniziale (programmate nel blocco precedente), del punto finale e del terzo
punto della circonferenza devono essere calcolate in modo tale che la differenza tra raggio iniziale e
raggio finale sia inferiore al valore di default (0,01 mm o 0,00039 pollici). Se la differenza è uguale o
maggiore il controllo visualizza un messaggio di errore e la circonferenza non viene eseguita.

L'interpolazione circolare può essere programmata anche in modo incrementale (G91), cioè con le
coordinate del punto finale e del centro della circonferenza riferite a quelle del punto iniziale
programmato nel blocco precedente.
Il verso (orario o antiorario) dell'interpolazione circolare viene stabilito guardando il piano sul quale
viene eseguita dal lato positivo dell'asse normale ad esso (vedere esempio).

Se la funzionalità di controllo asse tangenziale (corrispondente al triletterale AXT) è


attiva allora il movimento circolare nello spazio viene considerato come un movimento
rettilineo nel piano definito per il controllo.
Se esistono aree protette attive, il movimento circolare nello spazio verrà approssimato
tramite due movimenti rettilinei nel piano di definizione dell’area protetta. I movimenti
corrisponderanno rispettivamente al movimento tra il punto iniziale ed il punto
corrispondente alla semiapertura dell’arco ed al movimento tra il punto corrispondente
alla semiapertura dell’arco ed il punto finale del movimento circolare.
La funzione di correzione raggio utensile (codici G41-G42) non è compatibile con i
movimenti circolari nello spazio.

Esempio:
G17
G1X10Y5Z0 F[F2000, A3000,D3000] Z
G14 X20Y15Z0 I15J12.5K5

X
Profilo programmato

45004606R 47
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.13 CET – Tolleranza di precisione in interpolazion circolare


Il codice CET definisce, nelle interpolazioni circolari, la tolleranza di precisione entro la quale deve
restare la differenza tra raggio iniziale e raggio finale dell'arco di cerchio.

Sintassi

CET = valore

dove:
valore È il valore della tolleranza di precisione espresso in millimetri (pollici).
Il valore di default è 0.01 mm (0.000039 in).

Caratteristiche:
Se la differenza fra il raggio iniziale e quello finale è minore del valore di CET ma diversa da zero, il
sistema effettua una normalizzazione geometrica sui dati del cerchio secondo i valori specificati nei
codici CET e ARM.
Se la differenza è uguale o maggiore del valore assegnato a CET, si verifica un errore ed i punti finali
programmati non sono eseguiti. Se ciò accade, occorre modificare il programma oppure aumentare la
tolleranza definita da CET.

Il valore assegnato a CET può essere modificato nei seguenti modi:


Tramite ODM al momento della configurazione AMP
Tramite un data entry specifico
Tramite part program con la sintassi descritta.

I valori assegnati a CET sono sempre espressi nell'unità di misura corrente del processo (vengono
applicate le funzioni G70/G71) .

Nel caso in cui la programmazione di un arco di cerchio comporti una differenza tra il raggio iniziale e
finale maggiore del valore CET, il cerchio può essere comunque eseguito in due modi:
Aumentando il valore assegnato a CET (deve essere maggiore della differenza dei raggi)
Programmando l'arco di cerchio specificando il raggio anziché il centro del cerchio: G2/G3,
punto finale e raggio R

Con un'operazione di RESET si ripristina la tolleranza di precisione di default.

Esempio:
G71
CET=0.02
In questo esempio il valore della tolleranza definito da CET è di 0.02 millimetri.

45004606R 48
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.14 FCT – Soglia per cerchio completo


Nelle interpolazioni circolari il codice FCT definisce la soglia della distanza fra il punto iniziale e quello
finale in un arco. Entro tale distanza l'arco è considerato un cerchio completo.

Sintassi

FCT = valore

dove:
valore È il valore della soglia per cerchio completo espresso in millimetri (pollici).
Il valore di default è 0.001 mm (0.000039 in).

Caratteristiche:
Il comando FCT consente di superare eventuali imprecisioni di programmazione che altrimenti
impedirebbero al sistema di forzare un cerchio completo. Quando la distanza fra il primo e l'ultimo
punto è inferiore alla soglia FCT, il sistema utilizza i punti come coincidenti e forza un cerchio completo.
Il valore di soglia assegnato a FCT può essere modificato nei seguenti modi:
Tramite ODM al momento della configurazione AMP
Tramite interfaccia utente
Tramite part progra con la sintassi descritta

I valori assegnati a FCT sono sempre espressi nell'unità di misura corrente del processo (vengono
applicate le funzioni G70/G71).

Il RESET ripristina i valori di caratterizzazione.

Esempio:
G71
FCT=0.005
In questo esempio il valore della soglia definito da FCT è di 0.005 millimetri.

45004606R 49
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.15 ARM – Definizione della modalità di normalizzazione dell’arco


Il codice ARM definisce la modalità applicata dal sistema per normalizzare e rendere geometricamente
congruente un arco programmato con le coordinate del centro (I, J e K) ed il punto finale.

La normalizzazione viene applicata nel caso in cui la differenza fra il raggio iniziale ed il raggio finale si
situi entro la tolleranza di precisione per l'interpolazione circolare (tolleranza caratterizzata o tolleranza
programmata via comando CET).

Prima di eseguire un arco, il sistema calcola la differenza fra i raggi iniziale e finale.
Se la differenza fra i raggi iniziale e finale è zero, il controllo esegue l'arco programmato senza
normalizzarlo.
Tranne che nei casi di ARM=4 e ARM=5, se la differenza fra i raggi iniziale e finale è superiore al
valore definito dall'utente in CET, il controllo non esegue il movimento ma si ferma e visualizza
un messaggio di errore profilo.
Tranne che nei casi di ARM=4 e ARM=5, se la differenza fra i raggi iniziale e finale rientra nella
variazione definita dall'utente in CET, il sistema esegue il movimento con la normalizzazione
specificata in ARM dall'utente.
Se la distanza fra il punto iniziale e quello finale è minore della soglia FCT, il sistema forza un
cerchio completo.

Sintassi

ARM = modalità arco

dove:
modalità arco E' un valore numerico che definisce la modalità di normalizzazione dell'arco.
I valori ammessi sono:
0 Usa il raggio medio e sposta il centro; verifica il CET sulla differenza dei
raggi e sullo spostamento del centro.
1 Usa il raggio finale e sposta il punto iniziale; verifica il CET sulla differenza
dei raggi.
2 Usa il raggio medio e sposta il centro; verifica il CET sulla differenza dei
raggi.
3 Usa il raggio medio e sposta i punti iniziale e finale; verifica il CET sulla
differenza dei raggi.
4 Usa il raggio ottimale, che minimizza lo spostamento del centro; verifica il
CET sullo spostamento del centro.
5 Usa il raggio ottimale, che minimizza lo spostamento del centro; trascura il
CET.
Il valore di default è 2.

Caratteristiche:
La modalità di normalizzazione dell'arco può essere modificata nei seguenti modi:
Tramite ODM al momento della configurazione AMP.
Tramite interfaccia utente.
Tramite part program con la sintassi descritta.

Le figure che seguono illustrano le varie modalità di normalizzazione.

45004606R 50
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

ARM=0
Questo è un arco passante per i punti iniziale e finale programmati, il cui centro è spostato entro la
tolleranza definita da CET. In questo caso l'arco viene eseguito con un raggio medio.

ARM=1
Questo è un arco passante per il punto iniziale corretto entro la tolleranza definita in CET e per il punto
finale programmato.

ARM=2
Questo è un arco il cui centro è spostato senza il vincolo della tolleranza definita in CET. In questo caso
l'arco viene eseguito con un raggio medio, mentre i punti di partenza e arrivo vengono rispettati.

45004606R 51
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

ARM=3
Se lo spostamento del centro dell'arco avviene entro la tolleranza definita in CET, l'arco avrà un centro
spostato e passerà per i punti iniziale e finale programmati. Se lo spostamento del centro non rientra
nella tolleranza CET, l'arco avrà il centro programmato e passante per i punti iniziale e finale spostati
(entrambi i punti vengono spostati entro la tolleranza CET/2).
In questo caso l'arco è eseguito con raggio medio.

Nella modalità ARM=1 o ARM=3, il profilo generato può presentare delle imperfezioni
("scalini") come visibile negli esempi.
Con ARM=1 si avrà un'imperfezione all'inizio dell'arco di cerchio pari alla differenza dei
raggi iniziale e finale.
Con ARM=3 si avrà un'imperfezione sia all'inizio che alla fine dell'arco di cerchio.
Per evitare che le imperfezioni generate provochino "Servo Error", si consiglia di usare un
valore di CET inferiore alla soglia di “Errore di posizione” caratterizzata nell’AMP
corrente.

45004606R 52
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

ARM=4 e ARM=5
Indipendentemente dall'errore dei raggi, viene calcolato il centro ottimo che permette di unire i punti
iniziale e finale con un cerchio, minimizzando la distanza tra centro calcolato e centro richiesto.
Nel caso di ARM=4, l'arco è eseguito solo se la distanza tra centro spostato e centro richiesto è inferiore al
CET.
Nel caso di ARM=5, l'arco è eseguito indipendentemente dallo spostamento del centro.

CET punto di partenza

retta mediana

Arco con raggio ottimo


CET

C punto finale C= centro programmato


CS CS = centro spostato ottimo

Retta ortogonale alla mediana e passante per C

45004606R 53
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.16 SHAPERR – Soglia per riduzione velocità in interpolazione circolare / KVGAIN –


costante di riduzione della velocità in interpolazione circolare
Le variabili SHAPERR (CRT della Serie 10 OSAI) e KVGAIN (CRK della Serie 10 OSAI) permettono di ridurre
la velocità sugli enti circolari applicando un algoritmo che è funzione del raggio e dell’errore di
asservimento tollerato.

Sintassi

SHAPERR = valore

dove:
valore è il massimo scostamento in mm (o pollici) desiderato tra la traiettoria programmata e la
traiettoria reale. È numero reale non negativo il cui limite superiore è 9999.9. Può essere
programmato direttamente tramite un numero reale o indirettamente tramite una
variabile. Il valore 0 (zero), che rappresenta il default, annulla la prestazione.

KVGAIN = valore

dove:
valore è il guadagno dell’asservimento di posizione dell’asse (Kv). Il valore da specificare deve
essere pari a quello configurato in AMP nel corrispondente campo dell’asse. Può essere
programmato direttamente tramite un numero reale o indirettamente tramite una
variabile.

Se sia SHAPERR che KVGAIN sono nulli allora non viene applicata alcuna riduzione di velocità sugli enti
circolari.

Caratteristiche:
Se SHAPERR non è nullo, la velocità su tutti gli enti circolari viene ridotta in base al raggio di curvatura
della traiettoria al fine di contenere l’errore entro il limite specificato. Se KVGAIN è nullo il sistema
preleva quello configurato in AMP.
La massima velocità ammessa sarà quindi funzione del raggio, dell’errore specificato da SHAPERR e del
guadagno di asservimento KVGAIN secondo la seguente formula:

Vmax  KVGAIN * 2 * R * SHAPERR * f (VFF , FLT _ 2)

dove f (VFF , FLT _ 2) è una funzione che dipende dal Velocity Feed Forward (VFF) impostato e
dall’eventuale filtro di tipo 2 attivato (filtro di compensazione dell’accelerazione centripeta) e varia da
un minimo di 1 (quando VFF = 0) e un massimo di √𝜋 (quando il VFF è impostato al 100%). Per ulteriori
dettagli sul filtro di tipo 2 si faccia riferimento al capitolo dei filtri di questo manuale.

NOTA:
Poiché la velocità sui cerchi viene limitata in base al valore della percentuale di VFF è necessario, se si
lavora di VFF, aver abilitato la variabile di processo VFF e configurato lo stesso valore di percentuale sia
sugli azionamenti che sugli assi.

45004606R 54
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

I valori assegnati alle variabili SHAPERR e KVGAIN possono essere modificati nei seguenti modi:
tramite ODM all’atto della configurazione AMP
tramite part program con la sintassi descritta

I valori assegnati a SHAPERR sono sempre espressi nell’unità di misura corrente del processo (vengono
applicate le funzioni G70/G71).

Il RESET ripristina i valori di caratterizzazione.

3.1.17 Interpolazione elicoidale

I codici G02 o G03 permettono di programmare, in un solo blocco di programma, una traiettoria
elicoidale da eseguirsi con il movimento contemporaneo degli assi del piano in interpolazione circolare e
dell'asse ortogonale al piano in interpolazione lineare.
Per programmare una traiettoria elicoidale è sufficiente aggiungere, nel blocco dell'interpolazione
circolare, la quota di profondità ed il passo dell'elica (K).

Sintassi

G02 [codici-G] [assi] I.. J.. K.. [F..] [ausiliarie]


oppure
G02 [codici-G] [assi] R.. K.. [F..] [ausiliarie]

G03 [codici-G] [assi ] I.. J.. K.. [F..] [ausiliarie]


oppure
G03 [codici-G] [assi ] R.. K.. [F..] [ausiliarie]

dove:
codici-G Altri codici G compatibili con G02 e G03 (consultare "Codici G compatibili" nel Cap. 2)

assi Carattere corrispondente ad un nome asse seguito da un valore numerico programmato


direttamente con un valore decimale o indirettamente con un parametro E.
Se non vi sono assi programmati nel blocco, lo spostamento è un cerchio completo nel
piano di interpolazione attivo.

I Ascissa del centro del cerchio. Questo valore, espresso in millimetri o pollici, può essere
programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ascissa viene espressa in modo diametrale. Il
simbolo usato per l'ascissa è sempre l a prescindere dal piano di interpolazione attivo.

J Ordinata del centro del cerchio. Questo valore, espresso in millimetri o pollici, può essere
programmato direttamente o indirettamente con un parametro E. Quando l'asse
corrispondente è un asse diametrale, l'ordinata viene espressa in modo diametrale. Il
simbolo usato per l'ordinata è sempre J a prescindere dal piano di interpolazione attivo.
R Raggio del cerchio. Viene programmato con l'indirizzo R seguito dal valore del raggio ed è
alternativo alle coordinate I e J.

45004606R 55
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

K Passo dell'elica. Questo parametro viene programmato con l'indirizzo K seguito dal valore
del passo. Può essere omesso quando la profondità dell'elica è minore di un passo.
F Velocità di avanzamento. Viene programmata con l'indirizzo F seguito dal valore di
avanzamento. Se assente, la velocità sarà quella programmata in precedenza. Se non è
stata programmata alcuna velocità il controllo genererà un errore.

ausiliarie Funzioni ausiliarie programmabili M, S, T. Nel blocco possono essere programmate fino a
quattro funzioni M, una S (velocità di rotazione del mandrino) e una T (selezione
dell'utensile).

Caratteristiche:
Se la lunghezza dell'elica è un multiplo di K, non è necessario programmare il punto finale.
Se la lunghezza dell'elica non è uguale ad un numero intero di passi (movimento sul terzo asse diverso da
n * K), la lunghezza dell'arco di cerchio deve essere calcolata con il resto decimale del numero di passo.
Per esempio, se Z = 2,7 * K, allora l'arco che deve essere programmato è 360 * (2,7 - 2) = 252 gradi.

Esempio:
G2 X . . Y. . Z . . I . . J . . K . . F. .
In questo esempio, gli indirizzi X, Y, I, J vengono utilizzati per la programmazione del cerchio; gli
indirizzi Z e K vengono utilizzati per la programmazione dell'elica e sono rispettivamente la lunghezza e
il passo dell'elica. La figura seguente mostra le dimensioni dell'interpolazione elicoidale.

Dimensioni dell'elica

45004606R 56
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.18 G33 – Filettatura a passo costante o variabile


G33 definisce un movimento di filettatura cilindrica o conica a passo costante o variabile. Il movimento è
coordinato con la rotazione del mandrino. I parametri programmati nel blocco identificano il tipo di
filettatura da eseguire.

Sintassi

G33 [assi] K.. [I..] [R..]

dove:
assi Lettera corrispondente ad un asse seguita da un valore numerico programmato
direttamente con un valore decimale o indirettamente con un parametro E.

K Passo di filettatura che deve sempre essere programmato. Per filettature a passo
variabile, K è il passo iniziale. Viene programmato con l'indirizzo K seguito dal valore di
avanzamento.

I Variazione di passo per filettature a passo variabile. Per filettature a passo crescente I
deve essere positivo, per filettature a passo decrescente I deve essere negativo. Viene
programmata con l'indirizzo I seguito dal valore di avanzamento.

R Sfasamento rispetto alla posizione angolare zero del mandrino espressa in gradi. R viene
utilizzato nelle filettature a più principi per non spostare il punto di partenza. Viene
programmato con l'indirizzo R seguito dal valore di avanzamento.

Caratteristiche:
Tutti i valori numerici possono essere programmati direttamente con numeri decimali o indirettamente
con parametri E. Per filettature a passo decrescente, è necessario calcolare il passo iniziale, la
variazione di passo e la lunghezza della filettatura, in modo tale che il passo sia maggiore di zero prima
di raggiungere la quota finale.
Usare la seguente formula:

I< K2
2 (Zf - Zi)
dove:
I È la massima variazione di passo
K È il passo iniziale
(Zf - Zi) È la lunghezza della filettatura.

Durante un ciclo di filettatura il controllo non prende in considerazione il pulsante CYCLE


STOP ed il selettore di FEED OVERRIDE. La disabilitazione del selettore di SPINDLE SPEED
OVERRIDE, deve essere eseguita dal PLC. È possibile inoltre disabilitare il VFF tramite
interfaccia utente o con il comando VFF.

45004606R 57
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.18.1 Filettature a passo costante

Le figure seguenti illustrano alcuni esempi di filettatura a passo costante. Si noti che l'asse U è un asse
diametrale.

3.1.18.2 Filettatura cilindrica

Z
U
Blocco di part program: G33 Z-100 K2

K2

Z-100

3.1.18.3 Filettatura conica

Z
U Blocco di part program: G33 U40 Z-80 K3
K3

Z-80
U40

3.1.18.4 Filettatura cilindrica con uscita conica

Blocchi di part program : G33 Z-95 K2 .5


Z-100 U52 K2.5
U52

3.1.18.5 Filettatura a passo variabile

Le figure seguenti illustrano esempi di filettatura a passo variabile. Si noti che l'asse U è un asse
diametrale.

45004606R 58
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.18.6 Filettatura cilindrica con passo crescente

Blocco di part program: G33 Z-50 K4 I1


Z
U
4
5
6
7

3.1.18.7 Filettatura conica con passo crescente

Blocco di part program: G33 U50 Z-40 K4 I1


Z

U
4
5

3.1.18.8 Filettatura cilindrica con passo decrescente

Z Blocco di part program: G33 Z-50 K10 I-1


U

10

7
6
5
4

45004606R 59
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.18.9 Filettature a più principi

La funzione R in un blocco G33 fa sì che il controllo dia il comando di partenza degli assi in posizione
angolare diversa a seconda del valore R programmato.
In questo modo è possibile programmare per i vari filetti un unico punto di partenza, a differenza di altri
sistemi nei quali è necessario, per ottenere filettature a più principi, spostare il punto di partenza di
ogni filetto di una quantità pari al passo divisa per il numero dei principi.

Esempio:
Questo esempio mostra una filettatura a tre principi.

N37 G33 Z3 K6 primo filetto


.
.
.
N41 G33 Z3 K6 R120 secondo filetto
.
.
.
N45 G33 Z3 K6 R240 terzo filetto

45004606R 60
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.19 Assi rotativi


In caratterizzazione è possibile dichiarare un asse come rotativo (es.: una tavola girevole).
Per poter programmare un asse rotativo con movimento simultaneo e coordinato con gli altri assi
programmati nello stesso blocco:
La programmazione deve essere sempre in gradi decimali (da +0,00001 a +99999.99999 gradi) a
partire da un'origine prefissata.
Il movimento può essere eseguito a velocità di rapido con G00 o G10 a velocità di lavoro con
G01. La velocità di rotazione F si esprime in gradi al minuto (formato F5.5). Per esempio, se
F75.5 l'asse si sposta ad una velocità di 75.5 gradi al minuto.

Per effettuare delle fresature lungo una circonferenza utilizzando la tavola girevole, si può calcolare la
velocità di avanzamento angolare da programmare con la seguente formula:

F = 360 * A = 114,64 * A
pi D D
dove:
F È la velocità di avanzamento angolare espressa in gradi al minuto
A È la velocità di avanzamento lineare lungo l'arco espressa in millimetri al minuto o pollici al
minuto
D È il diametro sul quale viene eseguita l'operazione di fresatura (espresso in mm o pollici).

Quando gli assi rotativi e gli assi lineari si devono spostare simultaneamente nello stesso blocco, usare
una delle due formule seguenti (con G94 o G93) per calcolare la velocità di avanzamento:
con G94:

F=A* X2+Y2+Z2+B2+C2
L
dove:
F È la velocità di avanzamento da programmare
A È la velocità di avanzamento (in mm/min o pollici/min) voluta sul pezzo da lavorare.
XYZBC È la corsa effettiva eseguita da ogni asse (in mm o pollici per assi lineari, in gradi per assi
rotativi)
L È la lunghezza del percorso risultante (in mm o pollici)

con G93:
F= A
X2 + Y 2 + B2

dove:
F È la velocità di avanzamento da programmare
A È la velocità di avanzamento (in mm/min o pollici/min) sul pezzo
X È la distanza incrementale X dall'asse
Y È la distanza incrementale Y dall'asse
B È la distanza incrementale B dall'asse

Il controllo non può calcolare direttamente la velocità di avanzamento dell'utensile perché il raggio non
è programmato. In questi casi viene utilizzata la velocità di avanzamento definita come inversa al tempo
che può essere stabilita con G93. Un blocco che abbia solo spostamenti di assi rotativi produce un arco.
Combinando spostamenti rotativi con spostamenti lineari, il percorso risultante può essere una spirale di
Archimede, un'elica cilindrica o una curva ancora più complessa, a seconda del numero di assi lineari che
sono stati programmati.

45004606R 61
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.20 Assi Rollover


L'asse rollover è un asse rotativo o lineare la cui posizione è controllata tra zero ed un valore positivo
definito in configurazione come " Passo Rollover ".
Nella trattazione che segue si suppone di avere un'asse rollover rotativo con passo di 360 gradi.
In questo caso la posizione dell'asse è controllata nell'intervallo da 0 a 359,9999 gradi.
Questo significa che quando l'asse raggiunge 360 gradi, la posizione visualizzata sarà 0 gradi.

Un asse rollover può essere programmato da part program o da tastiera in due modi differenti:
modo assoluto Programmando lo spostamento in gradi.
modo incrementale Programmando lo spostamento in gradi a partire dalla posizione corrente dell'asse.

3.1.20.1 G90 - Modo assoluto

Se un asse rollover viene programmato in modo assoluto, vengono applicate le seguenti condizioni:
La posizione visualizzata è da 0 a +359,99999 gradi
L'intervallo programmabile va da 0 a ± 359,99999 gradi
La direzione di rotazione degli assi dipende dal segno anteposto alla quota programmata. Per
convenzione, uno spostamento positivo si intende in senso orario, uno negativo in senso
antiorario. Nel caso in cui un movimento assoluto non sia preceduto dal segno meno e la
variabile ROLLOPT sia settata a 1 allora il movimento dell’asse rollover verrà ottimizzato.

Per esempio, si supponga che l'asse rotativo B sia posizionato a 90 gradi e che da part program o da
tastiera venga dato il seguente blocco:

G90 B45
Caso con ROLLOPT = 0

359.999
180
0

45

90
Rotazione oraria

L'asse B ruota di 315 gradi in senso orario dalla posizione di 90 gradi fino a raggiungere la posizione
assoluta di 45 gradi, in quanto il segno dello spostamento è positivo.

45004606R 62
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caso con ROLLOPT = 1

180.0 359.99
90.0

45

90

Rotazione antiororaria

L'asse B ruota di 45 gradi in senso antiorario dalla posizione di 90 gradi fino a raggiungere la posizione
assoluta di 45 gradi. Viene scelta la direzione del movimento che permette di raggiungere la posizione
finale compiendo il movimento più corto.

Sempre per esempio si supponga che l'asse rotativo B sia posizionato sui 90 gradi e, da tastiera o da part
program venga dato il seguente blocco:

G90 B-0

90
Rotazione antioraria

L'asse B ruota di 90 gradi in senso antiorario fino a raggiungere la posizione assoluta di zero gradi, in
quanto il segno dello spostamento è negativo.
In questo caso, poiché è stato esplicitamente richiesto un movimento antiorario il valore della variabile
ROLLOPT non viene preso in conto.

45004606R 63
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.20.2 G91 - Modo incrementale

Se un asse rollover viene programmato in modo incrementale (G91), vengono applicate le seguenti
condizioni:
La posizione visualizzata va da 0 a 359,99999 gradi.
L'intervallo programmabile va da +/-0.00001 a +/-99999.99999 gradi.
La direzione di rotazione dell'asse dipende dal segno dello spostamento programmato. Per
convenzione, uno spostamento positivo è orario, uno negativo è antiorario.
Il valore della variabile ROLLOPT non viene preso in considerazione.

La posizione visualizzata è fuori dall'intervallo programmato quando quest'ultimo supera


+359.99999 gradi.

Per esempio, supponiamo che l'asse rotativo B sia posizionato sulla posizione assoluta zero gradi, e che il
seguente blocco venga dato da tastiera o da part program:

G91 B765

45

90
Rotazione oraria incrementale

L'asse B ruota in senso orario compiendo due giri completi più uno spostamento addizionale di 45 gradi
(360 + 360 + 45 = 765).

45004606R 64
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.21 ROLLOPT – Movimento ottimizzato assi rollover


La variabile ROLLOPT attiva la funzione di ottimizzazione del movimento per gli assi rollover.
Quando l’ottimizzazione è attiva, il controllo può, in alcune condizioni, forzare la direzione di
movimento dell’asse.

Sintassi

ROLLOPT = valore

dove:
valore indica se la funzione di ottimizzazione sia attiva (valore uguale a 1) o no (valore uguale a
0). Può essere specificato direttamente o tramite una variabile locale o di sistema. Il
valore di default è 0 (ottimizzazione non attiva).

Caratteristiche:
L’ottimizzazione del movimento per gli assi rollover è attiva se:
La variabile ROLLOPT vale 1
L’asse rollover viene mosso in modo assoluto (è attivo il Gcode G90)
Il movimento programmato non ha segno o ha segno positivo

Se le condizioni precedenti sono soddisfatte il controllo ottimizza il movimento dell’asse: sceglie cioè la
direzione del movimento che permette di ridurre lo spostamento necessario a raggiungere il punto
programmato.

3.1.22 Pseudo assi


Gli pseudo assi sono funzioni ausiliarie che possono essere indirizzate come assi e vengono gestite dalla
logica di macchina. Esempio: regolazione del getto per taglio ad acqua, gestione mandrino secondario. Il
nome di uno pseudo asse può essere una qualsiasi delle lettere disponibili per gli assi normali
(X,Y,Z,A,B,C,U,V,W,P,Q,D). È possibile programmare fino a tre pseudo assi in un blocco di part program.
Nella caratterizzazione (AMP) possono essere dichiarati fino a 6 pseudo assi.

3.1.23 Attributi del movimento


È possibile associare a ogni movimento generato dal controllo fino a 8 attributi, cioè valori di tipo reale.

Sintassi

a[ param1 [, param2, [, param3, [, param4, [, param5, [, param6, [, param7, [, param8]]]]]]] ]

dove:
paramn: valore del parametro di posizione n-esima. Può essere specificato direttamente con un
numero reale o tramite una variabile.

Caratteristiche:
Gli attributi possono essere associati a qualunque tipo di movimento lineare o circolare. Per i movimenti
in Splines gli attributi vengono ignorati.
I valori degli attributi sono sincroni con i movimenti e sono validi fino all’inizio del movimento
successivo.

45004606R 65
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nel caso in cui il movimento programmato non venga effettuato, per esempio perché la macchina si
trova già nel punto programmato o perché l’ente generato è più corto della soglia di movimento nullo,
gli attributi vengono ignorati.

I valori degli attributi sono accessibili dal PLC tramite le funzioni di lettura di stato del processo e sono
memorizzate in variabili di tipo PLC. Per maggiori informazioni fare riferimento al manuale di
Applicazione OPENControl.

Esempi
Comando Valore attributi Nota
G0G91 X10 a[1,2,3,4,5,6,7,8] 1, 2, 3, 4, 5, 6, 7, 8
X20 a[10,12] 10, 12, 0, 0, 0, 0 ,0, 0 Vengono aggiornati solo i primi
attributi
(DIS, ‘Test’) 10, 12, 0, 0, 0, 0, 0, 0 Poiché il blocco non contiene
movimento gli attributi non vengono
aggiornati
X-4 0, 0, 0, 0, 0, 0, 0, 0 Non sono stati specificati attributi,
equivale ad assegnarli tutti a 0.
X3 a[42, 21, 24, 3, 4, 5, 6 ,17, 18] 42, 21, 24, 3, 4, 5, 6 ,17, 18
X0 a[-12, 25.6] 42, 21, 24, 3, 4, 5, 6 ,17, 18 Poiché è attiva la modalità G91
(movimenti incrementali), non
viene generato alcun movimento e
gli attributi non vengono aggiornati

3.1.24 Assi diametrali


E' possibile installare sul mandrino una testa per alesare/sfacciare e controllarla simultaneamente ad
altri assi. Programmando un tale asse diametrale (generalmente denominato U), si possono ottenere:
Operazioni di alesatura di fori cilindrici o conici
Raccordi circolari (concavi o convessi)
Smussi
Gole
Sfacciature
Filettature

La programmazione di un asse diametrale è analoga a quella di altri assi lineari, ma le coordinate devono
essere espresse in diametri. Le unità di misura possono essere pollici o millimetri a seconda del modo
attivo (G70/G71).

Quando viene programmato in uno stesso blocco con gli assi X, Y o Z, il movimento di un asse diametrale
è simultaneo e coordinato con questi e può avvenire a velocità di rapido (G00) o a velocità di lavoro
(G01) espressa in mm/min o pollici/min con F.
Prima di eseguire un profilo con un asse diametrale, ad esempio U, deve essere definito il piano di
interpolazione tramite il seguente comando:

G16 Z U

L'ordine di Z ed U in questo comando è fondamentale. G16 UZ definisce, infatti, un piano di


interpolazione differente.
Ai profili programmati con U è possibile applicare la compensazione diametro utensile (G41 o
G42) e la definizione di sovrametallo (MSA).

45004606R 66
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
Il seguente è un esempio di utilizzo di testa di alesatura/sfacciatura in un'operazione di finitura.

N116 (DIS, "FINITURA CON TESTA ALES. E SFACC.")


N117 F60 S630 T9 .9 M6
N118 G16 Z U ;Definisce il piano di interpolazione
N119 (UAO, 2) ;Chiama l'origine assoluta della testa
N120 (UTO, 1, Z-200) ;Origine temporanea per Z (a filo pezzo)
N121 X Y160 M3 ;Posiziona sul foro 1
N122 G41 Z2 U51
N123 G1 Z-1 U44 .98 ;Esegue lo smusso
N124 Z-44 ;Esegue foro di diametro45
N125 G G40 U40
N126 Z2 F40 S380
N127 G41 Y U106 ;Posiziona sul foro 2
N128 G1 Z-1 U99 .975 ;Esegue lo smusso
N129 Z-15 ;Esegue foro di diametro 100
N130 r5 ;Esegue raccordo R = 5
N131 U60 ;Esegue battuta
N132 r-3 ;Esegue raccordo R = 3
N133 Z-40 U40 ;Esegue cono
N134 G40 Z-44 ;Continua la corsa dell'asse Z
N135 G U35
N136 Z100 M5
N137 G16 X Y
N138 (UAO,1)

45004606R 67
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il senso di percorrenza degli archi di cerchio (programmati con le funzioni G02 o G03 oppure con
l'indirizzo r) e la funzione di abilitazione della correzione del raggio utensile sul profilo (G41 o G42) sono
rintracciabili guardando il profilo da eseguire nel piano Z-U. Poiché i diametri negativi di solito non
vengono programmati, è sufficiente considerare solo i primi due quadranti del piano.

45004606R 68
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.25 UDA – Assi duali


Nota: comando non disponibile con OPEN-10, richiede l’opzione A35 con OPEN-20 e
OPEN-30

È possibile trattare uno o più assi come "slave" ossia subordinati ad un altro definito "master". In tal
modo occorre programmare unicamente gli spostamenti dei master, poiché il movimento degli slave è
determinato da quelli del master a cui sono associati e dalla presenza o meno su di essi dell'inversione
"mirror".

Sintassi

(UDA,master1/slave1[slave2..slaven][,master2/[slave1..slaven],…,master6/[slave1..slaven]])
(UDA)

dove:
master1. . . master6 Sono i nomi degli assi master (ciascuno designato da un singolo carattere ASCII). Si
possono programmare fino a 6 assi master.

slave1. . . slave17 Sono gli assi slave del master e ciascuno può essere:
un singolo carattere ASCII se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.
Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi, ma condivisi con la logica.
È possibile programmare sino ad un massimo di 17 assi slave di cui 6 non
appartenenti al processo.
Se il nome dell’asse slave è preceduto dal segno “-“, allora tale asse si muoverà in
direzione opposta rispetto al proprio master.

nessun parametro (UDA) senza parametri disabilita la modalità assi duali.

Caratteristiche:

Gli assi duali non richiedono alcuna impostazione speciale durante la caratterizzazione del sistema con
ODM.
Dopo un comando (UDA...) il limite operativo positivo risulta essere il minore tra il limite positivo
dell’asse master e la posizione corrente del master più la quantità di spazio percorribile dall’asse slave.
In breve:
LimPositivo = min(LimPositivoMaster, PosizioneMaster + LimPositivoSlave - Posizione Slave)

Nel caso di “mirror” lo spazio percorribile dallo slave è riferito al suo limite negativo, per cui sarà:
LimPositivo = min(LimPositivoMaster, PosizioneMaster - LimNegativoSlave + Posizione Slave)

Le stesse considerazioni fatte per il limite positivo si possono estendere naturalmente anche per il limite
negativo:
LimNegativo = max(LimNegativoMaster, PosizioneMaster + LimNegativoSlave - Posizione Slave)

Nel caso di “mirror” sarà:


LimNegativo = max(LimNegativoMaster, PosizioneMaster - LimPositivoSlave + Posizione Slave)

45004606R 69
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

All'attivazione del comando di (UDA,...) sia l'asse master che gli slave devono essere riferiti.
La programmazione del comando (UDA,…) annulla qualunque UDA o SDA precedente.
Il comando di RESET non disabilita l'associazione master/slave.

NOTA:
Il nome degli assi master e slave deve essere separato da una barra "/".

Se si vuole rendere speculare lo spostamento dell'asse "slave" rispetto a quello "master",


bisogna programmare l'operatore "-" prima del nome dell'asse. Ciò non è valido per l'asse
master.

Esempio:
(UDA,X/-U) U è reso slave e speculare rispetto ad X.
(UDA,Z//12) L’asse con identificativo 12 è resto slave rispetto a Z.
(UDA,A/B-CD) B,C,D sono resi slaves rispetto ad A, inoltre C è speculare rispetto ad A
(UDA,X/AB/-14) A e B sono resi slaves rispetto ad X, inoltre l’asse con identificativo 14 è definito
slave e speculare rispetto ad X.

45004606R 70
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.26 SDA – Assi duali speciali


Nota: comando non disponibile con OPEN-10, richiede l’opzione A35 con OPEN-20 e
OPEN-30

E' possibile trattare uno o più assi come "slave" ossia subordinati ad un altro definito "master". In tal
modo occorre programmare unicamente gli spostamenti dei master, poiché il movimento degli slave è
determinato da quelli del master a cui sono associati e dalla presenza o meno dell'inversione "mirror". La
movimentazione dell'asse master e degli slave può avvenire senza che gli assi siano stati riferiti.

Sintassi

(SDA, master1/slave1[slave2..slaven][,master2/[slave2..slaven],…,master6/[slave2..slaven]])
(SDA)

dove:
master1. . . master6 Sono i nomi degli assi master (ciascuno designato da un singolo carattere ASCII). Si
possono programmare fino a 6 assi master.

slave1. . . slave17 Sono gli assi slave del master e ciascuno può essere:
un singolo carattere ASCII se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.
Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi, ma condivisi con la logica.
È possibile programmare sino ad un massimo di 17 assi slave di cui 6 non
appartenenti al processo.

nessun parametro (SDA) senza parametri disabilita modalità assi duali

Caratteristiche:
Gli assi duali non richiedono alcuna impostazione speciale durante la caratterizzazione del sistema con
ODM. Dopo un comando (SDA...) il limite operativo positivo risulta essere il minore tra il limite positivo
dell’asse master e la posizione corrente del master più la quantità di spazio percorribile dall’asse slave.
In breve:
LimPositivo = min(LimPositivoMaster, PosizioneMaster + LimPositivoSlave - Posizione Slave)

Nel caso di “mirror” lo spazio percorribile dallo slave è riferito al suo limite negativo, per cui sarà:
LimPositivo = min(LimPositivoMaster, PosizioneMaster - LimNegativoSlave + Posizione Slave)

Le stesse considerazioni fatte per il limite positivo si possono estendere naturalmente anche per il limite
negativo:
LimNegativo = max(LimNegativoMaster, PosizioneMaster + LimNegativoSlave - Posizione Slave)

Nel caso di “mirror” sarà:


LimNegativo = max(LimNegativoMaster, PosizioneMaster - LimPositivoSlave + Posizione Slave)

All'attivazione del comando di (SDA,...) sia l'asse master che gli slave possono non essere riferiti.
La programmazione del comando (SDA,…) annulla qualunque UDA o SDA precedente.

45004606R 71
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il comando di RESET non toglie l'associazione master/slave.

Questo comporta la possibilità di eseguire il ciclo di ricerca micro di zero con la dualizzazione attiva.
In questo caso eseguendo il ciclo di ricerca micro sull'asse master, il sistema muoverà in contemporanea
gli assi slave associati; a fine ricerca l'asse master risulta riferito mentre gli assi slave non risultano
riferiti. Per riferire gli assi slave è necessario scambiarli, uno ad uno con l'asse master tramite nuove
programmazioni di SDA, e ripetere il ciclo di ricerca micro di zero su ognuno di essi, ridichiarati come
master.
L'operazione di azzeramento sugli slave non è comunque necessaria se si intende programmare il solo
asse master con SDA attivo.

L'utilizzo della funzione SDA è raccomandata pertanto nei casi in cui si debba eseguire un ciclo di ricerca
micro in seguito ad uno spegnimento del sistema, con il pezzo da lavorare ancora sulla tavola.

NOTA:
Il nome degli assi master e slave deve essere separato da una barra "/".

Se si vuole rendere speculare lo spostamento dell'asse "slave" rispetto a quello "master",


bisogna programmare l'operatore "-" prima del nome dell'asse. Ciò non è valido per l'asse
master.

Esempio:
(SDA,X/-U) U è reso slave e speculare rispetto ad X
(SDA,A/B-CD) B,C,D sono resi slaveS rispetto ad A, inoltre C è speculare rispetto ad A
(SDA,X/AB/-14) A,B sono resi slaves rispetto a X, inoltre l’asse con identificativo 14 è definito slave
e speculare rispetto a X

45004606R 72
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.27 XDA – Assi Master/Slave


Nota: richiede l’opzione A36 per OPEN-10, OPEN-20 e OPEN-30

È possibile trattare uno o più assi come “slave” ossia subordinati ad un altro definito “master”. In tal
modo occorre programmare unicamente gli spostamenti del master, poiché il movimento degli slave è
determinato da quello del master a cui sono agganciati e da un fattore di inseguimento definito per ogni
slave. Esistono diverse tipologie di comandi applicabili a tale prestazione, ogni comando ha una sintassi
diversa.

Associazione Master/Slave
Con tale istruzione viene definita l’associazione tra l’asse master e gli assi slave (max 17 assi). Tale
istruzione NON attiva la fase di inseguimento, la sua attivazione viene effettuata tramite una apposito
comando; ciò significa che dopo tale istruzione un movimento dell’asse master non induce un movimento
dello slave. Dopo questa istruzione e sino a che non viene dissociato lo slave dal master non è
possibile programmare alcun movimento dello slave.

Sintassi

(XDA, 1, master/slave1[slave2[..]], modalità, rapporto, spazio)

dove :
master E’ il nome dell’asse master e viene designato da un singolo carattere ASCII.

slave1…slave17 Sono gli assi slave del master e ciascuno può essere:
un singolo carattere ASCII, se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.
Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi, ma condivisi con la logica.
È possibile programmare sino ad un massimo di 17 assi slave di cui 6 non
appartenenti al processo.

modalità Definisce il metodo di inseguimento dell’asse master da parte dello slave e può
valere:
0 Lo slave insegue puntualmente il master
1 Lo slave insegue in velocità il master
2 Lo slave insegue in posizione il master
3 Lo slave insegue in posizione il master con recupero spazio aggancio
4 Lo slave insegue in posizione il master recuperando lo spazio di aggancio
e quello di sgancio

rapporto È il rapporto di inseguimento del master da parte dello slave, tale valore deve
essere considerato come fattore moltiplicativo della velocità o dello spazio
percorso dal master. Con il valore 1.0 lo slave copia fedelmente il moto del
master, con valori inferiori ad 1.0 lo riduce, con valori superiori ad 1.0 lo
aumenta. Tale valore può essere segnato.

spazio È lo spazio che lo slave deve percorrere per sincronizzarsi con il moto del master.

45004606R 73
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche:
Se un asse SLAVE è condiviso con il PLC, potrà essere mosso, da logica di macchina, anche dopo
l’associazione con il master, non potrà essere comunque mosso nel momento in cui l’asse insegue il
master.
L’asse master può identificare sia un asse presente nel processo nel quale viene attivato il comando XDA
che un asse non presente; in quest’ultimo caso il processo crea un “asse virtuale” avente il nome
specificato. Tale asse come caratteristiche dinamiche le più sfavorevoli tra quelle dei sui assi slave (per
esempio avrà come velocità massima la minore tra le velocità degli slave). Tale asse potrà far parte di
virtualizzazioni e TCP. Non sarà possibile effettuare l’homing dell’asse.
Il comando di RESET non toglie l'associazione master/slave.
Le varie modalità di inseguimento possibili sono:

Modo 0
In questo caso l’asse slave insegue l’asse master proporzionalmente al valore di rapporto (se rapporto = 1
lo slave copia esattamente il movimento dell’asse master); l’aggancio (sincronismo) è istantaneo e la
variazione di velocità dell’asse slave è a “gradino”. I valori di posizione e di velocità dell’asse slave
saranno calcolati, istante per istante, dalle seguenti formule :

Vslave = Vmaster * FollowRate

PosSlave = PosSlavet0 + (PosMaster – PosMaster t0) * FollowRate

V V master

V slave

Attivazione =
Aggancio

t0 t
Se la richiesta di velocità risultante sull’asse slave risulta essere superiore alla massima velocità
possibile per l’asse, il sistema limiterà la velocità richiesta a tale valore; di conseguenza verrà segnalata
una emergenza (servo error) in quanto lo slave non riesce ad inseguire la posizione richiesta.

Modo 1
In questo caso l’asse slave insegue la velocità dell’asse master proporzionalmente al valore di rapporto
(se rapporto = 1 lo slave copia esattamente il movimento dell’asse master); l’aggancio (sincronismo) è
dipendente alle caratteristiche dinamiche dell’asse slave e/o dal parametro spazio che definisce lo
spazio di sincronizzazione.
Nel caso in cui il valore di spazio è 0, l’asse slave si sincronizzerà all’asse master in base alla sua
accelerazione massima ed utilizzando esclusivamente rampe lineari.

V V master

Aggancio
V slave

Attivazione

t0 t1 t

45004606R 74
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nel caso in cui il valore di spazio è diverso da 0, l’asse slave si sincronizzerà all’asse master in base ad
una accelerazione calcolata in base allo spazio di sincronizzazione ed utilizzando esclusivamente rampe
lineari. L’accelerazione verrà ricalcolata ad ogni campionatura in base alla formula

Aslave = ((Vmaster * FollowRate)2 + Vslave 2 ) / 2 * Spazio

in cui il valore dello spazio è man mano decrementato in base allo spazio percorso durante la fase di
sincronizzazione. Non viene fatto alcun controllo sul valore dell’accelerazione risultante per cui
potrebbero essere generati dei servo error nel momento in cui l’accelerazione è superiore a quella
massima sopportabile dall’asse.

V master

Aggancio
V slave

Attivazione Spazio

t0 t1 t
Nel momento in cui l’asse Master è stato agganciato lo slave si muoverà utilizzando la seguente formula :

Vslave = Vmaster * FollowRate

La velocità Vslave così calcolata è una velocità “teorica” in quanto occorre verificare se tale richiesta
rispetta le caratteristiche dinamiche dell’asse (velocità massima e accelerazione massima). Nel
momento in cui la velocità dell’asse master varia, lo slave inseguirà tale variazione utilizzando il proprio
valore di accelerazione. Quando la richiesta di velocità sull’asse slave risulta essere superiore alla
massima velocità consentita, il sistema limiterà la velocità richiesta. In tal senso in ogni istante verranno
calcolati i due valori di velocità Vslave i e di accelerazione Aslave i con cui muovere l’asse slave.
La posizione dell’asse slave verrà quindi calcolata in base a tali valori :

PosSlave tn+1 = PosSlave tn + Vslave i + Aslave i

Modo 2
In questo caso l’asse slave insegue la posizione dell’asse master proporzionalmente al valore di rapporto
(se rapporto = 1 lo slave copia esattamente il movimento dell’asse master); l’aggancio (sincronismo) è
dipendente alle caratteristiche dinamiche dell’asse slave e/o dal parametro spazio che definisce lo
spazio di sincronizzazione.
Nel caso in cui il valore di spazio è 0, l’asse slave si sincronizzerà all’asse master in base alla sua
accelerazione massima ed utilizzando esclusivamente rampe lineari.

V V master

Aggancio
V slave

Attivazione

t0 t1 t

45004606R 75
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nel caso in cui il valore di spazio sia diverso da 0, l’asse slave si sincronizzerà all’asse master in base ad
un’accelerazione calcolata in base allo spazio di sincronizzazione ed utilizzando esclusivamente rampe
lineari. L’accelerazione verrà ricalcolata ad ogni campionatura in base alla formula

Aslave = ((Vmaster * FollowRate)2 + Vslave 2 ) / 2 * Spazio

in cui il valore dello spazio è man mano decrementato in base allo spazio percorso durante la fase di
sincronizzazione. Non viene fatto alcun controllo sul valore dell’accelerazione risultante per cui
potrebbero essere generati dei servo error nel momento in cui l’accelerazione sia superiore a quella
massima sopportabile dall’asse.

V master

Aggancio
V slave

Attivazione Spazio

t0 t1 t

Nel momento in cui l’asse Master è stato agganciato lo slave si muoverà utilizzando le seguenti formule :

PosSlave = PosSlavet1 + (PosMaster – PosMaster t1) * FollowRate


Vslave = Vmaster * FollowRate

La posizione PosSlave e la velocità Vslave così calcolate sono da considerare come valori “teorici” in
quanto occorre verificare se tale richieste rispettino le caratteristiche dinamiche dell’asse (Velocità
massima e accelerazione massima). Nel momento in cui la velocità dell’asse master varia, lo slave
inseguirà tale variazione utilizzando il proprio valore di accelerazione. Quando la richiesta di velocità
sull’asse slave risulta essere superiore alla massima velocità consentita, il sistema limiterà la velocità
richiesta. In tal senso in ogni istante verranno calcolati i due valori di velocità Vslave i e di accelerazione
Aslave i con cui muovere l’asse slave. La posizione reale dell’asse slave verrà quindi calcolata in base a
tali valori :

PosSlave tn+1 = PosSlave tn + Vslave i + Aslave i

L’errore tra la posizione reale dell’asse e quella teorica viene recuperato dall’asse slave durante la
movimentazione (ed anche quando la movimentazione dell’asse master risulta essere terminata)
andando, quando possibile, a velocità superiore rispetto alla velocità Vslave calcolata.

45004606R 76
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Modo 3
In questo caso l’asse slave insegue la posizione e la velocità dell’asse master proporzionalmente al
valore di rapporto (se rapporto = 1 lo slave copia esattamente il movimento dell’asse master); l’aggancio
(sincronismo) è dipendente alle caratteristiche dinamiche dell’asse slave.

V master

V slave

Attivazione
= Aggancio Spazio
recuperato
dopo sincronismo
Spazio perso in con Master
fase
accelerazione

t0 t

Durante tutto il movimento dell’asse slave (quindi sia in fase di aggancio che a regime) la
movimentazione dell’asse viene eseguita (sempre con rampe lineari) utilizzando le formule:

PosSlave = PosSlaveto + (PosMaster – PosMaster t0) * FollowRate


Vslave = Vmaster * FollowRate

La posizione PosSlave e la velocità Vslave così calcolate sono da considerare come valori “teorici” in
quanto occorre verificare se tale richieste rispettino le caratteristiche dinamiche dell’asse (Velocità
massima e accelerazione massima). Nel momento in cui la velocità dell’asse master varia, lo slave
inseguirà tale variazione utilizzando il proprio valore di accelerazione. Quando la richiesta di velocità
sull’asse slave risulta essere superiore alla massima velocità consentita, il sistema limiterà la velocità
richiesta. In tal senso in ogni istante verranno calcolati i due valori di velocità Vslave i e di accelerazione
Aslave i con cui muovere l’asse slave. La posizione reale dell’asse slave verrà quindi calcolata in base a
tali valori:

PosSlave tn+1 = PosSlave tn + Vslave i + Aslave i

L’errore tra la Posizione reale dell’asse e quella teorica viene recuperato dall’asse slave durante la
movimentazione (ed anche quando la movimentazione dell’asse master risulta essere terminata)
andando, quando possibile, a velocità superiori rispetto alla velocità Vslave calcolata.

Modo4
Il modo 4 è simile al modo 3, l’unica differenza è che l’asse slave recupera lo spazio in fase di sgancio.
Questo significa che, nel momento in cui lo slave viene sganciato dal master, ovvero nel momento in cui
viene disattivato l’inseguimento, lo slave passerà dalla velocità attuale alla velocità nulla utilizzando la
propria rampa di decelerazione. A differenza delle altre modalità, una volta giunto alla velocità nulla
l’asse slave si riposizionerà al punto in cui era nel momento in cui è stata effettuata la richiesta di
disattivazione.

45004606R 77
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.28 Dissociazione Master/Slave


Con tale istruzione viene rimossa l’associazione tra l’asse master e gli assi slave. Dopo questa istruzione
sarà possibile programmare qualsiasi movimento dello slave.

Sintassi

(XDA)

3.1.29 Definizione/variazione rapporto di inseguimento


Con tale istruzione viene definito/variato il parametro che determina il rapporto di inseguimento
dell’asse master da parte degli assi slave definiti.

Sintassi

(XDA, 2, slave1[slave2[..]], rapporto)


(xda, 2, slave1[slave2[..]], rapporto)

dove :
slave1…slave17 Sono gli slave del master e ciascuno può essere:
un singolo carattere ASCII se l’asse è programmato per nome
/numero intero se programmato per identificativo
Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi ma condivisi con la logica.
Si possono programmare sino ad un massimo di 17 slave di cui 6 non appartenenti
al processo attivo.

rapporto È il rapporto di inseguimento del master da parte dello slave, tale valore deve
essere considerato come fattore moltiplicativo della velocità o dello spazio
percorso dal master. Con il valore 1.0 lo slave copia fedelmente il moto del
master, con valori inferiori ad 1.0 lo riduce, con valori superiori ad 1.0 lo
aumenta. Tale valore può essere segnato.

Caratteristiche:
Il comando può essere dato sia quando uno slave è già in fase di inseguimento dell’asse master (in questo
caso si effettua uno sgancio dal master e si riparte con una nuova fase di aggancio utilizzando il nuovo
parametro di inseguimento) che in fase di non inseguimento (in questo caso si attiva il valore di
inseguimento da adottare nella successiva movimentazione).
Utilizzando la sintassi maiuscola si ha un arresto della movimentazione, terminando l’eventuale continuo
in corso. La sintassi minuscola, invece, permette l’emissione del comando in continuo; comunque gli assi
vengono fermati a velocità nulla e poi immediatamente ripartono. È possibile evitare l’arresto della
movimentazione eseguendo un analogo comando da parte PLC.

45004606R 78
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.30 Attivazione inseguimento


Viene immediatamente attivato l’inseguimento dell’asse Master da parte dell’asse slave. La modalità
con cui effettuare l’inseguimento viene definita col parametro “modalità” all’interno del comando di
associazione master/slave.

Sintassi

(XDA, 3, slave1[slave2[..]])
(xda, 3, slave1[slave2[..]])

dove :
slave1…slave17 Sono gli slave del master e ciascuno può essere:
un singolo carattere ASCII se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.

Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi ma condivisi con la logica.
Si possono programmare sino ad un massimo di 17 slave di cui 6 non appartenenti
al processo attivo.

Caratteristiche:
Utilizzando la sintassi maiuscola si ha un arresto della movimentazione, terminando l’eventuale continuo
in corso. La sintassi minuscola, invece, permette l’emissione del comando in continuo; comunque gli assi
vengono fermati a velocità nulla e poi immediatamente ripartono. È possibile evitare l’arresto della
movimentazione eseguendo un analogo comando da parte PLC.

45004606R 79
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.31 Disattivazione inseguimento


Viene immediatamente disattivato l’inseguimento dell’asse Master da parte dell’asse slave. La modalità
di sgancio viene definita col parametro “modalità” all’interno del comando di associazione
master/slave.

Sintassi

(XDA, 4, slave1[slave2[..]])
(xda, 4, slave1[slave2[..]])

dove :
slave1…slave17 Sono gli slave del master e ciascuno può essere:
un singolo carattere ASCII se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.
Gli slave programmati per identificativo possono riferirsi ad assi non appartenenti
al processo attivo e quindi possono essere assi di logica oppure assi appartenenti
ad altri processi ma condivisi con la logica.
Si possono programmare sino ad un massimo di 17 slave di cui 6 non appartenenti
al processo attivo.

Caratteristiche:
L’asse slave viene comunque mantenuto associato al master, solamente non lo insegue più. In base al
parametro “modalità” definito all’interno del comando di associazione master/slave si ha:

0 Lo slave passa immediatamente dalla velocità attuale alla velocità nulla.


altri Lo slave frena con la propria rampa di decelerazione.

Utilizzando la sintassi maiuscola si ha un arresto della movimentazione, terminando l’eventuale continuo


in corso. La sintassi minuscola, invece, permette l’emissione del comando in continuo; comunque gli assi
vengono fermati a velocità nulla e poi immediatamente ripartono. È possibile evitare l’arresto della
movimentazione eseguendo un analogo comando da parte PLC.

Esempio:
N10 (XDA,1,X/ZA,3,0.8,0.0) Attiva master X e slave Z e A
N20 (XDA,3,ZA) Attiva inseguimento da parte di A e Z
N30 G1X100F2000
N40 X300
N50 (xda,4,Z) Disattiva inseguimento da parte di Z in continuo
N60 X400
N70 X500
N80 (xda,4,A) Disattiva inseguimento da parte di A in continuo
N90 X660
N100 X700
N110 (xda,3,ZA) Riattiva inseguimento da parte di A e Z in continuo
N120 GX0
N130 (XDA) Dissocia gli slave Z e A dal Master X
N140 GX

45004606R 80
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:
Si configurino gli assi XYZAB con identificativi 1 2 3 4 5 rispettivamente, e due assi punto punto di logica
a b con id 14 e 20

N10 (XDA,1,X/14A/20,3,0.8,0.0) Attiva master X e slave A di processo e a b di logica


N20 (XDA,3,A/14/20) Attiva inseguimento da parte di A, a e b
N30 G1X100F2000
N40 X300
N50 (xda,4,/20) Disattiva inseguimento da parte di b in continuo
N60 X400
N70 X500
N80 (xda,4,A) Disattiva inseguimento da parte di A in continuo
N90 X660
N100 X700
N110 (xda,3,/14A) Riattiva inseguimento da parte di a e A in continuo
N120 GX0
N130 (XDA) Dissocia gli slave A, a e b dal Master X
N140 GX

45004606R 81
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.32 AXT – Controllo asse tangenziale


Nota: comando non disponibile con OPEN-10, richiede l’opzione A51 con OPEN-20 e
OPEN-30

Questo comando attiva il controllo tangenziale su di un asse rotativo. Il controllo asse tangenziale
introduce automaticamente il movimento dell’asse rotativo in modo da mantenere costante la sua
inclinazione lungo il profilo definito.
Questo comando sostituisce il TCP di tipo 2 presente sui controlli S10 OSAI.

Sintassi

(AXT, ax1ax2axr, verso, angolo soglia [, angolo nullo][, feed rotativo [, modo] [, Mcode1 [, Mcode2]]]])
(AXT)

dove:
ax1ap2axr Sono i nomi dei due assi del piano lungo cui è definito il profilo (ascissa ed
ordinata) e dell’asse rotativo che sarà controllato.

verso Indica il verso di rotazione dell’asse rotativo per movimenti positivi. Vale + per
verso di rotazione orario e - per verso di rotazione antiorario.

angolo soglia È l’angolo minimo che deve esserci tra due enti affinché venga inserito un
movimento del solo rotativo alla fine del primo ente.

angolo nullo È l’angolo tra due enti al di sotto del quale il rotativo non si muove (se l’angolo tra
due enti è inferiore a angolo nullo si considera l’angolo tra questi nullo). Se non è
specificato viene utilizzato il valore di default per l’angolo nullo definito in AMP.

feed rotativo Velocità del rotativo quando l’asse viene mosso da solo tra due enti. Se non è
specificata l’asse rotativo si muove con la feed programmata.

modo Indica se sia necessario utilizzare un ente di avvicinamento prima che la


funzionalità sia attiva.
I valori validi sono:
0 è necessario specificare un ente di avvicinamento
1 non è necessario specificare un ente di avvicinamento
Il valore di default del parametro è 0.
Mcode1
Mcode2 Codice M che verrà associato al movimento del solo rotativo inserito dall’algoritmo
nel caso di superamento dell’angolo di soglia tra due enti. Al codice M possono
essere associati dei parametri che andranno specificati secondo la sintassi
utilizzata per le chiamate ai codici M.

(nessun parametro) Il triletterale senza parametri disattiva la funzionalità.

45004606R 82
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche:
La funzionalità introduce un movimento dell’asse rotativo specificato, in modo da mantenere costante la
sua inclinazione lungo il profilo. Il profilo è definito nel piano identificato dai due assi lineari specificati.

Tale movimento viene generato:


tra due enti per ruotare sugli spigoli:
Se l’angolo tra l’ente in corso ed il successivo è superiore all’angolo di soglia il movimento viene
inserito tra la fine dell’ente in corso e l’inizio del successivo. Se invece l’angolo tra gli enti è
inferiore all’angolo di soglia il movimento del rotativo viene eseguito contemporaneamente
all’ente successivo.
su di un ente circolare per mantenere l’inclinazione costante su tutto l’ente
In questo caso il movimento viene sempre eseguito contemporaneamente all’ente stesso.

Nel caso in cui il valore del modo sia 0, allora queste considerazioni sono valide per tutti gli enti del
profilo posti dopo il triletterale escluso il primo ente. In questo caso il primo ente va considerato come
ente di attacco sul profilo (anche se è di tipo circolare non si ha movimento dell’asse rotativo). Il
sistema inizierà a generare il movimento dell’asse rotativo orizzontale a partire dal secondo ente.

Se un blocco di movimento comprende un movimento esplicito dell’asse rotativo, allora il controllo asse
tangenziale viene sospeso per permettere il movimento programmato. Esso ripartirà al primo blocco di
movimento che non contenga un movimento sull’asse rotativo.

Se l’angolo tra due enti è inferiore all’angolo nullo non viene inserito nessun movimento del rotativo. Il
valore di tale angolo verrà preso in considerazione nel calcolo dell’angolo tra gli enti successivi.

È possibile associare fino a due codici M al movimento del solo rotativo generato automaticamente dalla
funzione AXT. I codici M possono essere parametrizzati utilizzando la sintassi propria delle chiamate
codice M (vedi capitolo 7.3 “M parametriche”).
Non è possibile associare al movimento del solo rotativo codici M di tipo paramacro o ‘forza uscita da
subroutine’.

Il comando AXT è di tipo sincronizzato di default e non è possibile eliminare il sincronismo.


Nel caso in cui AXT venga programmato quando la compensazione raggio utensile è attiva,
allora il controllo numerico provvederà automaticamente a disattivare il sincronismo per
permettere di attivare o disattivare la prestazione.
Questo è l’unico caso in cui il comando AXT non è di tipo sincrono.

La funzione AXT si disattiva automaticamente se il controllo, con compensazione raggio


utensile, introduce automaticamente raccordi o smussi nell’intersezione tra due enti (TPO 1
o 33) e se sul secondo ente è stato esplicitamente programmato un movimento dell’asse
rotativo associato a AXT

45004606R 83
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 1:

N1 G0 X0 Y0 C
N2 F2000
N3 (AXT, XYC, +, 89, 46)
N4 G1X100Y100 ; Ente di avvicinamento
N5 X150 ; Primo ente
N6 Y150 ; Inserimento del movimento di C prima del movimento di Y
N7 X154 Y155 ; Nessun movimento inserito, angolo N6-N7 inferiore all’angolo nullo
N8 X166 Y165 ; Movimento eseguito insieme a movimento XY, si valuta angolo N6-N8

In questo esempio l’angolo N6-N7 è inferiore al valore di angolo nullo e anche l’angolo N7-N8 lo è. La
funzione AXT entra comunque in azione inserendo un movimento del rotativo durante l’esecuzione del
blocco N8 poiché la somma degli angoli N6-N7 e N7-N8 è maggiore dell’angolo nullo.

In questo caso è presente un movimento di avvicinamento, quindi il primo movimento dopo la


programmazione del triletterale non è preso in conto per il calcolo degli angoli tra enti programmati.

Esempio 2:

N1 G0 X0 Y0 C
N2 (AXT, XYC, +, 89, 30, 2000, 1, M215, M206[E0,42])
N3 X100Y100 ; Primo ente
N4 X150 ; Inserimento di movimento del rotativo durante l'esecuzione del blocco, no codici M
N5 Y150 ; Inserimento del movimento di C prima del movimento di Y, vengono emessi i codici M

I codici M vengono emessi contestualmente al movimento del solo rotativo introdotto dalla funzione AXT.
I codici M non vengono emessi se il movimento del rotativo viene eseguito insieme al movimento
programmato.
In questo caso non è presente un movimento di avvicinamento, quindi il primo movimento dopo la
programmazione del triletterale è il primo movimento valido per il calcolo degli angoli tra enti
programmati.

Esempio 3:
G0XYC
MSA = 5
G1 F5000
TPO = 33
G1X0Y250 C10
G42 X40 Y180
(AXT, XYC, -, 45, 0.1, 5000, 1)
N1 X160 Y180
N2 X120 Y250 C45
N3 X0
N4 X40 Y180 C90
N5 G40 X0 Y0
(AXT)

Tra il blocco N1 e il blocco N2 il controllo inserisce un raccordo. In condizioni normali verrebbe generato

45004606R 84
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

un movimento del rotativo C così da mantenere costante l’angolo tra asse rotativo e profilo. Poiché sul
blocco N2 l’asse rotativo è esplicitamente programmato, AXT viene disattivato e tale disattivazione
viene riportata anche sugli enti (raccordi o smussi) generati automaticamente dal controllo.

45004606R 85
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.33 AXS – Assi condivisi con il PLC


Questo comando permette di condividere con la logica uno o più assi appartenenti al processo.

Sintassi

(AXS, tipo, asse1 [[, asse2] … [, asse12]])


(AXS)

dove:
tipo Parametro che specifica l’operazione da effettuare sugli assi. Può assumere due
valori:
S: Gli assi del processo specificati saranno condivisi (shared) con il PLC.
R: Gli assi del processo specificati, attualmente condivisi, saranno resi al
processo.

asse1…asse12 È un carattere ASCII che identifica un nome asse del processo. Possono essere
condivisi con il PLC fino a 12 assi.

(nessun parametro) Se il comando è eseguito senza parametri, allora tutti gli assi condivisi saranno resi
al processo.
Caratteristiche:
Gli assi condivisi con la logica non possono essere mossi da part program.
Ogni tentativo di movimento da part program di un asse condiviso genererà un errore.
Il RESET non toglie la condivisione assi

45004606R 86
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.34 AXF- Definizione assi ad inseguimento dinamico


Nota: comando non disponibile con OPEN-10, richiede l’opzione A37 con OPEN-20 e
OPEN-30

Attraverso questo comando è possibile definire degli assi da gestire separatamente dagli altri dal punto
di vista dinamico. Gli assi definiti nel seguente triletterale descrivono la geometria programmata ma si
muovono in modo indipendente dagli altri assi del processo.

Sintassi

(AXF, nomi_assi, [modalità])


(AXF)

dove:
nomi_assi È l’elenco dei nomi degli assi sui quali deve essere applicato l’algoritmo di
inseguimento.
modalità Permette di attivare la modalità di inseguimento senza limitazione della velocità
sul profilo. I valori accettati sono:
 0: il movimento dell’asse a inseguire potrebbe influenzare la velocità sul
profilo. Questo è il valore di default
 1: il movimento dell’asse a inseguire non influisce sulla dinamica degli altri
assi
(nessun parametro) Se il comando è eseguito senza parametri, allora tutti gli assi verranno interpolati
insieme.

Caratteristiche:
Gli assi per cui viene applicato l’algoritmo di inseguimento dinamico (assi ad inseguire) vengono
interpolati separatamente dagli altri poiché in seguito a questo triletterale viene creato un interpolatore
per ogni asse ad inseguire. L’effetto che ne risulta è quello di evitare che la velocità sul profilo vada a
zero nei punti in cui tali assi iniziano o finiscono il loro movimento, rendendo più fluida l’intera
lavorazione, come mostrato nell’esempio. Gli assi ad inseguire devono comunque essere programmati.
Questo comando risulta effettivamente attivo solo se esiste almeno un asse su cui non viene applicato
l’algoritmo.
Ogni nuova programmazione del triletterale disattiva una eventuale configurazione di assi ad inseguire
effettuata precedentemente.

Il parametro modalità specifica come il movimento degli assi a inseguire influenzi il


movimento degli altri assi:
 Modalità 0: gli assi ad inseguire vengono mossi secondo i parametri dinamici per essi
configurati. Nel caso in cui la velocità programmata sul profilo comporti un valore
superiore alla loro velocità massima, allora il valore della velocità sul profilo verrà
automaticamente ridotto al fine di rispettare i parametri dinamici degli assi ad
inseguire.
 Modalità 1: gli assi a inseguire vengono mossi secondo i parametri dinamici per essi
configurati, senza influenzare la dinamica del movimento programmato sugli altri assi.
Questo significa che il movimento degli assi a inseguire potrebbe terminare dopo la
fine del movimento degli altri assi.

45004606R 87
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
Dato un processo con 3 assi lineari (XYZ) e 1 asse rotativo (B) si supponga di effettuare la seguente
programmazione:
Dopo questo comando l’asse B è abilitato ad inseguire dinamicamente tutti
(AXF,B)
gli altri assi del processo
Viene programmato uno spigolo arrotondato sul quale si inserisce il
movimento del rotativo:
G17
senza il comando AXF gli assi lineari, a inizio e fine raccordo, si fermano
G1 X100 YZB F5000
poiché nell’interpolazione si aggiunge l’asse B. Al termine del raccordo
G3 X150 Y50 I100 J50 B90
anche l’asse B avrà terminato il movimento
G1 Y150
con il comando AXF, il movimento di B non interviene a limitare la
dinamica degli assi lineari: la velocità sul profilo non va a 0
Dopo questo comando il rotativo B viene nuovamente interpolato insieme
(AXF)
agli altri assi del processo

Il grafico riporta l’andamento delle velocità sul profilo e sull’asse B rispettivamente per i due casi sopra
citati.

V su profilo

su asse B

su profilo
V

su asse B

raccordo
t

45004606R 88
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.35 CAM-Camma Elettronica


Nota: richiede l’opzione A41 per OPEN-10, OPEN-20 e OPEN-30

Il concetto di camma elettronica si basa su un asse master che si muove in modo controllato ed uno o più
assi slave che inseguono un profilo di posizione funzione della posizione dell’asse master.
Gli assi slave eseguono dei movimenti predefiniti in tabelle sotto forma di posizioni che gli stessi devono
assumere in funzione delle posizioni dell’asse Master. Quando la camma viene attivata, viene ricercata
la posizione dell’asse master all’interno della tabella e viene calcolata la posizione dell’asse slave
interpolando linearmente (o tramite polinomi) tra i due punti che comprendono la posizione del master.
Le posizioni dell’asse master devono essere strettamente monotone crescenti o decrescenti. Il master è
un asse interpolato.
Un asse master può inoltre settare e resettare degli output in corrispondenza di determinate posizioni.
In tal caso deve essere creata una tabella contenente per ogni riga la posizione del master e l’output
corrispondente.
Le tabelle vengono create a partire da un file in formato .csv. Il file è organizzato per righe, quindi ogni
riga è relativa ad una posizione della camma.
La prima riga contiene informazioni relative al tipo di file e al numero di righe compilate, al tipo
posizionamento per l’asse master e al tipo di posizionamento per l’asse slave. Possono esserci tre tipi di
file e, in funzione di ciò, i campi relativi al tipo di posizionamento saranno o meno presi in
considerazione:
Un file con due colonne di cui la prima contenente le posizioni dell’asse master e la seconda le
corrispondenti posizioni dell’asse slave.
0;4;MRel;SRel Prima RigaTipoFile; NumRighe;TipoPosizMaster;TipoPosizSlave
100;10 Altre RigheMaster;Slave
150;13
200;18
250;10

Un file con più colonne di cui la prima contenente le posizioni dell’asse master e le successive
i coefficienti di polinomi dai quali ricavare le corrispondenti posizioni dell’asse slave.
1;4;MRel;SRel Prima RigaTipoFile; NumRighe;TipoPosizMaster;TipoPosizSlave
100;1;0.2;3.3;4;5 Altre RigheMaster;pS0;pS1;pS2;pS3;pS4;pS5
150;;;;;;
200;;;;;;
250;;;;;;

Un file con due colonne di cui la prima contenente le posizioni dell’asse master e la seconda le
informazioni relative agli output digitali:
2;3;MRel Prima RigaTipoFile; NumRighe;TipoPosizMaster
100;OW(12,0xF000,0xFF00) Altre RigheMaster;Output
200;OF(0x01,0x03)
300;MW(1000,0xF000,0xFF00)

OW(indice,valore,maschera) = Output standard


OF(valore,maschera) = FastOutput
MW(indice,valore,maschera) = Ouptut MW

45004606R 89
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

I campi relativi al tipo di posizionamento servono a stabilire se le posizioni contenute nelle righe
successive devono essere considerate assolute o relative. Quando i campi MRel e/o Srel valgono 0 le
posizioni definite nel file sono riferite alla Home Position: se prima dell’esecuzione del profilo di camma
vengono attivate delle origini sugli assi master e/o slave, bisognerà tenerne conto al momento
dell’attivazione della camma calcolando opportunamente i parametri OffsMast e OffsSlav descritti più
avanti. Quando i campi MRel e/o Srel valgono 1 ogni record del file rappresenta lo spostamento dell’asse
relativo alla posizione di attivazione della camma elettronica(è opportuno che nel primo record ci sia
sempre uno spostamento nullo).
Quindi:
MRel = 0  PtabM = PaxM + OffsM
Srel = 0  PaxS = PtabS + OffsS
MRel = 1  PtabM = PaxM + OffsM – PactM
Srel = 1  PaxS = PtabS + OffsS + PactS
dove:
PtabM è il valore della posizione del master da ricercare in tabella.
PtabS è il valore della posizione dello slave ricavata dalla ricerca in tabella.
PaxM è il valore della posizione filtrata attuale dell’asse master
PaxS è il valore della posizione giunto da assegnare all’asse slave(Questa posizione sarà ulteriormente
filtrata se sull’asse slave vengono attivati dei filtri).
PactM è il valore della posizione filtrata dell’asse master al momento dell’attivazione della camma.
PactS è il valore della posizione filtrata dell’asse slave al momento dell’attivazione della camma.
L’assenza dei suddetti campi dal file di camma forza MRel = SRel = 0;
Le posizioni in input dovranno essere sottoposte a delle verifiche dinamiche per evitare che agli assi
slave vengano richieste velocità e accelerazioni troppo elevate.
Esistono diverse tipologie di comandi applicabili a tale prestazione, ogni comando ha una sintassi
diversa.

3.1.35.1 Associazione Master/Slave

Con tale istruzione viene definita l’associazione.

Sintassi

(CAM, 1, AxMast, AxSlave, FileName, out)

dove:
AxMast E’ il nome dell’asse master e viene designato da un singolo carattere ASCII.

AxSlave Indica l’asse slave del master e può essere:


un singolo carattere ASCII, se l’asse è programmato per nome
un carattere ′/′ seguito da un numero intero, se programmato per
identificativo.
Lo slave programmato per identificativo può riferirsi ad un asse non appartenente
al processo attivo e quindi può essere asse di logica oppure asse appartenente ad
un altro processo, ma condiviso con la logica.

FileName E’ il nome del file contenente l’associazione tra le posizioni del master e le
posizioni dello slave.
out Identificativo della camma appena creata.

45004606R 90
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.35.2 Associazione Master/Output

Con tale istruzione viene definita l’associazione.

Sintassi

(CAM, 2, AxMast, FileName, out)

dove:
AxMast E’ il nome dell’asse master e viene designato da un singolo carattere ASCII.
FileName E’ il nome del file contenente l’associazione tra le posizioni del master e i valori
degli output.
out Identificativo della camma appena creata.

Caratteristiche della definizione:


E’ possibile definire fino a 64 camme elettroniche. Ad un asse master possono essere associate più
camme elettroniche. E’ sufficiente eseguire il comando di associazione più volte variando il file e/o
l’asse slave.Dopo questa istruzione è ancora possibile programmare il movimento dello slave e il
movimento del master non ha effetto sullo slave o sugli outputs.

3.1.35.3 Abilitazione della camma elettronica (derivata dall’associazione Master/Slave)

Con tale istruzione viene attivata le camme elettroniche precedentemente definite.

Sintassi

(CAM, 3, OffsMast, Mode, Roll {,CamId, OffsSlav, out })

dove:
OffsMast Valore di traslazione(in anticipo o in ritardo) sull’applicazione della posizione dello
slave.
Mode Indica il tipo di inseguimento da parte dello slave:
0 Inseguimento interpolato
1 AXF
Roll Se =0 la camma viene eseguita una sola volta. Se diverso da 0 rappresenta il
modulo di una camma rollover che sarà ripetuta fino ad un esplicito comando di
interruzione. Per realizzare una camma rollover il modulo può essere diverso da
360 e l’asse master può non essere un asse rotativo.
CamId Identificativo della camma precedentemente creata.
OffsSlav Valore di traslazione applicato alla posizione dello slave.
out Identificativo(ActionId) associato all’attivazione appena eseguita. Deve essere
utilizzato nel successivo comando di stop.

45004606R 91
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

All’attivazione della camma la posizione del master ricercata in tabella sarà data dalla seguente
relazione:
𝑃𝑚 = 𝑃𝑚𝑎𝑡𝑡 + 𝑂𝑓𝑓𝑠𝑒𝑡𝑀𝑎𝑠𝑡𝑒𝑟
Slav
dove: e

𝑃𝑚𝑎𝑡𝑡 posizione filtrata attuale dell’asse master

Mast
er

All’attivazione della camma la posizione dello slave derivata della ricerca in tabella sarà sommato il
valore di OffsSlav come segue:
Slav
e

Mast
er

3.1.35.4 Abilitazione della camma elettronica (derivata dall’associazione


Master/Output)

Con tale istruzione viene attivata la camma elettronica precedentemente definita.

Sintassi

(CAM, 4, OffsMast, Roll ,CamId, out)

dove:
OffsMast Valore di traslazione(in anticipo o in ritardo) sull’applicazione della posizione dello
slave.
Roll Se =0 la camma viene eseguita una sola volta. Se diverso da 0 rappresenta il
modulo di una camma rollover che sarà ripetuta fino ad un esplicito comando di
interruzione. Per realizzare una camma rollover il modulo può essere diverso da
360 e l’asse master può non essere un asse rotativo.
CamId Identificativo della camma precedentemente creata.
out Identificativo(ActionId) associato all’attivazione appena eseguita. Deve essere
utilizzato nel successivo comando di stop.

All’attivazione della camma la posizione del master ricercata in tabella sarà data dalla seguente
relazione:
𝑃𝑚 = 𝑃𝑚𝑎𝑡𝑡 + 𝑂𝑓𝑓𝑠𝑒𝑡𝑀𝑎𝑠𝑡𝑒𝑟
dove:
𝑃𝑚𝑎𝑡𝑡 posizione filtrata attuale dell’asse

45004606R 92
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche dell’abilitazione:
E’ possibile eseguire fino a 128 attivazioni contemporaneamente. La stessa camma elettronica può
essere attivata più volte per esempio variando il valore di OffsSlav e/o OffsMast.Dopo questa istruzione
non è più possibile programmare il movimento dello slave.
Bisogna distinguere tra lo stato di camma abilitata e lo stato di asse slave agganciato. La camma è
abilitata in seguito ad un comando di start. L’asse slave è effettivamente agganciato solo quando il
master si trova all’interno del range di sincronizzazione definito nella propria tabella. Le posizioni di
aggancio e sgancio sono, rispettivamente, il primo e l’ultimo punto della tabella
All’attivazione della camma elettronica il software real-time ricerca in tabella la posizione del master e
calcola il punto da passare allo slave. In questo istante lo slave potrebbe non trovarsi in prossimità del
primo punto del profilo di camma. Lo slave deve quindi muoversi al massimo delle sue caratteristiche
dinamiche per tentare di raggiungere la posizione desiderata. Se Mode = 1 l’errore tra la posizione reale
e quella teorica viene recuperato dall’asse durante la movimentazione andando, se possibile, a velocità
superiore a quella programmata(vedere master-slave). Questo problema si verifica anche nel caso di
ripetizione di camme.
Potrebbe essere necessario passare “al volo” da un profilo di camma ad un altro sullo stesso asse slave.
Per realizzare ciò bisogna interrompere la camma in esecuzione e attivare quella nuova. L’effettiva
esecuzione del nuovo profilo si avrà solo quando l’asse slave risulterà non agganciato. Ciò significa che,
nel caso di camma rollover, il nuovo profilo verrà realizzato nello stesso ciclo se la nuova posizione di
aggancio è superiore alla posizione in cui l’asse slave viene sganciato o a partire dal primo ciclo
disponibile in caso contrario. Nel caso di camma one-shot il nuovo profilo verrà realizzato solo se la
nuova posizione di aggancio è superiore alla posizione in cui l’asse slave risulterà sganciato.
Se viene eseguito un comando di RESET durante l’esecuzione della camma elettronica, le camme attive
non vengono né disabilitate, né cancellate ma rimangono in attesa di una ripartenza del master. Se si
desidera disattivare e cancellare tutte le camme del processo, è necessario lanciare (dopo il RESET) il
comando (CAM) senza parametri.

45004606R 93
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.35.5 Interruzione della camma elettronica

Con tale istruzione viene interrotta l’esecuzione di una o più camme elettroniche e le stesse vengono
diasabilitate.

Sintassi

(CAM, 9, Mode {,ActionId})

dove:
Mode Indica la modalità di interruzione delle camme. Assume significati diversi in
funzione del tipo di camma che si vuole interrompere.
Camma Master/Slave
0 L’asse slave si ferma con la sua rampa di decelerazione pur non avendo
completato il profilo di camma
1 L’asse slave si ferma solo dopo aver terminato il profilo di camma (serve
per interrompere le camme cicliche). Nel caso di camma non ciclica
questo comando è ridondante perché la camma viene disabilitata
automaticamente alla fine dell’esecuzione del profilo.
Camma Master/Output
0 Gli output rimangono invariati
1 Gli output vengono resettati
ActionId Identificativo della action precedentemente creata.

Caratteristiche:
Alla fine dell’esecuzione del comando la “Action” viene automaticamente cancellata. Si osservi che un
comando di Reset, pur interrompendo l’esecuzione delle camme elettroniche (come lo Stop esplicito),
non ne cancella l’attivazione.

3.1.35.6 Cancellazione della camma elettronica

Con tale istruzione viene eliminata l’associazione Master/Slave o Master/Output

Sintassi

(CAM, 0 {,CamId})

dove:
CamId Identificativo della camma precedentemente creata.

45004606R 94
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.1.35.7 Disattivazione e cancellazione di tutte le camme elettroniche del processo

Con tale istruzione vengono disattivate tutte le camme elettroniche e viene eliminata ogni associazione
Master/Slave o Master/Output

Sintassi

(CAM)

Esempio :
File camma.csv
0;9
0;0
100;100
200;200
300;300
400;400
500;300
600;200
700;100
800;0

N10 (CAM,1,X,Y,"camma.csv", E0) Definisce la camma elettronica tra asse X e asse Y


N20 (CAM,1,X,Z,"camma.csv", E1) Definisce la camma elettronica tra asse X e asse Z
N30 (CAM,1,X,A,"camma.csv", E2) Definisce la camma elettronica tra asse X e asse A
N40 G0Y0Z0A0 Muove gli assi slave fino al primo punto del file
N50 (CAM, 3, 0, 0, 0 ,E0, 0, E10, E1, 0, E11, E2, 0, E12) Attiva le 3 camme in modo one-shot
N60 G1X1000F4000 Muove l’asse master
N70 (CAM, 9, 0, E10,E11,E12) Interrompe le camme (comando superfluo)
N80 (CAM,0,E0,E1,E2) Cancelle le camme

Esempio :
N10 (CAM,1,X,Y,"camma.csv", E0) Definisce la camma elettronica tra asse X e asse Y
N20 (CAM,1,X,Z,"camma.csv", E1) Definisce la camma elettronica tra asse X e asse Z
N30 (CAM,1,X,A,"camma.csv", E2) Definisce la camma elettronica tra asse X e asse A
N40 G0X0Y0Z0A0 Muove gli assi slave fino al primo punto del file
N50 (CAM, 3, 0, 0, 0 ,E0, 0, E10) Attiva la camma 1 con offset master 0
N60 (CAM, 3, -810, 0, 0 ,E1, 0, E11) Attiva la camma 2 con offset master -810
N70 (CAM, 3, -920, 0, 0 ,E2, 0, E12) Attiva la camma 3 con offset master -920
N80 G1X2000F4000 Muove l’asse master
N90 (CAM, 9, 0, E10, E11, E12) Interrompe le camme attive
N100 (CAM,0,E0,E1,E2) Cancella le camme

45004606R 95
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio :
File cammaPEG.csv
2;12
10;OW(13,61440,65280)
20;OW(14,0xF000,0xFF00)
30;OW(13,3840,65280)
40;OW(14,0x0F00,0xFF00)
50;OW(13,61440,65280)
60;OW(14,0xF000,0xFF00)
70;OW(13,3840,65280)
80;OW(14,0x0F00,0xFF00)
90;OW(13,61440,65280)
100;OW(14,0xF000,0xFF00)
110;OW(13,3840,65280)
120;OW(14,0x0F00,0xFF00)

N10 (CAM, 2, X, "cammaPEG.csv", E0) Definisce la camma elettronica


N20 (CAM, 4, 0, 0, E0, E10) Attiva la camma in modalità one-shot
N30 G1X2000F4000 Muove l’asse master
N40 (CAM, 9, 0, E10) Interrompe la camma attiva
N50 (CAM,0,E0) Cancella la camma

45004606R 96
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2 Controllo delle coordinate e della dinamica


Le funzioni facenti parte di questa classe eseguono le seguenti operazioni:

CODICE G FUNZIONE
G04 Sosta a fine blocco
G05 Feed Hold a fine movimento
G06 Feed Hold a inizio movimento
G09 Decelerazione a fine blocco
G16 Definizione del piano di interpolazione e terna cartesiana per interpolazione circolare
nello spazio
G17 Interpolazione circolare e correzione profilo sul piano formato dai primi due assi dichiarati
in AMP. Terna cartesiana per cerchi nello spazio formato da primo asse in AMP, secondo
asse in AMP e terzo asse in AMP
G18 Interpolazione circolare e correzione profilo sul piano identificato dal terzo e dal primo
asse dichiarati in AMP. Terna cartesiana per cerchi nello spazio formato da terzo asse in
AMP, primo asse in AMP e secondo asse in AMP.
G19 Interpolazione circolare e correzione profilo sul piano identificato dal secondo e dal terzo
asse dichiarati in AMP. Terna cartesiana per cerchi nello spazio formato da secondo asse in
AMP, terzo asse in AMP e primo asse in AMP.
G26 Funzionamento continuo con passaggio a velocità nulla su fine blocco
G27 Funzionamento continuo con riduzione automatica della velocità sugli spigoli
G28 Funzionamento continuo senza riduzione automatica della velocità sugli spigoli
G29 Funzionamenti punto-a-punto
G31 Preparazione movimento per funzione ActiveReset
G70 Programmazione in pollici
G71 Programmazione in millimetri
G78 Programmazione riferita alla punta utensile e movimentazione riferita allo zero macchina
G79 Programmazione e movimentazione riferita allo zero macchina
G90 Programmazione assoluta
G91 Programmazione incrementale
G92 Pre-impostazione dell'asse
G93 Velocità di avanzamento espressa come inverso del tempo di esecuzione dell'ente
G94 Programmazione della velocità di avanzamento in mm/min o pollici/min
G95 Programmazione della velocità di avanzamento in pollici al giro o millimetri al giro.
G98 Pre-impostazione dell'asse. Come G92 ma applica il mirror
G99 Cancella la pre-impostazione dell’asse

NOTA:
I piani specificati in G17, G18 e G19 sono validi se durante la fase di configurazione sono stati
caratterizzati almeno tre assi.

45004606R 97
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.1 G17 G18 G19 – Selezione del piano di interpolazione


I seguenti codici G vengono utilizzati per definire il piano di interpolazione e la terna cartesiana come
descritto di seguito:

G17 Piano di interpolazione attivo formato dagli assi 1 e 2 (generalmente XY) e asse 3, terzo asse
della terna (generalmente Z).

G18 Piano di interpolazione attivo formato dagli assi 3 e 1 (generalmente ZX) e asse 2, terzo asse
della terna (generalmente Y).

G19 Piano di interpolazione attivo formato dagli assi 2 e 3 (generalmente YZ) e asse 1, terzo asse
della terna (generalmente X).

Gli assi 1(X), 2 (Y) e 3 (Z) sono i primi tre assi dichiarati in AMP durante la caratterizzazione.

Sintassi:

G17
G18
G19

La sintassi per ogni funzione è semplicemente il codice G senza parametri né altre informazioni.

Caratteristiche:
G17, G18, G19 non possono essere usate se sono attivi i seguenti codici G:
Correzione sul profilo (G41 - G42)
Cicli fissi standard (G81 - G89)
Programmazione High-speed (G61)

45004606R 98
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.2 G16 – Definizione del piano di interpolazione


Il codice G16 definisce l'ascissa e l'ordinata del piano di interpolazione analogamente a G17, G18, G19,
ma senza essere vincolato alla programmazione dei primi assi definiti in caratterizzazione.

Sintassi

G16 asse1 asse2 [asse3]

dove:
asse1 È il nome dell'asse delle ascisse (tipicamente X) del piano di interpolazione da definire.
Deve essere uno degli assi configurati nel sistema.

asse2 È il nome dell'asse delle ordinate (tipicamente Y) del piano di interpolazione da definire.
Deve essere uno degli assi configurati nel sistema.

asse3 È il nome del terzo asse della terna cartesiana (tipicamente Z). Serve per la
programmazione dell’interpolazione circolare nello spazio. Deve essere uno degli assi
configurati nel sistema.

Caratteristiche:
G16 non può essere usata se sono attivi i seguenti codici G:
Correzione sul profilo (G41 - G42)
Cicli fissi standard (G81 - G89)
Programmazione High-speed (G61)

Esempio:
G16 X A Specifica il piano di interpolazione formato dagli assi X ed A.

45004606R 99
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.3 G31 – Preparazione movimento per funzione ActiveReset


Il codice G31 identifica un blocco di movimento che può essere interrotto con un comando ActiveReset.

Come mostrato qui di seguito, il codice G31, unito al comando esterno Active Reset (da PLC) permette di
realizzare la seguente funzionalità:
interrompere un movimento assi in corso e ripartire dal successivo blocco programmato, assumendo la
posizione attuale come posizione di ripartenza.

P0
Profilo programmato:
Executed profile after

Active Reset command P2
G1 X0Y0 (P0)
G31 X1Y1 (P1)
G1 X2Y2 (P2)
… Programmed profile

Active Reset P1

Sintassi

G31 [codici-G] [operandi ]

dove:
codici-G Altri codici G compatibili con G31 (consultare "Codici G compatibili" nel Cap.2).

operandi Tutti gli operandi e i codici che possono essere utilizzati nei blocchi di funzioni G.

Caratteristiche:
Tale funzionalità può essere eseguita anche in continuo (G27)

La G31 ferma il continuo a fine movimento imponendo il sincronismo all’inizio del blocco
successivo

L’ente geometrico eseguito durante la G31 può essere programmato nello stesso blocco oppure
mantenere quello attivo in quel momento. Può essere anche una circolare (nel piano o nello
spazio) mentre non può essere una spline o un ciclo fisso

A fronte del comando esterno ActiveReset, ricevuto durante un movimento in G31, il sistema
interrompe tale movimento e riparte automaticamente col successivo senza bisogno del cycle
start

Il movimento di ripresa dipende dal tipo di ente programmato sul blocco successivo alla G31 o in
mancanza di questo mantiene quello attivo in quel momento

Nota: a causa dell’ActiveReset, le condizioni iniziali dell’ente di ripresa sono


indeterminate e un movimento circolare potrebbe segnalare errore di cerchio
incongruente.

45004606R 100
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Le eventuali funzioni M di postlude associate al movimento interrotto vengono ignorate

Se la variabile di sistema ERR è attiva allora la variabile STE viene inizializzata a 0 a inizio
movimento in G31 e poi settata al valore 45 quando il comando ActiveReset è terminato

E’ possibile ripartire da n blocchi successivi: è sufficiente inserire una GTO nel programma dopo
la G31 e condizionarla alla veriabile STE, oppure, anteporre ai blocchi da saltare il codice G31 e
gestire in fase di consenso al movimento l’ActiveReset anche per questi movimenti

La funzione ActiveReset comporta la cancellazione della coda di Retrace

La comunicazione con il PLC, per segnalare funzione ActiveReset: disponibile, da eseguire,


terminata, avviene attraverso la variabile WinPLUS SW32 (campo S_nFIXSTA)

Se il sistema passa in HOLD durante una G31 e si ha un ActiveReset, il movimento ripartirà dal
blocco successivo sull’uscita da HOLD, anche se nel frattempo si è eseguito un altro movimento o
un programma in stato di HOLD

Per maggiori dettagli in merito alla funzionalità ActiveReset lato PLC si faccia riferimento al
paragrafo “variabili di Processo” del manuale di Applicazione OPENControl.

3.2.4 G26 G27 G28 G29 – Definizione della modalità dinamica


Le funzioni G di questa classe definiscono il tipo di movimento e di posizionamento dell'asse a fine
profilo. Questi codici sono sempre accettati dal controllo.

G26 Stabilisce un movimento continuo forzando a 0 la velocità di uscita dai singoli enti del profilo.

G27 Stabilisce un movimento continuo con riduzione automatica della velocità sugli spigoli. Ciò
significa che la velocità di uscita dai singoli enti costituenti il profilo viene automaticamente
calcolata dal controllo e viene ottimizzata tenendo conto della forma geometrica del profilo
stesso. Concorrono al calcolo del valore opportuno della velocità di uscita i parametri DLA, MDA e
il salto di velocità massimo configurato sugli assi.

G28 Stabilisce un movimento continuo senza riduzione automatica della velocità sugli spigoli. In tal
caso la velocità di uscita dai singoli enti del profilo è uguale alla velocità programmata.

G29 Stabilisce un movimento punto-a-punto, forza cioè il sincronismo (svuotamento della coda di look-
ahead, consensi al movimento con PLC, entrata in tolleranza) indipendente dal tipo di traiettoria
programmata (G01 - G02 - G03 – G12 – G13). La velocità di uscita dai singoli enti del profilo è
uguale a 0.

Sintassi

G26 [codici-G] [operandi]


G27 [codici-G] [operandi]
G28 [codici-G] [operandi]
G29 [codici-G] [operandi]

dove:
codici-G Altri codici G compatibili con G26, G27, G28 e G29 (consultare "Codici G compatibili" nel
Cap. 2).
operandi Tutte le possibili classi definite per gli operandi dei blocchi con operatori G.

45004606R 101
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Caratteristiche:
Il seguente diagramma illustra il funzionamento dei codici G26, G27, G28 e G29 quando la velocità
programmata è la stessa per tutto il profilo.

AVANZAMENTO

G27

1 2 3 Blocchi

G28

1 2 3 Blocchi

G26

1 2 3 Blocchi

G29

1 2 3 Blocchi

45004606R 102
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

I seguenti diagrammi illustrano il funzionamento dei codici G26, G27, G28, G29, quando la velocita'
programmata cambia su ogni blocco del profilo.

G27

1 2 3 Blocchi

G28

1 2 3 Blocchi

G26

1 2 3 Blocchi

G29

1 2 3 Blocchi

Il movimento, all'interno di ogni blocco, è diviso in tre fasi:


1. Accelerazione
2. Moto uniforme alla velocità programmata
3. Decelerazione

Le modalità G27 e G28, differiscono solo per il tipo di decelerazione (vedi diagramma precedente).
Il modo in cui avviene il posizionamento a velocità di lavoro (G1, G2, G3) è scelto con le funzioni G26,
G27, G28, G29, mentre il posizionamento rapido G0 avviene sempre in punto a punto, cioè con
decelerazione fino a velocità zero e posizionamento preciso qualunque sia lo stato del sistema (G26,
G27, G28, G29).

45004606R 103
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Le funzioni G26, G27 o G28 definiscono il cosiddetto funzionamento in "continuo" nel quale l'intero
profilo, costituito dai vari enti, è considerato come un unico ente continuo e viene analizzato ed
eseguito dal controllo come se fosse un solo blocco.
Per questo motivo in continuo non si possono emettere funzioni ausiliarie S e T.
È possibile emettere funzioni ausiliarie M se queste sono configurate in AMP come “ammessa in
continuo”.
Tale funzionamento può essere chiuso temporaneamente da un movimento in G00 che faccia ancora
parte del profilo, in modo tale che eventuali funzioni ausiliarie M, S, e T vengano programmate in un
blocco successivo.

NOTA:
ll codice G che è stato configurato in AMP tramite ODM (tipicamente G27) viene automaticamente
selezionato all'accensione o in seguito ad un RESET.

Esempio:
Il seguente è un esempio di funzionamento in continuo e in punto-a-punto.
Y

25.65 4
0 3

230 1 2

295 5
187

0
235

75
70.477

45004606R 104
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Programma 1 (funzionamento in continuo):


N9 (DIS,"MILL DIA. 16")
N10 T4.4 M6 S800
1 N11 G X-235 Y-230 M13
N12 Z-10
2 N13 G27 G1 X75 F500 ;inizio del funzionamento in continuo (G27)
3 N14 Y
4 N15 G3 X-70.477 Y25.651 I J
5 N16 G1 X-187 Y-295
N17 G Z5 M5 ;chiusura temporanea del continuo (G00) a raggiungimento della
quota Z5
N18 (DIS,"MILL DIA. 28") ;per arresto mandrino, cambio utensile e funzioni S
N19 T5.5 M6 S1200
N20 X.. Y.. M13
N21 Z-..
N22 G1 X.. Y.. ;Ripresa del funzionamento in continuo

Se nel blocco N17 fosse programmato un G29, il funzionamento continuo terminerebbe a


fine movimento (Z=5) e i successivi spostamenti in G1 - G2 - G3 verrebbero realizzati in
modalità punto-a-punto.

Programma 2 (funzionamento punto-a-punto):

N9 (DIS, "MILL DIA. 16")


N10 T4.4 M6 S800
1 N11 G29 G X-235 Y-230 M13 ;Inizio funzionamento punto-a-punto al termine di questo
movimento
N12 Z-10
2 N13 G1 X75 F500 M5 ;Arresto mandrino
3 N14 Y S1200 M13 ;Variazione S, rotazione mandrino, refrigerante
4 N15 G3 X-70.477 Y25.651 I J
N16 DWT=2
5 N17 G1 G4 X-187 Y-295 ;Sosta a fine ente
N18 G Z5 M5
N19 (DIS,"MILL DIA. 28")
N20 T5.5 M6 S1200
N21 G X.. Y.. M13
N22 Z-..
N23 G1 X.. Y..

Programmando il funzionamento punto-a-punto con G29 nel blocco N11, è stato possibile
programmare le funzioni M ed S all'interno del profilo (blocchi N13 ed N14). La sosta a
fine ente (blocchi N16 N17), invece, può essere programmata anche in continuo.

45004606R 105
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.5 Decelerazione automatica sugli spigoli in G27


Quando la G27 è attiva, il controllo calcola automaticamente il vettore velocità sugli spigoli (per
esempio tra due movimenti successivi), usando un algoritmo che lavora in due fasi distinte.
Durante la prima fase, il vettore velocità viene calcolato applicando una formula che si basa sulle
variazioni del profilo.

La variazione del profilo è connessa con l'angolo formato da due movimenti successivi.
Il controllo confronta l'angolo attuale con il valore MDA: se l'angolo è maggiore di quello rappresentato
con il valore del MDA , il vettore velocità viene posto a zero con un risultato simile al modo G29.
In altre parole, il controllo calcola per quello spigolo una velocità appropriata a seconda del valore
dell'angolo, del salto di velocità massimo configurato sugli assi e della variabile MDA.
La seconda fase dell'algoritmo, chiamata "look ahead", è opzionale e viene abilitata o disabilitata a
seconda del valore della variabile DLA.

La fase di "look ahead" è un'ottimizzazione della prima fase, poiché il vettore di velocità calcolato viene
ulteriormente elaborato tenendo conto anche della distanza totale da percorrere sul profilo in G27 e
delle accelerazioni configurate per ogni singolo asse coinvolto nel movimento, allo scopo di ottenere una
corretta fermata alla fine del profilo.

La look ahead, non gestisce il feedrate override, in questa fase infatti viene considerata
una feedrate del 100%; valori maggiori di feedrate potrebbero provocare "SERVO ERROR".

3.2.6 UDR / UVR– Forza dinamica / velocità di rapido


Il codice UDR abilita/disabilita l’uso della dinamica di rapido per tutti i movimenti, indipendentemente
dal tipo di ente programmato.
Il codice UVR abilita/disabilita l’uso della velocità di rapido per tutti i movimenti, indipendentemente
dal tipo di ente programmato.

Sintassi

UDR = valore
UVR = valore

dove:
valore È un valore numerico che può essere:
0 per disabilitare l'uso della dinamica / velocità di rapido (default)
1 per abilitare l'uso della dinamica / velocità di rapido

Caratteristiche:
L’uso di questa variabile permette, per esempio, di eseguire lo stesso profilo una prima volta a velocità
più alta per effettuarne una sgrossatura e poi una seconda volta di rifinirlo a velocità di lavoro.

45004606R 106
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.7 URL / UWL - Abilita controllo feed-override


La variabile URL abilita/disabilita il controllo di rapid override.
La variabile UWL abilita/disabilita il controllo di feed override.

Sintassi

URL = valore
UWL = valore

dove:
valore È un valore numerico che può essere:
0 per disabilitare il controllo di rapid / feed override.
1 per abilitare il controllo di rapid / feed override.

Caratteristiche:
L’uso di questa variabile permette di abilitare o disabilitare i controlli di rapid override, rendendo quindi
inefficaci i potenziometri generalmente montati sul pannello di controllo.
I valori di default delle due variabili sono:
URL: 0. Il controllo di rapid override non è abilitato
UWL: 1. Il controllo di feed override è abilitato

3.2.8 URLFVAL / UWLFVAL Valore di feed override con override abilitato


Le variabili URLFVAL e UWLFVAL permettono di definire il valore di override che viene applicato quando
il controllo di override non è abilitato (variabili URL e UWL con valore 0).

Sintassi

URLFVAL = valore
UWLFVAL = valore

dove:
valore È un valore numerico intero compreso tra 0 e 32000. Può essere specificato direttamente
tramite un numero o indirettamente utilizzando una variabile di processo o di sistema. Il
valore di default è 10000.

Caratteristiche:
L’uso di queste variabili permette di definire un valore di default all’override quando il controllo è stato
disabilitato tramite le variabili URL e UWL.
Quando UWL o URL sono a zero allora il controllo utilizzerà come valore di override il rispettivo valore di
UWLFVAL o URLFVAL.

Il valore della variabile va inteso come variazione percentuale in centesimi di punto percentuale rispetto
al valore di riferimento. Per esempio un valore di UWLFVAL di 5000 indicherà che la feed attuata sarà
del 50% rispetto al valore programmato.
La variabile UWLFVAL si riferisce al valore di override della feed di lavoro.
La variabile URLFVAL si riferisce al valore di override del rapido.

45004606R 107
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.9 DLA – Decelerazione Look Ahead


Il codice DLA abilita/disabilita il calcolo cosiddetto di "Look Ahead" (Guarda Avanti), in modalità
dinamica G27. Il controllo considera i blocchi di movimento (enti) che costituiscono il profilo e che
seguono il blocco in esecuzione per ricalcolare la velocità di uscita dai vari enti, tenendo conto del tipo
di profilo per prevedere la decelerazione sugli spigoli. Se il profilo comprende improvvise variazioni di
traiettoria e la lunghezza degli enti non è sufficiente a garantire una corretta decelerazione, è
fondamentale avere la possibilità di prevedere queste situazioni in anticipo e dinamicamente, per poter
regolare la velocità. Il numero di blocchi di movimento successivi a quello in esecuzione su cui è eseguito
di volta in volta il calcolo è configurabile in AMP e può variare da 2 a 1024.

Sintassi

DLA = valore

dove:
valore È un valore numerico che può essere:
0 per disabilitare l'algoritmo di "Look Ahead"
1 per abilitare l'algoritmo di "Look Ahead"

NOTA:
Settando DLA=1, il tempo di elaborazione di un singolo blocco (block-time) aumenta perché il controllo
deve eseguire un numero maggiore di calcoli e di controlli; si ha però come risultato finale una migliore
precisione sul profilo.

Settare DLA=0 risulta conveniente nel caso in cui sia chiaro che la FEED programmata e la distanza totale
da percorrere in G27 siano tali da garantire una corretta fermata alla fine del profilo.

Con DLA=0 il controllo considera solamente le variazioni di profilo sugli spigoli.

Caratteristiche:
Il valore di default di questa variabile è caratterizzabile tramite ODM.

45004606R 108
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.10 LKH – Accesso alla dimensione della coda di Look Ahead


Il triletterale LKH permette di eseguire la lettura o la scrittura della dimensione della coda di Look
Ahead andando ad agire sul numero di blocchi di precalcolo impostato in AMP.

Sintassi

(LKH, modo, valore)

dove:
modo: rappresenta la modalità di accesso alla coda di precalcolo, i valori validi sono:
R: accesso in lettura
W: accesso in scrittura

valore: A secondo della modalità di accesso richiesta rappresenta la variabile dove verrà scritta la
dimensione della coda di precalcolo (accesso in lettura) o il valore con cui si vuole
modificare la coda di precalcolo (accesso in scrittura).
Nel caso di accesso in lettura, valore deve essere una variabile, mentre nel caso di accesso
in scrittura può indifferentemente essere un numero o una variabile.

Caratteristiche:
Durante una lavorazione in continuo, l’accesso in lettura o scrittura alla coda di Look Ahead, eseguita da
part program, determina lo svuotamento degli enti in coda imponendo il sincronismo a velocità 0.

Sul RESET viene ripristinata la dimensione di default configurata in AMP.

Esempio:

(LKH, R, E0) ; con questo comando viene letto il numero di blocchi di precalcolo e salvato
nella variabile E0

(LKH, W, 100) ; con questo comando viene impostato a 100 il numero di blocchi di precalcolo

(LKH, W, E0) ; con questo comando viene ripristinato il numero di blocchi di precalcolo
precedente

45004606R 109
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.11 CRV – Parametro di ottimizzazione velocità


La variabile CRV serve ad ottimizzare il valore calcolato della velocità nel caso di tratti curvi descritti
tramite una sequenza di punti molto fitta o di “rumore” su traiettorie filanti.

Sintassi

CRV = valore

dove:
valore Numero reale positivo che indica il tempo (in ms) da utilizzare per il calcolo della
curvatura. Se 0 la prestazione è disattivata.

Caratteristiche:
Per calcolare la velocità di percorrenza su di un profilo il controllo non tiene conto della lunghezza degli
enti, ma solo dell’ampiezza degli angoli che questi formano tra loro.

Nel caso di un part program generato per punti può accadere che le curvature siano descritte da un
numero rilevante di segmenti molto corti posti l’uno rispetto all’altro ad angoli relativamente piccoli. In
questo caso la velocità calcolata è molto elevata ed i segmenti corti sono percorsi in un tempo molto
breve quando addirittura non vengono saltati, di conseguenza il profilo percorso risulta impreciso.

La variabile CRV permette di tenere conto anche della lunghezza dei tratti di curvatura durante il
calcolo della velocità, realizzando quindi un controllo sulla curvatura risultante. Per definire lo spazio
lungo il quale correggere la curvatura occorre definire un tempo di “osservazione”. La scelta di
utilizzare un tempo di osservazione permette di tenere in conto i rapporti tra la velocità e la lunghezza
dei tratti formanti la traiettoria. In questo modo si possono controllare sia curvature formate da tratti
molto corti e percorsi a velocità ridotte che curvature formate da tratti più lunghi e percorse a velocità
molto alte.

L’uso della variabile CRV è efficace anche per eliminare frenate brusche degli assi in corrispondenza di
“rumore” sui punti lungo movimenti filanti contribuendo quindi alla morbidezza delle traiettorie.
Generalmente un valore di CRV compreso tra 4.0 e 6.0 assicura buoni risultati.
Valori superiori potrebbero indurre problematiche di “deficit di enti” in quanto, prima di attivare un
movimento, potrebbero richiedere l’analisi di parecchi movimenti successivi (analogamente a quanto
fatto dalla look ahead).

La funzionalità è attiva soltanto nel caso di movimentazioni in continuo (G27 / G28). Il


valore di default di CRV è configurato in AMP.

45004606R 110
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il profilo a fianco mostra il caso in cui un movimento


circolare (arco di cerchio) è descritto tramite più enti
rettilinei. In questo caso l’angolo tra gli enti è pari a
11.25°, mentre l’angolo complessivo è pari 90°. Se la
α= 11.25° prestazione di ottimizzazione velocità non è attiva
Tratto “virtuale” usato (CRV = 0) è possibile che la velocità calcolata per
per il calcolo della percorrere il profilo sia troppo alta poiché il controllo
dinamica non è in grado di identificare correttamente il profilo
“globale”. Quando invece la prestazione di
β= 90° ottimizzazione velocità è attiva il controllo identifica
la curvatura globale del profilo riducendo
proporzionalmente la velocità di percorrenza dello
stesso.

Il profilo a fianco mostra il secondo caso di uso della


funzione di ottimizzazione velocità. In questo caso il
Tratto “virtuale”
profilo desiderato sarebbe rettilineo, ma i punti
usato per il generati sono affetti da rumore dovuto ad
calcolo della imprecisioni di calcolo. Se la funzione di
dinamica ottimizzazione velocità non fosse attiva il controllo
ridurrebbe la velocità in corrispondenza dei “gradini” del profilo. Se invece la funzione è attiva la
velocità non viene ridotta.

45004606R 111
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.12 MDA – Calcolo del massimo angolo di decelerazione


Il codice MDA definisce la massima deviazione angolare dell'asse in modalità G27. Il valore selezionato
(fra 0 e 180 gradi) definisce l'angolo tra due enti consecutivi, oltre il quale il controllo si comporta come
se fosse in modalità punto a punto.

Sintassi

MDA = valore

dove:
valore è il valore massimo della deviazione angolare. È un numero reale compreso tra 0°
e 360°. Può essere specificato direttamente usando un numero o indirettamente
tramite una variabile.

Caratteristiche:
Il valore di default è MDA=90°. E' possibile configurare il valore di MDA in caratterizzazione e modificarlo
tramite apposita finestra di introduzione dati o da part program.

Quando la variazione di direzione è maggiore dell'angolo definito dal valore di MDA, il sistema
decelera l'asse fino a velocità zero. Poiché la decelerazione sugli spigoli calcolata dal sistema
dipende dall'angolo formato dagli enti e dal valore di MDA e del salto di velocità configurato
sugli assi, è possibile ottenere diversi valori di riduzione della velocità cambiando il valore di
MDA.
Notare che piccoli valori di MDA comportano una forte decelerazione sugli spigoli.
Il RESET del sistema ripristina il valore di MDA configurato in AMP.

Esempi:
MDA=90°
MDA=180°


 

45004606R 112
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.13 MOM Manual Operating Modality


La variabile MOM viene utilizzata per configurare la modalità di esecuzione dei movimenti in manuale
(JOG). Vengono definite alcune modalità operative che definiscono diverse modalità di controllo degli
assi durante i movimenti in manuale.

Sintassi

MOM = valore

dove:
valore È un numero intero che identifica il tipo di modalità di esecuzione dei movimenti, può
essere programmato direttamente o indirettamente tramite un parametro E.

Le modalità disponibili sono definite nella tabella sottostante


Modalità Descrizione

In questa modalità il movimento risultante risulta differente a seconda che vengano mossi
manualmente uno o più assi; in entrambi i casi gli assi possono essere mossi solamente
all’interno dei loro limiti operativi (se resi attivi).
Nel caso di movimento manuale su un singolo asse reale (ovvero asse non virtuale o
direzione utensile) la movimentazione viene predisposta all’interno dei limiti operativi,
ovvero i limiti entro i quali l’asse può essere mosso vengono previsti nei parametri di
movimento dell’asse. L’asse, al raggiungimento di tale limite, si arresta in modo
controllato frenando con la propria accelerazione di manuale. Questo tipo di
movimentazione viene attivata dopo la selezione dell’asse da muovere effettuata tramite
interfaccia utente (WinNBI, Human Interface, …).
Nel caso di movimento manuale con selezione di più assi reali o movimentazione lungo assi
virtuali e/o direzione utensile, la movimentazione non prevede i limiti entro i quali
0
muovere gli assi; i limiti operativi vengono controllati durante l’esecuzione della
movimentazione stessa tramite un apposito algoritmo di previsione di raggiungimento del
limite operativo. Quando viene previsto il raggiungimento del limite operativo il sistema
genera una apposita emergenza ed ogni asse si arresta utilizzando la propria accelerazione
di rapido. Questo comporta che se era attiva una movimentazione lungo un asse virtuale
(ad esempio l’asse W di direzione utensile), la relativa frenata non avviene lungo la
direzione dell’asse stesso, ma in modo scoordinato asse per asse, quindi la traiettoria
originale NON viene più rispettata. Questo tipo di selezione assi è attivabile solamente da
Logica di Macchina.
Tutti i tipi di frenata per raggiungimento dei limiti operativi avvengono utilizzando le
rampe “Trapezoidali” viene comunque mantenuta una accelerazione massima pari a quella
di emergenza.

Nel caso di movimento su un singolo asse reale nulla cambia rispetto al modo 0; per tutti
gli altri casi, ovvero con movimento manuale con selezione di più assi reali o con
movimentazione lungo assi virtuali e/o direzione utensile, vengono attivati nuovi algoritmi
1 di previsione e arresto per raggiungimento dei limiti operativi. Nel momento in cui ci si
muove lungo gli assi della direzione utensile, viene fatta la previsione raggiungimento
limite operativo tenendo conto della direzione del movimento lungo l’asse virtuale in uso;
nel momento in cui scatta la previsione, la frenata viene effettuata lungo la direzione

45004606R 113
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Modalità Descrizione
dell’asse virtuale in modo controllato ed utilizzando l’accelerazione di manuale dell’asse
virtuale. In questo caso viene mantenuta la traiettoria originale definita dall’asse virtuale.
L’arresto per raggiungimento del limite operativo non avviene più generando una
emergenza, ma effettuando un arresto controllato (con accelerazione di manuale)
solamente del singolo asse che raggiunge i limiti operativi; gli eventuali altri assi
proseguono nel loro movimento. Ad esempio muovendo l’asse W (Direzione utensile TCP)
assieme all’asse rotativo A, il raggiungimento del limite operativo per W (ovvero per gli
assi reali XYZ) comporterà l’arresto del solo asse W (XYZ) e non dell’asse A.
Nel caso in cui sia attivo il TCP, il limite operativo per la movimentazione (assi o direzione
utensile) viene normalmente controllato rispetto alla posizione fisica degli assi. È possibile
attivare il controllo anche rispetto alla punta utensile attivando i limiti operativi anche
sulla punta utensile.
L’algoritmo di previsione raggiungimento limiti operativi sui singoli assi fisici viene
comunque mantenuto attivo in modo da controllare i limiti quando la movimentazione di
un asse è generata da più componenti (ad esempio nel caso di TCP alla movimentazione
dell’asse lineare viene sommata la compensazione indotta dalla movimentazione di un
asse rotativo). Il comportamento di tale algoritmo viene modificato nell’ottica di :

arrestare solo le movimentazioni che inducono il movimento dell’asse che traguarda i limiti
operativi; ad esempio nel caso di TCP, se il limite viene determinato sull’asse lineare X,
oltre all’asse lineare stesso vengono arrestati gli assi rotativi in quanto inducono una
movimentazione dell’asse X, ma non gli assi Y e Z. Nel caso di TCP,5, tutta la
movimentazione lungo W verrà arrestata al raggiungimento del limite operativo per uno
degli assi lineari TCP.

arrestare senza generare emergenza; gli assi selezionati per la movimentazione manuale, e
che devono essere arrestati per quanto detto al punto precedente, freneranno con la loro
accelerazione di rapido.

In tale modalità è possibile, se attivato (TCP,5), muovere gli assi direzione utensile (asse W
e altri assi del piano solidali alla testa o solidali al piano XY) contemporaneamente agli
altri assi, siano essi associati o meno al TCP ad eccezione degli assi lineari del TCP. Nel
caso vengano richiesta la movimentazione contemporanea di assi virtuali e rotativi TCP, la
movimentazione viene attivata solamente o sui virtuali o sui rotativi, forzando sugli assi
esclusi un “Manual Override” pari a 0; vengono privilegiati gli assi la cui movimentazione è
stata chiesta per prima.
Esempio, si selezionano W (direzione utensile) e A (rotativo TCP) e si dà avvio alla
movimentazione in manuale muovendo solo l’asse W; se si cerca di muovere anche A,
questo non verrà mosso sino a che l’asse W non viene posto a velocità 0, una volta partito
l’asse A, non sarà possibile muovere l’asse W sino a che l’asse A non sarà a velocità 0.
Tutti i tipi di frenata per raggiungimento dei limiti operativi avvengono utilizzando le
rampe ad “trapezoidali” mantenendo una accelerazione pari a quella di manuale.
Si comporta in modo identico a 1, con questa modalità la fase di arresto viene estesa a
2
tutti gli assi mossi e non solo agli assi che raggiungono i limiti operativi e loro associati.

45004606R 114
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.14 EMGERR – Emergency to Error


La variabile EMGERR viene utilizzata per trasformare in errore le emergenze su limiti operativi.

Sintassi

EMGERR = valore

dove:
valore Può assumere il valore 0 o il valore 1, può essere programmato direttamente o
indirettamente tramite un parametro E. Con 0 si abilita la gestione delle emergenze su
raggiungimento dei limiti operativi (comportamento standard), con 1 l’emergenza viene
trasformata in un errore.

Caratteristiche:
Normalmente, il raggiungimento di un limite operativo scatena una emergenza. Tale evento può
avvenire nei seguenti casi:

 Durante la movimentazione in TCP quando le posizioni fisiche degli assi (e non quelle della punta
utensile) raggiungono i limiti software
 Durante la movimentazione in manuale se avviene la violazione di un’area protetta.
 Durante la movimentazione in coordinate polari se si entra all’interno della zona di “raggio
minimo”

Con il parametro EMGERR a 0 si avrà la generazione della emergenza 120 “Raggiunto Fine corsa SW”,
mentre col parametro EMGERR a 1 si avrà la generazione di un errore dipendente dall’operazione
effettuata.

In entrambi i casi è necessario eseguire un RESET per riprendere le normali attività

45004606R 115
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.15 MOA – Motion Auxiliary


La variabile MOA viene utilizzata per attivare opzioni di gestione della movimentazione assi.

Sintassi

MOA = valore

dove:
valore Può assumere il valore 0 o il valore 1, può essere programmato direttamente o
indirettamente tramite un parametro E. Abilita o disabilita la gestione del movimento
nullo sugli assi.

Caratteristiche:
Permette il filtraggio dinamico di piccoli movimenti, programmati sull’asse attraverso il triletterale CPA
con parametro 117 oppure in ODM (minima soglia di posizione dell’asse), in modo da evitare
rallentamenti e garantire comunque il raggiungimento della quota programmata.
Con il MOA attivo, non viene ridotta la velocità anche se, in base ai valori di MDA e massimo salto di
velocità sullo spigolo, la deviazione angolare di due movimenti contigui lo richiederebbe
Tra due movimenti in cui si ha un cambio in continuo dei piani ruotati (upr minuscolo) la prestazione non
viene applicata

45004606R 116
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.16 ERF – Errore di Forma


La variabile ERF viene utilizzata per controllare l’errore di forma durante l’esecuzione di un profilo in
presenza di filtro media punti attivato.

Sintassi

ERF = valore

dove:
valore È un numero reale positivo che può essere programmato direttamente o indirettamente
tramite un parametro E. Indica l’errore massimo ammesso rispetto al profilo programmato

Caratteristiche:
Il filtraggio dei punti in uscita verso il comando degli assi (triletterale FLT,1) introduce una distorsione
del profilo: in effetti la media mobile applicata sui punti calcolati (media calcolata con lo scopo di
ammorbidire la traiettoria) realizza una distorsione della geometria delle traiettorie. È possibile
controllare tale distorsione tramite l’utilizzo della variabile ERF, che modula la velocità di lavorazione
(specialmente in concomitanza degli spigoli) con lo scopo di riportare l’errore sul profilo, conseguenza
dell’algoritmo di media mobile, all’interno della tolleranza richiesta. L’ERF determina, inoltre, il
massimo errore ammesso durante l’esecuzione di un moto circolare; tale errore viene gestito
controllando la velocità di esecuzione del moto circolare, quindi il valore di ERF limita la velocità di
esecuzione di una circonferenza.

In generale, in presenza di uno spigolo, la distorsione della geometria genera un errore di forma sul
pezzo lavorato che è funzione di:
Angolo sullo spigolo
Velocità di passaggio sullo spigolo
Numero di punti del filtro

L’algoritmo del ERF, partendo dall’errore (massimo) impostato con questo parametro, calcola, dato
l’angolo tra due movimenti contigui ed il numero di punti del filtro, la velocità con cui lo spigolo deve
essere affrontato.

Quindi con la semplice variazione di questo parametro (orientativamente da qualche millesimo a qualche
millimetro) è possibile vedere dei notevoli cambiamenti del comportamento dinamico della macchina.

E’ possibile variare il valore di ERF durante una esecuzione in continuo. Sullo spigolo verrà applicato il
valore di ERF attivo sul primo dei due movimenti che generano lo spigolo.

Esempio:

ERF = 0.5
G1 X100 Y0 F10000
ERF = 0.1
G2 Y-100I100J-50

Sullo spigolo a coordinate (100,0) verrà applicato ERF= 0.5 mentre sul movimento circolare verrà
applicato ERF = 0.1

45004606R 117
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.17 Jerk Limitation


Facendo riferimento ai diagrammi di velocità riportati nei paragrafi precedenti si nota la continuità della
funzione velocità V(t) mentre la funzione accelerazione a(t) risulta avere un andamento a “gradini”.
Questo, in funzione delle caratteristiche della macchina e del tipo di lavorazione, può causare finiture
del pezzo non buone.

Tale problema può essere risolto utilizzando una funzione di accelerazione a(t) che comporti una
continuità nel suo andamento.

Con la “Jerk Limitation” si intende limitare le variazioni di accelerazione, così da controllarne il valore
massimo, che si traduce in una maggiore “morbidezza” dei movimenti ed una conseguente migliore
finitura superficiale.

V(t)

t

45004606R 118
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.18 RAMP – Modalità di movimentazione


La variabile di sistema RAMP serve a specificare quale tipo di rampa di accelerazione vada utilizzata nel
calcolo della dinamica degli assi di processo.

Sintassi:

RAMP = valore

dove:
valore È un numero intero che specifica quale tipo di rampa vada utilizzata. I valori accettati
sono i seguenti:
0 - Utilizza la rampa configurata sugli assi
1 - Rampa Lineare
2 - Rampa non lineare ad S
3 - Rampa trapezoidale
4 - Rampa con Jerk limitation

È possibile specificare il valore direttamente usando un numero intero o indirettamente


tramite una variabile. Il valore di default di RAMP è definito nella configurazione AMP.

Caratteristiche:

Il RESET ripristina il valore di default della variabile RAMP.

Le rampe non lineari funzionano sia su movimenti in punto-punto (G29) sia su movimenti in continuo
(G26, G27 e G28). Durante un continuo è possibile modificare il valore di RAMP, tali modifiche saranno
prese in considerazione soltanto all’inizio del continuo successivo (per fare sì che la modifiche siano
prese in conto è necessario uscire dal continuo e rientrarci).

Si consiglia di utilizzare il valore 4 per macchine con elevate dinamiche (jerk elevati) mentre il valore 3
è da utilizzare per macchine in cui occorre limitare le dinamiche (jerk bassi). A parità di jerk
configurato, il valore 3 è più performante (in termini di tempi di esecuzione) rispetto al valore 4, ma
induce delle movimentazioni più “brusche”.

45004606R 119
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Rampa non lineare ad S:


Le rampe non lineari ad S (rampe ad S) sono rampe in cui la modalità di esecuzione è caratterizzata dal
valore della variabile JRK. Il sistema modula con continuità il valore di accelerazione tra 0 ed un valore
massimo il cui valore è dato da a/JRK per cui con un valore di JRK=1 si raggiungerà l’accelerazione
nominale, con JRK=2 si raggiungerà un valore di accelerazione dimezzato rispetto a quello nominale, con
JRK=0,5 si raggiungerà un valore di accelerazione doppio rispetto al nominale. I valori di jerk risultanti
sul movimento NON saranno controllati, ma varieranno da 0 ad un valore indefinito.

Jerk

Veloc

Accel

Nell’esempio riportato è stato programmato un movimento a velocità 20000 mm/min con accelerazione
di 1500 mm/s2. Il valore massimo di accelerazione viene raggiunto solo in un istante a metà della fase di
accelerazione o decelerazione. Avendo JRK=1 il valore di accelerazione raggiunto è pari a quello
richiesto.

Il tempo di esecuzione della fase di accelerazione è pari al tempo che sarebbe occorso utilizzando una
rampa di accelerazione lineare, moltiplicato però per il valore JRK e per la costante 1.485.

Trampa = T rampa lineare * JRK * 1.485.

Il tempo di rampa, viene anche influenzato dal parametro “tempo minimo di rampa” configurato in AMP
per ogni asse. Se il tempo calcolato per la rampa non rispetta il tempo minimo di rampa, ovvero risulta
inferiore, la rampa verrà ricalcolata in modo da rispettare questo ultimo vincolo.

N.B. Il tempo minimo di rampa rappresenta il tempo necessario a raggiungere la massima accelerazione
(tempo di applicazione del Jerk) per cui, come si vede dal grafico successivo, il tempo totale di rampa è
pari a 2 volte il tempo minimo.

45004606R 120
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Veloc

Accel

Jerk

Tempo di
applicazione del
jerk

Rampa trapezoidale
Le rampe di accelerazione vengono calcolate in base ai parametri di jerk configurati in AMP. All’interno
di un movimento viene utilizzato un valore di jerk calcolato dal sistema in modo tale che il movimento
rispetti le caratteristiche di jerk di ogni asse. Il valore di jerk configurato per ogni asse è da considerare
come valore da usare durante la fase di accelerazione. Il sistema mantiene il valore di jerk costante
durante tutta la fase di accelerazione.

Veloc
Jerk

Accel

45004606R 121
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nell’esempio riportato è stato programmato un movimento a velocità 20000 mm/min con accelerazione
di 1500 mm/s2 e con jerk di 15000 mm/s3. Il valore massimo di accelerazione viene raggiunto e
mantenuto per un certo tempo nella parte centrale della fase di accelerazione o decelerazione; può
raggiungere o meno il valore massimo richiesto in funzione del salto di velocità da compiere.

La movimentazione, oltre che dal parametro jerk, viene influenzata anche dal tempo minimo di rampa
configurato in AMP per ogni asse. Se il tempo calcolato per la rampa non rispetta il tempo minimo di
rampa, ovvero risulta inferiore, la rampa verrà ricalcolata in modo da rispettare questo ultimo vincolo.

N.B. Il tempo minimo di rampa rappresenta il tempo necessario a raggiungere la massima accelerazione
(tempo di applicazione del Jerk).

Velocità

Accel

Jerk

Tempo di
applicazione del
jerk

45004606R 122
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Rampa con Jerk Limitation


Le rampe di accelerazione vengono calcolate in base ai parametri di jerk configurati in AMP. All’interno
di un movimento viene utilizzato un valore di jerk calcolato dal sistema in modo tale che il movimento
rispetti le caratteristiche di jerk di ogni asse. Il valore di jerk configurato per ogni asse è da considerare
come valore massimo raggiungibile durante la fase di accelerazione. Il sistema modula il valore di jerk
con continuità tra 0 ed il suo valore massimo, allo stesso modo modulerà il valore di accelerazione che
potrebbe non raggiungere il valore massimo configurato.

Veloc
Jerk

Accel

Nell’esempio riportato è stato programmato un movimento a velocità 20000 mm/min con accelerazione
di 1500 mm/s2 e con jerk di 15000 mm/s3. Il valore massimo di accelerazione viene raggiunto solo in un
istante a metà della fase di accelerazione o decelerazione e comunque è inferiore al valore massimo
richiesto. Solamente con jerk più elevato si potrà raggiungere la massima accelerazione.

La movimentazione, oltre che dal parametro jerk, viene influenzata anche dal tempo minimo di rampa
configurato in AMP per ogni asse. Se il tempo calcolato per la rampa non rispetta il tempo minimo di
rampa, ovvero risulta inferiore, la rampa verrà ricalcolata in modo da rispettare questo ultimo vincolo.

45004606R 123
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

N.B. Il tempo minimo di rampa rappresenta il tempo necessario a raggiungere la massima accelerazione
(tempo di applicazione del Jerk) per cui, come si vede dal grafico successivo, il tempo totale di rampa è
pari a 2 volte il tempo minimo.

Veloc

Accel

Jerk

Tempo di
applicazione del
jerk

45004606R 124
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.19 JRK – Jerk Constant


Il codice JRK definisce la modalità di gestione delle accelerazioni durante l’esecuzione di movimenti con
rampe ad S (RAMP=2).

Sintassi:

JRK = valore

dove:
valore È un valore numerico maggiore di 0.5 che serve per definire la modalità di gestione delle
accelerazioni all’interno di una rampa ad S

Caratteristiche:
Il valore di default è 1. E’ possibile comunque configurare il valore di JRK in AMP tramite l’ODM. Il RESET
ripristina il valore di default. Ponendo JRK = 1, la rampa di accelerazione mantiene i valori configurati
per le accelerazioni degli assi. Con valore inferiore ad 1 si aumenta l’accelerazione, con valore superiore
la si diminuisce.


Accel

Accel

In entrambi i movimenti si è richiesta una accelerazione di 1500 mm/sec 2. Nel primo si è utilizzato un
valore di JRK=1 (quindi si è raggiunta una accelerazione pari a quella richiesta), nel secondo caso si è
utilizzato un valore di JRK=2 quindi si è raggiunta una accelerazione pari a metà di quella richiesta. Nel
successivo esempio si è utilizzato un JRK=0.5 ottenendo una accelerazione doppia.

Accel

45004606R 125
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.20 FEEDROT – Feed programmata solo sugli assi lineari


Questa variabile di sistema permette di attivare la velocità di lavorazione solo agli assi lineari. È
l’equivalente del bit 6 della variabile MOV della Serie 10 OSAI.

Sintassi:

FEEDROT = valore

dove:
valore: 0: feed programmata su tutti gli assi del movimento
1: feed programmata solo sugli assi lineari

Caratteristiche:
Se questo flag è posto a uno, la Feed programmata in un blocco di movimento è relativa agli assi lineari.
L’eventuale programmazione di un asse rotativo, in aggiunta a quelli lineari, provoca un ricalcolo
automatico della velocità in modo che la stessa lungo gli assi lineari rimanga invariata. Il ricalcolo della
velocità viene applicata solo se in un movimento sono presenti sia gli assi lineari che gli assi rotativi. Non
viene applicata nel caso di moti circolari (G2/G3/G12/G13/G14), in cui un asse rotativo fa parte del
piano d’interpolazione.

45004606R 126
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.21 FRM – Modifica comportamento con FEEDROT attiva


Questo comando permette di modificare il comportamento del controllo quando la velocità di
lavorazione è applicata solo agli assi lineari.

Sintassi:

(FRM, asse, valore)

dove:
asse: asse per il quale si richiede di modificare il comportamento quando FEEDROT è attiva. Può
essere specificato direttamente utilizzando il suo nome o il suo identificativo o
indirettamente utilizzando una variabile.
valore: questo parametro permette di specificare se l’asse vada interpolato insieme agli assi
lineari o se vada interpolato a parte. Il valore 0 indica che l’asse deve essere interpolato
insieme agli altri. Il valore 1 indica che l’asse non deve essere interpolato insieme agli
altri.

Caratteristiche:
Questo comando ha effetto solamente se la variabile FEEDROT è uguale a 1.

Il comando FRM permette di inserire o rimuovere un asse alla lista degli assi che saranno interpolati
insieme. Questo comando, quindi, permette di alterare il comportamento del controllo quando la
variabile FEEDROT vale 1.

Di default, quando FEEDROT è uguale a 1, tutti gli assi lineari vengono interpolati insieme
così da rispettare la velocità di lavorazione richiesta. Gli assi rotativi, invece, vengono mossi
indipendentemente.

Esempio:

G0XYAC ; X, Y, Z lineari, A e C rotativi


G91
; Tutti gli assi sono interpolati insieme F su ogni asse 1500
G1X100 Y100 A100 C100 F3000
; Attivazione della FEEDROT
FEEDROT = 1
; Gli assi rotativi sono interpolati a parte, la feed dei lineari vale 2828.472, quella dei rotativi 282.8472
G1 X100 Y100 A10 C10F4000
; L’asse A viene aggiunto ai lineari
(FRM, A, 0)
G1 X100 Y100 A10 C10F4000
; Gli assi X e A vengono rimossi
(FRM, X, 1)
(FRM, A, 1)
G1 X100 Y100 A10 C10F4000

45004606R 127
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.22 RAPSTOP – Attivazione frenata rapida


Abilita la modalità frenata rapida in caso di RESET, HOLD, FeedHold.

Sintassi:

RAPSTOP = valore

dove:
valore: 0: frenata rapida disattivata
1: frenata rapida attivata con rampe trapezoidali
2: frenata rapida attivata con rampe trapezoidali “ridotte”
3: frenata rapida attivata con rampe lineari

Caratteristiche:
Quando la frenata rapida è attiva, l’arresto del moto avviene usando le rampe associate alla modalità di
RAPSTOP selezionata. Nel caso in cui sul processo siano attivate le rampe lineari, la frenata rapida (se
attivata) avviene sempre usando rampe lineari (RAPSTOP=3).

Nel caso di rampe trapezoidali (normali o ridotte) vengono tenuti in considerazione solo i parametri di
decelerazione e dejerk lungo il profilo, ignorando, se presenti, i tempi minimi di rampa.

La differenza tra rampe trapezoidali e trapezoidali ridotte consiste nel fatto che:
le rampe trapezoidali hanno una fase iniziale e finale del movimento di arresto in cui viene
tenuto in considerazione il Jerk, quindi sia l’inizio che la fine della fase di arresto sono
“morbide”
Le rampe trapezoidali “ridotte” applicano il Jerk solamente nella fase finale del movimento di
arresto, quindi iniziano a frenare con una rampa simile a quella lineare e terminano l’arresto con
una rampa in cui si controlla il Jerk. Ciò risulta avere un arresto più veloce rispetto alle rampe
trapezoidali pure.

45004606R 128
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.23 ODH – Online Debug Help


Questa variabile di sistema permette di verificare se esistono, nel part program, delle movimentazioni in
modalità continuo con velocità programmate sul profilo troppo alte, con conseguenti errori di traiettoria
sul profilo da lavorare.

Sintassi:

ODH = valore

Caratteristiche:
Per ottenere risultati attendibili dall'utilizzo di ODH, occorre azzerare la variabile stessa prima di
utilizzarla nel part program; ODH deve cioè essere forzata a zero prima dei blocchi da testare. L’utilizzo
di questa variabile avviene solitamente in fase di messa a punto del Part Program : il sistema modifica la
variabile ODH quando rileva condizioni critiche.

Tali informazioni sono codificate a bit con il seguente significato:


Bit 0: indica che la coda degli enti processati in continuo è troppo corta. Si verifica quando in
G28 (e in alcuni casi in G27), la velocità di lavorazione è troppo elevata rispetto al numero
di blocchi di precalcolo configurati in ODM. Le soluzioni possibili sono di diminuire la
velocità o di incrementare la dimensione della coda enti di precalcolo.

Bit 1: indica velocità troppo elevata che si verifica quando nel profilo esistono degli enti troppo
corti che vengono saltati poiché percorsi a velocità troppo elevata. In tal caso si ha una
deformazione del profilo lavorato. Le soluzioni possibili sono di ridurre la velocità, oppure
di ricalcolare i punti sul programma.

Bit 3: si verifica quando il sistema ha forzato una frenata per evitare di deformare il profilo nel
caso in cui non riesca a calcolare completamente le rampe di accelerazione/decelerazione
per gli enti di movimento analizzati, durante la lavorazione con rampe non lineari attive.
Le soluzioni possibili sono di diminuire la velocità o di incrementare la dimensione della
coda enti di precalcolo.

45004606R 129
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:

........
........
ODH=0 ;azzeramento variabile per verifica velocità
G1G28F1000 ;inizio movimento modalità continuo
........
........
........
........ ;movimenti in modalità continuo
........
........
........
G29M5 ;fine dei movimenti in modalità continuo
(GTO,KO,ODH=1) ;salta se ODH=1
(DIS;"VELOCITA' ENTRO I LIMITI DEL SISTEMA")
(GTO,CONTINUA)
........
"KO"
(DIS,"PROBLEMI DI VELOCITA' TROPPO ALTA")
........
........
"CONTINUA"
........

45004606R 130
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.24 MBA – MultiBlock retrace Auxiliary functions


La variabile di sistema MBA permette di abilitare/disabilitare l’emissione delle funzioni ausiliarie
(funzioni M) durante l’operazione di Retrace.

Sintassi:

MBA = valore

dove:
valore 0 disabilita l’emissione
1 abilita l’emissione

Caratteristiche:
L’emissione delle funzioni ausiliarie viene effettuata solamente durante la fase di retrace in avanti
(vedere Manuale d’Uso)

Dopo il RESET, la variabile viene ripristinata col valore configurato in AMP.

3.2.25 REM – Ritorno automatico sul profilo a fine movimento


La variabile REM determina la modalità di ritorno sul profilo (Jog return).
Se la variabile è 0 il punto di ritorno è il punto in cui si è entrati in hold (esecuzione standard).
Se la variabile è 1 il punto di ritorno è il punto finale del movimento all’interno del quale si è entrati in
hold. Il ritorno è eseguito in automatico, senza movimenti in manuale (JOG).

Sintassi:

REM = valore

dove:
valore: 0 ritorno sul punto di ingresso in hold
1 ritorno automatico a fine movimento

Il RESET non modifica il valore della variabile

45004606R 131
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.26 G70 G71 - Unità di misura


I codici G70 e G71 definiscono l'unità di misura usata dal controllo.

G70 Imposta l'unità di misura in pollici


G71 Imposta l'unità di misura in millimetri

Sintassi

G70 [codici-G] [operandi ]


G71 [codici-G] [operandi ]

dove:
codici-G Altri codici G compatibili con G70 e G71 (consultare "Codici G compatibili" nel Cap. 2).

operandi Tutti gli operandi ed i codici ammessi nei blocchi di funzioni G.

Caratteristiche:
Se non viene programmato G70 o G71, l'unità di misura di default sarà quella dichiarata nella
configurazione di sistema.

Commutando da G71 a G70 o da G70 a G71, tutte le informazioni relative alla posizione e alla velocità di
avanzamento vengono automaticamente convertite all'unità appropriata.

Commutando da G71 a G70 o viceversa, le tabelle dei correttori e delle origini non
vengono convertite automaticamente nelle unità alternative.

Commutando da G71 a G70 o viceversa, il valore eventualmente definito per il


sovrametallo (variabile MSA) viene azzerato.

45004606R 132
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.27 G90 G91 G79 G78 - Programmazione assoluta, incrementale, riferita alle quote
macchina (ABSOLUTE) o riferita alla punta utensile (WORK)
G90 Definisce la programmazione assoluta; gli spostamenti sono riferiti all'origine corrente.

G91 Definisce la programmazione incrementale; gli spostamenti sono riferiti alla posizione
raggiunta con lo spostamento precedente.

G78 Definisce la programmazione in quote pezzo, cioè riferite alla punta utensile (WORK), ma
con movimentazione in quote giunto cioè eseguita come se il TCP fosse disabilitato, ossia
senza ruotare attorno alla punta utensile. E' valido solo nel blocco in cui viene
programmato.

G79 Definisce la programmazione in quote macchina (ABSOLUTE). E' valido solo nel blocco in
cui viene programmato.

Sintassi

G90 [codici-G] [operandi ]


G91 [codici-G] [operandi ]
G78 [codici-G] [operandi ]
G79 [codici-G] [operandi ]

dove:
codici-G Altri codici G compatibili con G90, G91, G79 e G78 (consultare "Codici G compatibili" nel
Cap.2).
operandi Tutti gli operandi e i codici che possono essere utilizzati nei blocchi di funzioni G.

Caratteristiche:
Se nessuno di questi codici viene programmato, la modalità di programmazione di default è il sistema
assoluto (G90) riferito alle origini programmate.

G90 e G91 sono modali. G78 e G79 non sono modali, ossia sono attive nel solo blocco in cui sono
programmate: nel blocco successivo questa modalità viene automaticamente disabilitata.

Tramite l’utilizzo dei caratteri >> è possibile anche la programmazione mista incrementale/assoluta
nello stesso blocco.

I caratteri >> posti prima del valore numerico di un operando, indicano che esso va considerato come
valore incrementale ed è valido solo per quell’operando. I caratteri >> hanno significato solo se è attiva
la programmazione assoluta G90. Essi possono essere utilizzati per tutti gli operandi su cui è possibile
utilizzare la funzione G91.

I movimenti associati ai codici G78 e G79, se eseguiti con TCP, oppure UPR, oppure virtualizzazioni
attive vengono eseguiti in modalità punto punto.

45004606R 133
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

L’utilizzo della modalità G78 permette di programmare le quote pezzo (WORK) finali in modo
che vengano raggiunte evitando quegli ampi movimenti della testa attorno alla punta utensile
tipici delle movimentazioni con TCP attivo, ma anzi con un movimento diretto tra la posizione
iniziale e finale. Questo permette di velocizzare alcuni tipi di posizionamenti.

D’altra parte durante una movimentazione a cinque assi in modalità G78 o G79, non muovendosi
attorno alla punta utensile (cioè muovendosi come se il TCP, pur attivo, fosse disabilitato), si
possono avere degli sbandieramenti dell’utensile dovuti al movimento degli assi rotativi con
potenziale pericolo di collisione tra utensile e pezzo: per questo motivo è opportuno utilizzare
tale programmazione solo per movimenti di posizionamento in aria a quote di sicurezza.

A scopo esplicativo, la seguente figura rappresenta il movimento di una testa con TCP attivo ma
in modalità G78: viene evidenziato il movimento diretto tra il punto iniziale (P1j) ed il punto
finale (P2j) programmando in quote pezzo (WORK) i punti P1w e P2w, mentre durante il
movimento la punta dell’utensile fuoriesce dal profilo a causa del movimento del rotativo.

Volendo eseguire lo stesso movimento in modalità G79, bisognerebbe invece programmare il


punto finale in quote giunto (ABSOLUTE) ossia il punto P2j. Questo però richiederebbe la
conoscenza della geometria della testa per calcolare le quote giunto (P2j) in modo che al
termine del movimento la punta utensile si trovi nel punto desiderato (P2w). Per questo motivo
la modalità G79 viene normalmente utilizzata per movimenti semplici come ad esempio il
sollevamento della testa a quota Z di sicurezza, anche con TCP abilitato.

Movimento eseguito
in G78 o G79

P1j P2j

P1w P2w

Profilo ottenuto

Indicando con P1w il punto programmato iniziale e P1j il suo corrispondente centro fresa, il
punto finale P2j può essere raggiunto dalla macchina, attraverso un movimento lineare da P1j a
P2j e di A da A1 ad A2, a seguito della programmazione:

(TCP,1)
; punto giunto di coordinate X2j, Y2j, Z2j, A2
G79 P2j
oppure
G78 P2w ; punto pezzo di coordinate X2w, Y2w, Z2w, A2

45004606R 134
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
G90 G1 X + 80 Y >> + 35 Z-70
Il valore associato ad Y va considerato come incremento.

Esempio:
Questo esempio illustra i tre differenti sistemi: assoluto, incrementale e riferito alla posizione "HOME".

Y Y

Origine assoluta 1

HOME
Posizione
"HOME"

X
Zero Macchina
Programma:
(UAO,1) ;Attiva l'origine assoluta 1 X
N1 G X Y ;X e Y posizionate sull'origine assoluta 1(si assume modalità di default G90)
N2 X30 Y40 ;X e Y posizionate sul punto 1
N3 G91 X50 Y25 ;posizionamento in incrementale sul punto 2 ( X+50, Y+25 dal punto 1)
N4 X-71 Y12 ;posizionamento in incrementale sul punto 3 ( X-71, Y+12 dal punto 2)
N5 G90 X110 Y35 ;posizionamento in assoluto sul punto 4 ( X+110, Y+35 dall'origine)
N6 G79 X70 Y55 ;posizionamento riferito alla posizione "HOME" sul punto 5 ( X+70, Y+55 dalla
posizione "HOME")

45004606R 135
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.28 G92 G98 G99 - Presetting dell'asse


G92 e G98 sono un metodo alternativo per introdurre l'offset, o correzione, di un asse. Poiché G92/G98
definiscono la posizione di riferimento, devono essere programmate da sole nel blocco. La differenza tra
la posizione attuale e la nuova viene memorizzata in un registro di offset specifico per G92/G98. In tal
modo, quando viene introdotto un offset G92/G98, altri offset attivi, come i correttori utensile e le
origini, non vengono persi. Il codice G99 cancella il codice G92/G98.

Sintassi

G92 assi
G98 assi
G99

dove:
assi Sono campi del tipo nome asse-valore. Possono essere specificati al massimo 12 assi.

Caratteristiche:

La G98 opera esattamente come la G92, ma mentre la G92 non considera il MIRROR applicato sugli assi
programmati, la G98 ne tiene conto.

I codici G92 e G98 vengono annullati dalle seguenti funzioni:


G99
M30
reset di sistema
logica di macchina (PLC)

L'offset G92 o G98 sposta l'origine di un part program, senza provocare lo spostamento dell'asse. Quando
viene inserito il valore dell'asse in un blocco G92 o G98, esso diventa la posizione corrente dell'asse.

Esempio:

........
Y
........

G0 X100 Y80

G92 X0 Y0

80
........

........

100 X

45004606R 136
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.29 G04 G09 - Attributi della modalità dinamica


A questa classe appartengono due codici:
G04 Sosta a fine blocco
G09 Decelerazione a fine blocco

Sintassi

G04 [codici-G] [operandi ]


G09 [codici-G] [operandi ]

dove:
codici-G Altri codici G compatibili con G4, G9 (consultare "Codici G compatibili" nel Cap. 2).

operandi Tutti gli operandi e i codici ammissibili nei blocchi di funzioni G.

Caratteristiche:
G04 provoca una sosta a fine ente. Il tempo di sosta si programma con un comando DWT in un blocco che
precede G04; nel caso in cui il blocco DWT non venga programmato viene assunto come tempo di sosta
quello caratterizzato in AMP. G04 è valido solo nel blocco in cui è programmato. Il valore impostato in
DWT viene espresso in secondi (G94 o G95 con G0 attivo) o in giri (G95).

G09 forza la velocità a zero al termine del blocco in cui viene programmato, ma non varia lo stato della
lavorazione in corso su un profilo. Se il controllo è in modalità punto-a-punto (G29) o se è programmato
in un blocco alla fine di un profilo, G09 non provoca alcuna modifica nello stato del controllo. G09 ha
validità solo nel blocco in cui viene programmato.

G4

DWT t
V

G9

45004606R 137
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.30 G05 G06 – Entrata in FeedHold a fine / inizio movimento


Questi due codici G permettono di attivare il feedhold a inizio (G6) o fine (G5) movimento.

Sintassi

G05 [codici-G] [operandi ]


G06 [codici-G] [operandi ]

dove:
codici-G Altri codici G compatibili con G05, G09 (consultare "Codici G compatibili" nel Cap. 2).

operandi Tutti gli operandi e i codici ammissibili nei blocchi di funzioni G.

Caratteristiche:
Il codice G05 mette il processo in modalità FeedHold al termine del movimento programmato.
Il codice G06 mette il processo in modalità FeedHold all’inizio del movimento programmato.
Entrambi i codici G possono essere programmati sia su blocchi che contengono un movimento che su
blocchi che non contengono movimenti programmati. Nel secondo caso i due codici si comportano allo
stesso modo.

G05 su blocco contenente movimento: durante il movimento è possibile disattivare (da PLC con apposita
chiamata) l’entrata il feedhold a fine movimento; in questo caso il passaggio tra i due movimenti avverrà
in velocità (se consentito dalla dinamica dei due movimenti).

G05 su blocco senza movimento: il sistema entra comunque il feedhold.

G06 su blocco contenente movimento: durante l’esecuzione del movimento precedente la G06 è
possibile disattivare (da PLC con apposita chiamata) l’entrata in feedhold ad inizio movimento; in questo
caso il passaggio tra i due movimenti avverrà in velocità (se consentito dalla dinamica dei due
movimenti). Se nel blocco precedente era presente una G05, la G06 del blocco attuale viene
automaticamente disattivata effettuando la richiesta di uscita di feedhold sulla fine del blocco
precedente.

G06 su blocco senza movimento: il sistema entra comunque il feedhold.

3.2.31 t - Tempo di esecuzione blocco


Programmando la funzione t alla fine del blocco è possibile stabilire il tempo di esecuzione del blocco in
entrambe le funzioni G93 e G94.

Esempio:
G1 X10 Y1 t6

Caratteristiche:
La funzione t è valida solo nel blocco in cui è stata programmata. Il tempo viene calcolato in secondi ed
il controllo calcola automaticamente l'avanzamento che verrà usato per eseguire il movimento degli assi
presenti nel blocco.

45004606R 138
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.32 DWT - Tempo di sosta


Il comando DWT consente di programmare un tempo di sosta da eseguire a fine blocco. Definisce il
tempo di sosta utilizzato per G04 e nei blocchi di ciclo fisso.
Il comando DWT può essere programmato in un blocco qualsiasi di part program, ma prima di qualsiasi
G04 o ciclo fisso al quale faccia riferimento.

Sintassi

DWT = valore

dove:
valore È un valore espresso in secondi o giri. Può essere programmato direttamente con un
numero decimale o indirettamente con i parametri E.

Esempio:
DWT = 12.5 assegna un tempo di sosta di 12.5 secondi
E32 = 13.4 assegna il valore 13.4 alla variabile E32
DWT = E32 assegna un tempo di sosta di 13.4 secondi

3.2.33 G93 – Velocità di avanzamento V/D


La funzione G93 definisce la velocità di avanzamento degli assi (F) espressa come inverso del tempo in
minuti necessario per eseguire l'ente
1
F = ───
T

Interpolazione Lineare:
Velocità di avanzamento
F = ─────────────────
Distanza

Interpolazione Circolare:
Velocità di avanzamento
F = ─────────────────
Arco
dove:
Velocità di avanzamento velocità lineare o circolare espressa in mm/min (G71) o pollici/min (G70).
Distanza distanza vettoriale del moto lineare programmato in mm o pollici.
Arco sviluppo dell'arco programmato in mm o pollici.

Con G93 attiva, la funzione F è valida solo nel blocco in cui è stata programmata.

Esempio:
G93 G1 X... Y... F...
X... Y... F...

45004606R 139
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.2.34 VFF - Velocity Feed Forward


Questo comando abilita o disabilita il VFF. Il VFF entra in gioco nell'asservimento assi consentendo un
controllo sulla velocità oltre che sulla posizione.

Sintassi

VFF=valore

dove:
valore È un valore che può essere:

0: disabilita VFF - gli assi sono controllati solo in posizione, cioè tenendo conto solo
dell'errore di inseguimento rispetto alla posizione teorica.
1: abilita VFF - gli assi sono controllati anche in velocità. Il controllo viene fatto solo
per movimenti in AUTO o MDI.
2: analogo al modo 1 ma solo per movimenti in manuale.
3: analogo al modo 1 ma per tutti i movimenti.

NOTA:
Il valore di default di VFF è 0 e viene configurato al momento della caratterizzazione tramite ODM.

3.2.35 FOP – Feed Override on Programmed Feed


Questa variabile permette di scegliere se il valore di feed override attivo debba essere applicato alla
feed programmata o a quella calcolata.

Sintassi

FOP=valore

dove:
valore È un valore che può essere:
0: Applica il feed ovverride sul valore di feed calcolato.
1: Applica il feed ovverride sul valore di feed programmato.

Esempio:
FeedOverride impostato a 50%.
Feed di lavoro massima dell’asse X: 6000 mm / min
Blocco programmato:
G1 X1000 F16000

Se FOP = 0:
Feed applicata: 3000 mm/min: il controllo prima limita la velocità al massimo accettato dall’asse,
poi applica il feed override del 50%
Se FOP = 1:
Feed applicata: 6000 mm/min: il controllo calcola la feed con feed override al 50% (8000
mm/min), poi applica la limitazione dovuta al limite di feed dell’asse

45004606R 140
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3 Modifica del sistema di riferimento dell’asse


I comandi appartenenti a questa classe consentono di modificare il sistema di riferimento cartesiano
rispetto al quale è stato programmato un profilo.

COMANDO FUNZIONE
SCF Fattori di scala
MIR Lavorazione in mirror
ROT Rotazione del piano
UAO Uso di origini assolute
UTO Uso di origini temporanee
UIO Uso di origini incrementali
RQO Riqualifica delle origini

Se attive queste funzioni vengono eseguite nel seguente ordine:


SCF - G70/G71 - MIR - ROT – MODIFICA ORIGINI.

45004606R 141
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.1 SCF - Fattori di scala


Il comando SCF assegna un fattore di scala alle quote programmate. Il controllo applica i fattori di scala
agli assi specificati nel comando SCF.

Sintassi

(SCF [asse1valore1, . . . , asse12valore12])


oppure:
(SCF [,valore1])

dove:
valore1 . . .valore12 Definisce il fattore di scala da applicare. Si può programmare direttamente
usando un numero decimale o indirettamente usando un parametro E.

asse1 . . . asse12 Nome dell'asse e valore. Deve essere uno degli assi configurati sul sistema.
Il controllo applica il fattore di scala all'asse specificato.

Caratteristiche:
Nel comando SCF è possibile specificare fino a dodici assi. Il controllo disabilita i fattori di scala per assi
che non siano specificati nel comando. Se programmato senza un fattore di scala e senza assi, SCF
annulla i fattori di scala per tutti gli assi.
È possibile programmare un fattore di scala di valore negativo, in tale caso il risultato finale sarà che il
controllo applicherà il fattore di scala così come richiesto: invertendo e scalando i valori programmati
relativi all’asse.

Esempio:
.
.
.
(SCF, 3) Applica un fattore di scala 3 alle quote di tutti gli assi configurati. In altre parole,
tutte le quote programmate per gli assi vengono moltiplicate per 3.
.
.
(SCF, X2. 5, Y3) Applica un fattore di scala di 2,5 alle quote programmate dell'asse X e di 3 a quelle
dell'asse Y e disattiva i fattori di scala per tutti gli altri assi.
(SCF) Disattiva i fattori di scala di tutti gli assi.

Il RESET del sistema disabilita il fattore di scala per tutti gli assi.

45004606R 142
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.2 MIR – Uso della lavorazione speculare


Abilita l'inversione speculare della figura per gli assi dichiarati.

Sintassi

(MIR [, asse1, . . . , asse12] )

dove:
asse1. . .asse12 È il nome dell'asse le cui quote programmate devono essere invertite.

Caratteristiche:
Con il comando MIR è possibile programmare fino a 12 assi. Non è ammessa la ripetizione di un nome
asse. Per gli assi non dichiarati viene annullata la lavorazione speculare programmata precedentemente.
Se non è programmato nessun operando, la lavorazione speculare viene disabilitata per tutti gli assi
configurati.
La lavorazione speculare su di un asse viene applicata al primo movimento dell'asse dopo l'istruzione MIR.
L'inversione avviene attorno all'origine presente.
Usando la rotazione del piano (ROT) con il comando MIR, il controllo applica prima MIR e poi ROT.

Il RESET di sistema disabilita la modalità MIRROR su tutti gli assi. (equivale a (MIR) senza
parametri).

Esempio 1:
Il seguente è un esempio di come funziona la lavorazione con mirror.
Y

(MIR,X) (MIR)
3 4 4 3

2 1 1 2

0 X
2 1 1 2

3 4 4 3
(MIR,X,Y) (MIR,Y)
.

Lavorazione speculare disattivata e spostamenti nel primo quadrante. Gli spostamenti


vengono eseguiti rispetto all'origine corrente.
.
N24 (MIR,X) Lavorazione speculare attivata solo per l'asse X. Gli spostamenti programmati con +X
hanno come risultato uno spostamento nel secondo quadrante.
.
.
.

45004606R 143
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

N42 (MIR, X, Y) Lavorazione speculare attivata per gli assi X ed Y. Il risultato è uno spostamento
dei movimenti nel terzo quadrante.
.
.
.
N84 (MIR, Y) Lavorazione speculare attivata per l'asse Y e disattivata per l'asse X. Spostamenti
eseguiti nel quarto quadrante.
.
.
.
N99 (MIR) Lavorazione speculare disattivata per tutti gli assi. Spostamenti nel primo
quadrante.

Esempio 2:
Questo esempio illustra l'utilizzo del comando MIR. Si noti l'uso dei comandi RPT ed ERP.

90 40 40 90

Programma:
N199 (DIS."FRESA D =16")
N200 S1500 T8.8 M6
N201 (RPT, 2)
N202 G X90 Y20 M3
N203 Z-100
N204 G1 Z-105 F150
N205 X40 F200
N206 G2 Y60 I40 J40
N207 G1 X90
N208 G Z-100
N209 (MIR, X)
N210 (ERP)
N211 (MIR)
N212 Z

45004606R 144
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.3 ROT – Rotazione del piano d’interpolazione


ROT determina la rotazione del piano d'interpolazione attivo di un valore angolare programmato. Il
centro di rotazione è l'origine corrente. ROT può essere attivato tramite un comando MDI o da
programma.

Sintassi

(ROT, angolo, [modo] )

dove:
angolo Rappresenta il valore di un angolo espresso in gradi. È possibile programmare l'angolo
direttamente o indirettamente con un parametro E. Gli angoli positivi vengono misurati in
senso antiorario rispetto all'asse delle ascisse del piano di interpolazione attivo. Gli angoli
negativi sono misurati in senso orario.
Se il parametro angolo vale zero, la rotazione del piano viene disabilitata.

modo Parametro opzionale. Se vale 0 la rotazione impostata NON influisce sulle origini
temporanee (UTO) e incrementali (UIO) applicate dopo la rotazione lo stesso vale se il
parametro opzionale viene omesso. Se vale 1 la rotazione impostata influisce sulle origini
temporanee (UTO) e incrementali (UIO) applicate dopo la rotazione, ovvero l’origine
programmata viene anch’essa ruotata.

Caratteristiche:
Il controllo applica la rotazione delle coordinate a partire dal primo blocco dopo il comando ROT. Il
controllo non ruota le coordinate riferite allo zero macchina (G79).
Programmando nello stesso blocco la rotazione degli assi (ROT) ed il comando MIR, il controllo li esegue
nell'ordine seguente: prima MIR poi ROT.

Il RESET di sistema disabilita la rotazione del piano (equivale a (ROT,0) )

45004606R 145
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio di programmazione con Modo 0 (o senza modo)

(UAO, 1)
(ROT, 30)
(UIO, X100, Y50)

30
L’origine viene applicata rispetto al punto 100,50

50
riferito all’origine 1, su questa nuova origine viene
applicata la rotazione.
100 X

Esempio di programmazione con Modo 1

(UAO, 1)
(ROT, 30, 1)
(UIO, X100, Y50)
… 30

L’origine viene applicata rispetto al punto 100,50 100


50

ruotato rispetto all’origine 1, su questa nuova origine


viene applicata la rotazione. X

45004606R 146
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 1:
Y

30

50 100 X

Programma:
( UTO, 1, X100, Y50) Seleziona l'origine assoluta 1, modificandola temporaneamente, di X100
Y50
( ROT, 30) Specifica una rotazione antioraria di 30 gradi rispetto all'origine temporanea
.
. Gli spostamenti in questa parte di programma sono riferiti all'origine temporanea
ruotata di 30 gradi in senso antiorario
(UAO, 1) Riattiva l'origine assoluta 1
(ROT, 0) Disattiva la rotazione programmando una rotazione di 0 gradi rispetto all'origine 1

Esempio 2:
Y

70

25
25
10

20

40
55
22

30 X

Programma:
N99 (DIS, "PUNTA D=6")
N100 S2000 F200 T3. 03 M6
N101 (UTO , 1, X30, Y22)
N102 (ROT, 20)
N103 G81 R-90 Z-110 M3
N104 X25 Y25
N105 X40 Y10
N106 X55
N107 X70 Y25
N108 G80 Z
N109 (UAO, 1)
N110 (ROT, 0)
N111 S1000 T4.4 M6

45004606R 147
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 3:
Rotazione del Piano (ROT) con Ripetizione (RPT) e programmazione parametrica.

Programma:
N148 (DIS, " ...")
N149 S1500 T5.5 M6
N150 E25 =0
N151 (RPT, 8)
N152 ( ROT, E25)
N153 G X40 Y M3
N154 Z0
N155 G29 G1 Z-10 F150
N156 X80 F200
N157 Z-18 F150
N158 X40
N159 G Z0
N160 E25 =E25 + 45
N161 (ERP)
N162 (ROT, 0)

45004606R 148
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.4 UAO – Uso delle origini assolute


Il comando UAO consente di attivare ed utilizzare una delle origini assolute create e memorizzate
precedentemente nella tabella delle origini.

Sintassi

(UAO, n [,asse1, . . . , asse12])

dove:
n Definisce il numero dell'origine assoluta che si vuole utilizzare: è un numero intero
compreso tra 0 e 100 programmato direttamente o indirettamente con un
parametro E. Se questo parametro ha valore 0, viene abilitata la posizione di
"HOME".

asse1,...,asse12 È il nome dell'asse che deve utilizzare l'origine assoluta n.

Caratteristiche:
Il comando UAO ammette fino a dodici nomi assi. La ripetizione di un nome asse non è ammessa.
Per gli assi non dichiarati rimane abilitata l'origine corrente. Un comando UAO programmato senza assi
(UAO, n) attiva l'origine n per tutti gli assi. All'accensione, dopo un reset del controllo o con n=0 e senza
assi, tutti gli assi sono riferiti alla posizione di "HOME".
Se il programma richiede origini differenti per assi differenti, programmare un comando UAO per
ciascuna delle origini richieste.

Le origini vengono convertite automaticamente e visualizzate nelle unità di misura correnti (G70/G71).
Le origini vengono memorizzate riferite alla posizione di "HOME" caratterizzata nell’AMP.

Esempio:
(UAO,1) Viene attivata per tutti gli assi l'origine assoluta 1.
.
. Questa parte di programma usa l'origine 1 per tutti gli assi.
.

(UAO, 2, X, Y) L'origine assoluta 2 viene attivata solo per gli assi X ed Y.


(UAO, 3, Z) L'origine 3 viene attivata per l'asse Z.
.
. Questa parte di programma usa l'origine 2 per X ed Y, l'origine 3 per Z, e l'origine 1
per tutti gli altri assi.

(UAO, 1) L'origine 1 è riattivata per tutti gli assi.


.
.
.
(UAO, 0) Tutti gli assi sono riferiti alla posizione di "HOME".

45004606R 149
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.5 UTO – Uso di origini temporanee


Seleziona l'origine assoluta dichiarata nel blocco modificandola temporaneamente, asse per asse, di una
quantità pari a quella programmata.

Sintassi

(UTO, n ,asse1 [,asse2, . . . , asse12])

dove:
n Definisce il numero di origine assoluta che si desidera modificare
temporaneamente. È un valore compreso tra 0 e 100.
Se il valore n è 0, l'offset programmato viene sommato al valore della posizione
"HOME".

asse1,...asse12 È un nome asse più una quota. Il controllo tratta la quota come una correzione e la
aggiunge al valore dell'origine assoluta per quell'asse.

Caratteristiche:
Nel comando UTO bisogna dichiarare almeno un asse con una quota. Si possono dichiarare fino a dodici
assi con le relative quote ma non sono ammesse le ripetizioni.
La quota dell'asse è programmata nell'unità di misura (G70/G71) corrente.
Per gli assi non dichiarati nel blocco UTO, rimane attiva l'origine assoluta corrente.

Una volta attivata un'origine temporanea, essa rimane attiva fino a che:
non si attiva una nuova origine temporanea con il comando UTO
non si attiva una nuova origine assoluta con il comando UAO
non si esegue un RESET del controllo.

Se viene impostato un fattore di scala (SCF), il controllo lo applica all'origine temporanea UTO.

Esempio 1:
Le quote possono essere parametri E come indicato nel blocco seguente:
(UTO,1,XE100)

45004606R 150
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:
Y Y

100

N20

100
N10
01

X
Y
Y
250
50

N30
X 02
N40 X

Programma:
N10 (UAO,1) Attiva l'origine assoluta 1 per tutti gli assi.
.
. Questa parte di programma usa l'origine 1 per tutti gli assi.
.

N20 (UTO, 1, X100, Y100) Applica un'origine temporanea (offset assoluto) all'origine 1, X100 ed Y100.
.
. Questa parte di programma usa l'origine 1, con origine temporanea X100
Y100.

N30 (UTO, 2, X-250, Y50) Applica un'origine temporanea (offset assoluto) all'origine 2, X-250 e Y50.
.
. Questa parte di programma usa l'origine assoluta 2, con X-250 ed Y50 come
origine temporanea e origine 1 per gli altri assi.

N40 (UAO, 2) Riattiva l'origine assoluta 2 per tutti gli assi.

45004606R 151
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.6 UIO – Uso delle origini incrementali


Permette di effettuare uno spostamento incrementale, asse per asse, dell'origine del sistema di
riferimento corrente.

Sintassi

(UIO, asse1 [,asse2, . . . , asse12])

dove:
asse1,...asse12 È un nome asse più una quota. Il controllo tratta la quota come un offset
incrementale e lo aggiunge al valore dell'origine corrente dell'asse.

Caratteristiche:
Nel comando UIO bisogna dichiarare almeno un asse e fino a un massimo di dodici assi.
La quota dell'asse deve essere programmata nell'unità di misura (G70/G71) corrente.
Per gli assi non dichiarati rimane abilitata l'origine corrente.

Una volta attivata un'origine incrementale per un asse, essa rimane attiva fino a che:
non si attiva una nuova origine incrementale per l'asse tramite il comando UIO
non si attiva un'origine assoluta tramite il comando UAO
non si esegue un reset del controllo
non si chiude una rototraslazione del piano tramite comando (UPR) o (UPR, 99)

Se è stato impostato un fattore di scala (SCF), il controllo lo applica all'origine incrementale UIO.

Esempio:

Programma:
N12 (UAO,1) Attiva l'origine assoluta 1 per tutti gli assi.
N65 (UIO, X20, Y20) Produce un incremento di X20 e Y20 rispetto all'origine 1. Per gli altri assi rimane
attiva l'origine assoluta 1.
N121 (UIO, Y-40) Produce un incremento di Y-40 rispetto all'ultima origine attiva. L'origine
incrementale X20 rimane attiva.
N180 (UIO, X-45) Produce un'origine incrementale di X-45. L'origine incrementale Y-40 rimane
attiva.
N230 (UIO, Y35) Produce un'origine incrementale di Y35. L'origine incrementale X-45 rimane attiva.
N300 (UAO,1) Riattiva l'origine assoluta 1 per tutti gli assi.

45004606R 152
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.3.7 RQO – Riqualifica delle origini


Modifica l'origine assoluta per gli assi dichiarati nell'istruzione di una quantità programmata. L'origine
deve essere una di quelle memorizzate nella tabella origini.

Sintassi

(RQO, n ,asse1 [,asse2, . . . , asse12])

dove:
n Definisce il numero (da 1 a 100) dell'origine assoluta da modificare. L'origine
assoluta deve essere stata creata e memorizzata tramite interfaccia utente. Si può
programmare il numero di origine n direttamente con un numero intero positivo o
indirettamente tramite un parametro E.

asse1,...asse12 È un nome asse più una quota. La quota è un incremento aggiunto all'origine
assoluta di un dato asse. Si può programmare la quota direttamente con un
numero decimale o indirettamente con un parametro E.

Caratteristiche:
Nel comando RQO bisogna dichiarare almeno un asse e la sua quota e fino ad un massimo di dodici assi.
Non sono ammesse le ripetizioni.
Le quote di riqualifica devono essere programmate nell'unità di misura corrente e ad esse non viene
applicato il fattore di scala.
L'origine è modificata sia sul file delle origini (per cui il risultato della riqualifica è permanente) sia in
memoria (se tale origine è attivata per l'asse al momento della riqualifica).
Nella tabella delle origini i valori di riqualifica vengono applicati nell'unità di misura in cui è espressa
l'origine selezionata.

La quota di riqualifica nel caso di un asse diametrale deve essere programmata in radiale, in quanto la
quota è un incremento da sommare al valore già presente nell’origine che è sempre un valore radiale.

Esempio:
(RQO, 3, X (E31)) Modifica l'origine assoluta n° 3 per l'asse X del valore contenuto in E31.

45004606R 153
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.4 Fine corsa e aree protette


I comandi di questa classe definiscono i limiti di fine corsa secondo le modalità descritte di seguito.

COMANDO FUNZIONE
SOL Definizione dei fine corsa software
DPA Definizione di un’area protetta
PAE Abilitazione di un’area protetta
PAD Disattivazione di un’area protetta

45004606R 154
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.4.1 SOL – Fine corsa software


Il comando SOL definisce i limiti operativi della corsa dell'asse cioè le quote oltre le quali gli assi non
possono essere programmati. I limiti vengono misurati rispetto all'origine corrente. I limiti operativi
definiti col triletterale SOL valgono solo per movimenti di assi programmati, ossia in modalità MDI, AUTO
o SEMIAUTO, di conseguenza non valgono per movimenti di assi in MANUALE.

Sintassi

(SOL,nome-asse,limite inferiore,limite superiore[,limite inferiore TCP,limite superiore TCP])

dove:
nome-asse È il nome dell'asse di cui bisogna definire i limiti.

limite inferiore È una quota per il limite inferiore. . Può essere programmato direttamente tramite
un numero reale o indirettamente tramite una variabile.

limite superiore E' una quota per il limite superiore. Il limite superiore deve essere maggiore del
limite inferiore. Può essere programmato direttamente tramite un numero reale o
indirettamente tramite una variabile.

limite inferiore TCP Definisce il limite operativo inferiore sulla punta utensile. Può essere programmato
direttamente tramite un numero reale o indirettamente tramite una variabile.

limite superiore TCP Definisce il limite operativo inferiore sulla punta utensile. Il limite superiore deve
essere maggiore del limite inferiore. Può essere programmato direttamente
tramite un numero reale o indirettamente tramite una variabile.

Caratteristiche:
Il comando può essere eseguito soltanto se i limiti operativi fisici sono già attivi, in caso contrario il
sistema segnala errore 23/355.
Se i fine corsa software programmati eccedono i limiti operativi fisici, il controllo segnala nuovamente
errore.
Bisogna programmare le dimensioni per i fine corsa software nell'unità di misura (G70/G71) attiva nel
momento in cui si programma il comando SOL. Eventuali fattori di scala (SCF) attivi vengono applicati ai
limiti operativi.

Il RESET del sistema annulla il comando SOL ripristinando i limiti definiti in AMP.

Se è attiva una virtualizzazione (UVP, UVC, UVA, LTH) o una rotazione della terna cartesiana
(UPR) i limiti di fine corsa software impostati dalla SOL non vengono presi in considerazione.
Rimangono invece attivi i limiti impostati sugli assi tramite CPA, aggiornati tramite scrittura
diretta dei parametri asse da PLC o definiti nella configurazione AMP.

Con TCP attivo e verifica limiti operativi abilitata vengono verificate solo le posizioni
riferite alla punta utensile e non le posizioni giunto degli assi appartenenti al TCP. I
controlli vengono effettuati soltanto nel caso di movimenti programmati esplicitamente
degli assi reali e soltanto se la verifica limiti operativi è abilitata. Negli altri casi
continueranno a valere i valori di limiti operativi impostati nella configurazione AMP.

45004606R 155
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
Programma:
Y (SOL, X, -300, 300)
.
.
200 .
(SOL, Y, -200, 200)

200
300

300
0

45004606R 156
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.4.2 DPA – Definizione di un’area protetta


Il comando DPA definisce un'area protetta, cioè una zona di spazio entro (o fuori) la quale non può
essere programmato nessun movimento. All’attivazione è possibile scegliere se l’area protetta debba
essere estesa nella terza dimensione.

Sintassi

(DPA, n,nome, valore)

dove:
n Numero di identificazione dell’area (1-4).

nome Nome del file che contiene la descrizione dell’area protetta, deve essere specificato
tramite una stringa di caratteri, oppure tramite una variabile stringa preceduta dalla
chiave ′?′

valore Indica se l’utensile è confinato all’interno dell’area protetta o se deve sempre trovarsi
all’esterno di questa.
0: l’utensile non deve uscire dall’area protetta
1: l’utensile non deve entrare nell’area protetta

Caratteristiche:
Si possono definire, da part program o da PLC fino a quattro aree protette. Ogni area viene definita
rispetto ad un sistema di riferimento assoluto. Al momento dell’attivazione verrà effettuato il legame
con un sistema di riferimento reale.
Il part program che contiene la descrizione dell’area protetta deve rispettare le seguenti regole:
L’area protetta deve essere descritta utilizzando l’asse X per indicare le ascisse e l’asse Y per
indicare le ordinate. Non è necessario che gli assi X e Y siano definiti nel processo attivo.
Il primo blocco del part program definisce il punto iniziale della descrizione dell’area protetta.
Questo blocco deve contenere sia l’ascissa che l’ordinata del punto. Non sono permessi codici G2
o G3 in questo blocco.
Gli unici codici G permessi all’interno del part program sono: G0, G1, G2 e G3.
Il part program non può contenere triletterali o funzioni del PLC.
Se all’interno del part program non è stato specificato nessun G code, i blocchi sono considerati
come blocchi di movimento lineari
Se la distanza tra due punti successivi è inferiore alla soglia di movimento nulla l’area non è
valida

La superficie corrispondente all’area protetta deve rispettare le seguenti regole:


Essere convessa
Essere chiusa: se la superficie descritta nel part program non è chiusa, il controllo aggiungerà un
movimento di chiusura lineare tra il primo e l’ultimo punto del profilo aperto. Se la distanza tra
punto iniziale dell’area e punto finale dell’ultimo ente è inferiore alla soglia di movimento nullo
la superficie viene considerata come chiusa e il punto finale è considerato uguale al punto
iniziale.
Essere definita da un massimo di 10 tra enti lineari e circolari. Nel caso in cui il profilo descritto
non sia chiuso, sono permessi soltanto 9 enti, poiché il controllo aggiungerà automaticamente il
decimo ente “di chiusura profilo”.

45004606R 157
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:

Y
150

100
area protetta

Ente di chiusura profilo

30

0
X
0 100 150 170 220

Programma:
....
N10(DPA,1,PROGRAMMI/PINZA.TXT,1) PINZA.TXT
.... N1 X100Y30
N2 Y100
N3 G3X150Y150R50
N4 G1X170
N5 G3X220Y100R50
N6 Y30

45004606R 158
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.4.3 PAE – Abilitazione dell’area protetta


Il comando PAE attiva il controllo di un'area protetta. Prima di iniziare un movimento programmato con
interpolazione lineare o circolare, il controllo verifica se lo spostamento interferisca con una delle aree
protette attive.

Sintassi

(PAE, n [,compens] [,origine] [,asse3 limite inf, asse3 limite sup] [,ax1 trasl] [,ax2 trasl] [,ax3 trasl])

dove:
n Numero dell’area protetta precedentemente definita con il comando DPA (valore
compreso tra 1 e 4).

compens Indica se l’area protetta debba tenere conto del raggio utensile (o del
sovrametallo) attivo:
0: il raggio utensile ed il sovrametallo sono ignorati
1: l’area protetta deve essere compensata per tenere conto del raggio
utensile e del sovrametallo
Di default le aree protette non sono compensate.

origine Numero intero compreso tra 0 e 100. Indica l’origine di riferimento dell’area
protetta. Se il parametro non è specificato, si considera che l’area protetta sia
riferita rispetto all’origine attiva.

asse3 limite inf


asse3 limite sup Nome dell’asse lungo il quale estendere spazialmente l’area e suoi limiti inferiore
e superiore. Se questa coppia di parametri è specificata, allora l’area protetta è
limitata nella terza dimensione ed il controllo di violazione è effettuato nello
spazio.
Di default il controllo di violazione si effettua proiettando il movimento richiesto
sul piano di interpolazione attivo

ax1 trasl
ax2 trasl
ax3 trasl Nome asse e quota. Indica il valore di una traslazione lungo l’asse per l’area
protetta. I nomi asse devono corrispondere a quelli di ascissa ed ordinata corrente
ed a quello dell’asse eventualmente specificato dalla coppia di parametri asse3.

Caratteristiche:
Al momento dell’attivazione, l’area protetta viene riferita rispetto al piano di interpolazione attivo,
all’origine e alle traslazioni eventualmente specificati. Questo significa che, se il piano d’interpolazione
attivo è il piano YX, allora il controllo assocerà le ascisse dell’area protetta all’asse Y e le ordinate
all’asse X.
Se si richiede di tenere conto della compensazione, l’estensione dell’area protetta varierà di un fattore
legato alla dimensione del raggio utensile e dell’eventuale sovrametallo.
Se i parametri asse3 limite inf e asse3 limite sup non sono specificati il controllo proietta ogni
movimento programmato sul piano di definizione dell’area protetta e su questo verifica la non violazione
dell’area.

45004606R 159
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempi:
(PAE,2,,,C-10,C20) abilita il controllo violazione dell'area 2. Non è richiesta la compensazione
del raggio utensile, l’area è riferita rispetto all’origine attiva, non si
applica nessuna traslazione. L’area protetta è limitata nello spazio tra -10
e 20 lungo l’asse C

Y AREA.TXT
45 N1 X40 Y10
35 N2 X100
N3 Y35
N4 X80 Y45
N5 X60
10
N6 X40 Y35
0 X N7 Y10

0 40 60 80 10
0

(PAE,4,,6) abilita il controllo violazione dell’area 4. Non è richiesta la compensazione


del raggio utensile, l’area è riferita rispetto all’origine 6, non si applica
nessuna traslazione

AREA.TXT
N1 X40 Y10
N2 X100
Y N3 Y35
0 20 40 60 80 N4 X80 Y45
40 N5 X60
30 N6 X40 Y35
N7 Y10

20 5
X
5 0

Origine 6

(PAE,1,1,,,,X-5) abilita il controllo violazione dell’area 1. È richiesta la compensazione del


raggio utensile, l’area è riferita rispetto all’origine corrente, l’area
protetta compensata è traslata di -5 lungo l’asse X
AREA.TXT
N1 X40 Y10
Area compensata
Rtool = 5 N2 X100
Y N3 Y35
45
N4 X80 Y45
35 N5 X60
N6 X40 Y35
N7 Y10

10

X
0
0 35 55 75 95

45004606R 160
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.4.4 PAD – Disabilitazione dell’area protetta


Il comando PAD disattiva il controllo di una o tutte le aree protette.

Sintassi

(PAD[, n])

dove:
n È il numero di un'area protetta precedentemente definita con il comando DPA.

Caratteristiche:
Il comando disattiva il controllo violazione su di un’area protetta attiva.
Se non è programmato nessun operando tutte le aree attive vengono disattivate.

Il RESET di sistema non disabilita le aree protette attive. La disattivazione di un’area


protetta deve essere effettuata esplicitamente.

Esempio:
(PAD,3)
Questa istruzione disabilita il controllo sull'area 3.

45004606R 161
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.5 Modifica dei parametri dell’asse e dell’azionamento


I comandi appartenenti a questa classe consentono di accedere in lettura e in scrittura ai parametri del
CNC relativi alla configurazione dell’asse e ai parametri relativi all’azionamento associato all’asse
stesso.

COMANDO FUNZIONE

CPA Esegue la lettura/scrittura di un parametro del CNC relativo ad un asse


CPD Esegue la lettura/scrittura di un parametro dell’azionamento associato all’asse

3.5.1 CPA - Lettura / scrittura di un parametro relativo a un asse


Il triletterale CPA permette di eseguire la lettura o la scrittura di un parametro asse. I parametri
accessibili sono sia quelli configurabili nell’AMP sia altri parametri aggiuntivi non configurabili in AMP.

Sintassi

(CPA, modo, asse, parametro, valore)

dove:
modo: rappresenta la modalità di accesso al parametro, i valori validi sono:
R: accesso in lettura
W: accesso in scrittura

asse: É l’identificativo numerico di un asse oppure il nome dell’asse stesso. Nel caso in cui asse
sia specificato per nome (un carattere alfabetico), è necessario che questo appartenga al
processo corrente; in caso contrario il sistema segnala errore di formato. Se l’asse viene
specificato per identificativo è possibile specificarlo direttamente tramite un numero
intero o indirettamente tramite una variabile

parametro: È il codice numerico che identifica il parametro asse. La lista dei codici validi e dei
parametri corrispondenti è specificata più sotto.

valore: A secondo della modalità di accesso richiesta rappresenta la variabile dove verrà scritto il
valore letto dall’asse del parametro richiesto (accesso in lettura) o il valore che verrà
scritto sull’asse (accesso in scrittura).
Nel caso di accesso in lettura valore deve essere una variabile, mentre nel caso di accesso
in scrittura può indifferentemente essere un numero o una variabile.

Caratteristiche:
La variazione del parametro eseguita da part program è resa attiva a partire dalla riga successiva alla
programmazione. La variazione del parametro non è permanente, al successivo riavvio del controllo
verranno ripristinati i valori di default definiti in AMP.

Il comando di Reset non ripristina il valore originale di un parametro modificato tramite il comando CPA.

Alcuni parametri sono accessibili soltanto in lettura, la seguente tabella dei codici parametro specifica
se questi siano accessibili in lettura e scrittura o in sola lettura.

45004606R 162
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Tipo di
Mnemonico PLC Descrizione parametro
parametro accesso
1 fn_AXTYPE Tipo asse R
2 fn_AXCLOCK Periodo del clock asse R
Rapporto tra la frequenza del clock
3 fn_CLOCKRAT dell’interpolatore associato all’asse e R
frequenza del clock dell’asse
Indica se l’asse è un asse digitale (valore 1)
4 fn_DIGITAL_AXIS R
o analogico (valore 0).
5 fn_LINEAR_OPTICAL_ENCODER Presenza della riga ottica R/W
Indica se la polarità del canale A
6 fn_CHANNEL_A_POLARITY_INV R/W
dell’encoder sia invertita o meno.
Indica se la polarità del canale B
7 fn_CHANNEL_B_POLARITY_INV R/W
dell’encoder sia invertita o meno.
Indica se la polarità del canale Z
8 fn_CHANNEL_Z_POLARITY_INV R/W
dell’encoder sia invertita o meno.
Indica se la polarità della direzione di conta
9 fn_DIRECTION_COUNT R/W
dell’encoder sia invertita o meno.
Modo di identificazione raggiungimento
10 fn_MARKER_DETECTION marker di zero. Può essere sul livello (valore R/W
0) o sul fronte (valore1)
11 fn_RAPID_TRAVERSE_FEED Velocità di avanzamento di rapido R/W
12 fn_RAPID_ACCELERATION Accelerazione di rapido R/W
13 fn_MANUAL_FEED Velocità di avanzamento di manuale R/W
14 fn_MANUAL_ACCELERATION Accelerazione di manuale R/W
15 fn_RAPID_JERK Jerk di rapido R/W
16 fn_WORKING_JERK Jerk di lavoro R/W
17 fn_ELECTRICAL_PITCH Valore del passo elettrico R/W
18 fn_MECHANICAL_PITCH Valore del passo meccanico R/W
19 fn_ROLLOVER_PITCH Passo rollover R/W
20 fn_RAPID_TRAVERSE_VOLTAGE Tensione per velocità massima R/W
21 fn_MAXIMUM_FEED Velocità massima dell’asse R/W
22 fn_HOME_POSITION_FEED Velocità di ricerca home R/W
23 fn_NULL_OFFSET_VALUE Valore di Null Offset R/W
24 fn_HOME_POSITION_VALUE Valore della posizione Home R/W
25 fn_HOMING_DIRECTION Direzione di ricerca Home R/W
26 fn_PERCENT_OF_VFF Percentuale di VFF R/W
27 fn_UPPER_SW_OVERTRAVEL Fine corsa software superiore R/W
28 fn_LOWER_SW_OVERTRAVEL Fine corsa software inferiore R/W
29 fn_SERVO_LOOP_GAIN Guadagno del servo loop R/W
30 fn_STAND_STILL_LOOP_GAIN Guadagno anello di posizione ad asse fermo R/W
31 fn_POS_ERROR_STAND_STILL Errore di posizione ad asse fermo R/W
32 fn_POS_ERROR_WITH_VFF Errore di posizione con VFF R/W
33 fn_POS_ERROR_WITHOUT_VFF Errore di posizione senza VFF R/W
34 fn_IN_POSITION_BAND Tolleranza di posizione R/W
Tempo massimo di attesa per ingresso in
35 fn_IN_POSITION_WAIT R/W
tolleranza
36 fn_IN_POSITION_WINDOW Tempo di permanenza in tolleranza R/W

45004606R 163
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Tipo di
Mnemonico PLC Descrizione parametro
parametro accesso
37 fn_AXIS_BACKLASH Valore gioco meccanico R/W
38 fn_DEAD_ZONE Valore dead zone R/W
39 fn_DRIVER_ADDRESS Indirizzo del drive R
40 fn_HOMING_TYPE Tipo di ciclo di home selezionato R/W
41 fn_ADDITIONAL_SERVICE Servizi addizionali R/W
42 fn_MOTOR_TRANSDUCER Presenza trasduttore motore R
43 fn_PROBING_CONFIGURATION Configurazione del tastatore R/W
Determina posizione di orientamento
44 fn_SPINDLE_ZERO_OFFSET R/W
mandrino
45 fn_SPINDLE_WITH_RAMPS Determina se mandrino con rampa R/W
46 fn_SPINDLE_CSS_MASTER Determina asse master mandrino R/W
Tempo massimo di inversione mandrino
47 fn_SPINDLE_REV_TIME_GEAR1 R/W
(Gamma 1)
Tempo massimo di inversione mandrino
48 fn_SPINDLE_REV_TIME_GEAR2 R/W
(Gamma 2)
Tempo massimo di inversione mandrino
49 fn_SPINDLE_REV_TIME_GEAR3 R/W
(Gamma 3)
Tempo massimo di inversione mandrino
50 fn_SPINDLE_REV_TIME_GEAR4 R/W
(Gamma 4)
51 fn_SPIN_POSERR_STANDSTILL Errore di posizione a mandrino fermo R/W
52 fn_SPINDLE_SPEED_GEAR1 Velocità mandrino (Gamma 1) R/W
53 fn_SPINDLE_SPEED_GEAR2 Velocità mandrino (Gamma 2) R/W
54 fn_SPINDLE_SPEED_GEAR3 Velocità mandrino (Gamma 3) R/W
55 fn_SPINDLE_SPEED_GEAR4 Velocità mandrino (Gamma 4) R/W
56 fn_SPINDLE_VOLTAGE_GEAR1 Tensione velocità max mandrino (Gamma 1) R/W
57 fn_SPINDLE_VOLTAGE_GEAR2 Tensione velocità max mandrino (Gamma 2) R/W
58 fn_SPINDLE_VOLTAGE_GEAR3 Tensione velocità max mandrino (Gamma 3) R/W
59 fn_SPINDLE_VOLTAGE_GEAR4 Tensione velocità max mandrino (Gamma 4) R/W
60 fn_SPINDLE_GAIN_GEAR1 Guadagno servo loop mandrino (Gamma 1) R/W
61 fn_SPINDLE_GAIN_GEAR2 Guadagno servo loop mandrino (Gamma 2) R/W
62 fn_SPINDLE_GAIN_GEAR3 Guadagno servo loop mandrino (Gamma 3) R/W
63 fn_SPINDLE_GAIN_GEAR4 Guadagno servo loop mandrino (Gamma 4) R/W
64 fn_OFFSET_BETWEEN_MARKERS Offset tra i Markers R/W
65 fn_SKEW_ERROR_MIN Errore di skew R/W
66 fn_SKEW_ERROR_MAX Massimo errore di skew R/W
67 fn_SKEW_GAIN Guadagno di skew R/W
68 fn_DRIVE_STATUSW Maschera di stato dell’asse R
69 fn_OS3_DRIVE_WARNINGS Maschera di stato asse OS3 R
70 fn_AXIS_IOSTAT Stato degli I/O associati al drive R/W
71 fn_ACT_MICRO_MARKER_DIST Distanza tra marker e micro di zero R
Massima distanza consentita tra micro di
72 fn_MAX_MICRO_MARKER_DIST R/W
zero e marker
73 fn_PROCESS_NUMBER Id del processo che possiede l’asse R
74 fn_AXIS_SHARING Asse condiviso o in uso esclusivo R
75 fn_TRANSDUCER_CONFIG Determina configurazione trasducer R/W
76 fn_ACTIVE_GEAR_NUMBER Gamma attiva del mandrino R

45004606R 164
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Tipo di
Mnemonico PLC Descrizione parametro
parametro accesso
77 fn_ZEROSHIFT1 Valore dello zeroshift 1 R/W
78 fn_ZEROSHIFT2 Valore dello zeroshit 2 R/W
79 fn_AXIS_BACKLASH_TIME Tempo di applicazione del gioco meccanico R/W
80 fn_TRANSDUCER_ID Identificativo del trasduttore dell’asse R
81 fn_CONVERTER_ID Identificativo del convertitore dell’asse R
82 fn_SETRESRIF Stato di asse riferito R/W
83 fn_RAPID_TIME_MIN_RAMP Tempo di rampa di accelerazione di rapido R/W
84 fn_WORKING_TIME_MIN_RAMP Tempo di rampa di accelerazione di lavoro R/W
85 fn_RAPID_DECELERATION Valore della decelerazione di rapido R/W
86 fn_MANUAL_DECELERATION Valore della decelearazione di manuale R/ W
87 fn_RAMP_MODALITY Tipo di rampa per l’asse R/W
88 fn_GET_MASTER_SLAVE Id dell’asse master o slave associato R
89 fn_AXIS_INTERFACE_TYPE Tipo di field interface dell’asse R
90 fn_BW_ENABLE Broken wire abilitato o disabilitato R/W
91 fn_BW_TIME Tempo di applicazione broken wire R/W
92 fn_EDGE_LEAP_FEED Valore max di salto di velocità sugli spigoli R/W
93 fn_GET_LAST_ERROR Valore dell’errore real-time sull’asse R
Guadagno di servo loop ad asse fermo per
94 fn_SPINDLE_SS_GAIN_GEAR1 R/W
mandrino (Gamma 1)
Guadagno di servo loop ad asse fermo per
95 fn_SPINDLE_SS_GAIN_GEAR2 R/W
mandrino (Gamma 2)
Guadagno di servo loop ad asse fermo per
96 fn_SPINDLE_SS_GAIN_GEAR3 R/W
mandrino (Gamma 3)
Guadagno di servo loop ad asse fermo per
97 fn_SPINDLE_SS_GAIN_GEAR4 R/W
mandrino (Gamma 4)
98 fn_SPIN_ORIENT_SPEED_GEAR1 Velocità orientamento mandrino (Gamma 1) R/W
99 fn_SPIN_ORIENT_SPEED_GEAR2 Velocità orientamento mandrino (Gamma 2) R/W
100 fn_SPIN_ORIENT_SPEED_GEAR3 Velocità orientamento mandrino (Gamma 3) R/W
101 fn_SPIN_ORIENT_SPEED_GEAR4 Velocità orientamento mandrino (Gamma 4) R/W
Accelerazione per orientamento mandrino
102 fn_SPIN_ORIENT_ACCEL_GEAR1 R/W
(Gamma 1)
Accelerazione per orientamento mandrino
103 fn_SPIN_ORIENT_ACCEL_GEAR2 R/W
(Gamma 2)
Accelerazione per orientamento mandrino
104 fn_SPIN_ORIENT_ACCEL_GEAR3 R/W
(Gamma 3)
Accelerazione per orientamento mandrino
105 fn_SPIN_ORIENT_ACCEL_GEAR4 R/W
(Gamma 4)
Soglia di velocità per arresto mandrino
106 fn_SPIN_STOP_THRESH_GEAR1 R/W
(Gamma 1)
Soglia di velocità per arresto mandrino
107 fn_SPIN_STOP_THRESH_GEAR2 R/W
(Gamma 2)
Soglia di velocità per arresto mandrino
108 fn_SPIN_STOP_THRESH_GEAR3 R/W
(Gamma 3)
Soglia di velocità per arresto mandrino
109 fn_SPIN_STOP_THRESH_GEAR4 R/W
(Gamma 4)
110 fn_SPIN_IN_POS_BAND Soglia di ingresso in tolleranza mandrino R/W

45004606R 165
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Tipo di
Mnemonico PLC Descrizione parametro
parametro accesso
111 fn_SPIN_IN_POS_WAIT Tempo di ingresso in tolleranza mandrino R/W
112 fn_SPIN_IN_POS_WINDOW Tempo di permanenza in tolleranza R/W
113 fn_ENABLE_SERVO_MODE Tipo di servoloop all’abilitazione dell’asse
114 fn_SKEW_RECOVERY_VEL Velocità di riallineamento asse split R/W
115 fn_DRIVE_CONTROLW Control Word dell’azionamento R/W
116 fn_MIN_AX_VELOCITY Velocità minima dell’asse R/W
117 fn_MIN_AX_POSITION Minima soglia di posizione dell’asse R/W
118 fn_DEN_MEC_PITCH Denominatore passo meccanico R/W
119 fn_ZEROSHIFT1_SETUP Inizializzazione del valore di zeroshift 1 R/W
120 fn_ZEROSHIFT2_SETUP Inizializzazione del valore di zeroshift 2 R/W
121 fn_RAPID_DJERK Valore del DeJerk di rapido R/W
122 fn_WORKING_DJERK Valore del DeJerk di lavoro R/W
123 fn_RAPID_TIME_MIN_DRAMP Tempo di rampa di decelerazione di rapido R/W
124 fn_WORKING_TIME_MIN_DRAMP Tempo di rampa di decelerazione di lavoro R/W
125 fn_REFERENCE_OFFSET Offset del convertitore R/W
126 fn_EMERG_DECELERATION Valore decelerazione di emergenza R/W
127 fn_UPPER_SW_OVERT_TTIP Fine corsa software superiore punta utensile R/W
128 fn_LOWER_SW_OVERT_TTIP Fine corsa software inferiore punta utensile R/W
129 fn_DRIVER_SUBADDRESS Sub-Indirizzo dell’azionamento R
130 fn_INTERP_POINT Punto interpolato (per simulazione) R/W
131 fn_LEAP_ACCE Massimo salto di accelerazione su tangenza R/W
Tempo necessario a calcolare il nuovo target
132 fn_SPINDLE_SYNCH_DELAY di posizione durante la fase di transizione da R/W
loop di velocità a loop di posizione
133 fn_ECAT_BRIDGE_PED_MODE Modo di pilotaggio per assi Pulse & Direction R
Abilita l’uso dei flags di controllo per assi
134 fn_ENAB_TGS_FOR_DRIVE Mechatrolink III (parametri R/W
135/136/137/138)
Abilita il passaggio al drive del contributo di
135 fn_ENAB_VFF_FOR_DRIVE R/W
VFF calcolato dall’interpolatore
Abilita il passaggio al drive del contributo di
136 fn_ENAB_AFF_FOR_DRIVE R/W
AFF calcolato dall’interpolatore
137 fn_CONV_AFF_FOR_DRIVE Fattore di conversione AFF R/W
138 fn_PERC_AFF_FOR_DRIVE Percentuale di valore applicato per AFF R/W
Negli assi mechatrolink III e OS-Wire abilita
il passaggio al drive dei contributi di
139 fn_CORR_VFF_FOR_DRIVE velocità e accelerazione dovuti R/W
all’applicazione di backlash, zeroshift e
compensazioni geometriche
Negli assi mechatrolink III e OS-Wire abilita
140 fn_OEMC_VFF_FOR_DRIVE il passaggio al drive di un contributo di R/W
velocità
Negli assi mechatrolink III e OS-Wire abilita
141 fn_OEMC_AFF_FOR_DRIVE il passaggio al drive di un contributo di R/W
accelerazione
142 fn_AXIS_BOARD_INDEX Indice della scheda cui appartiene l’asse R

45004606R 166
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Tipo di
Mnemonico PLC Descrizione parametro
parametro accesso
Offset di coppia applicato all’asse Anti-
143 fn_ABKLSH_TRQ_OFFSET R/W
Backlash e all’asse controllato associato
Valore del filtro applicato all’errore di
144 fn_ABKLSH_LP_FILTER R/W
velocità dell’asse Anti-Backlash
Guadagno proporzionale di recupero errore
145 fn_ABKLSH_PGAIN R/W
di velocità dell’asse Anti-Backlash
146 fn_ABKLSH_IGAIN Riservato R/W
Utilizzare dell’errore di inseguimento
147 fn_USE_DRIVE_FOLLOWING_ERR R/W
calcolato dall’azionamento (solo per CoE)
148 fn_SPIN_ELECTR_PITCH Passo elettrico del mandrino R/W
Inseguimento della posizione di feedback
149 fn_DRIVE_ENAB_WITH_TUNING R/W
dell’azionamento durante l’abilitazione
Effettivo quando il precedente
fn_DRIVE_ENAB_WITH_TUNING è uguale a 1.
150 fn_DRIVE_ENAB_MAX_ERROR Spazio di sicurezza entro il quale R/W
l’azionamento deve rimanere durante il
comando di abilitazione.
151 fn_LAST_DRIVE_ALARM Ultimo allarme occorso nell’azionamento R
Extra Velocità raggiungibile a scapito di
152 fn_TRQ_VELLIM R/W
minor coppia
153 fn_TRQ_ACCLIM Accelerazione a Extra Velocità R/W
Indica se la gestione del trasduttore
154 fn_PLC_TRANSDUCER_MNG R
dell’asse è realizzata in logica di macchina
Indica se la gestione del convertitore
155 fn_PLC_CONVERTER_MNG R
dell’asse è realizzata in logica di macchina
Indica se la ricerca del marker e
l’inizializzazione della posizione asse
156 fn_PLC_HOMING_MNG R/W
durante il ciclo di homing sono implementati
in logica di macchina
157 fn_EMERG_JERK Valore del jerk per le frenate di emergenza R/W
Impostare a 1 nel caso di assi gantry con
158 fn_GANTRY_HALFROLL_ABS trasduttore assoluto la cui posizione risulta R/W
modulata all’accensione dell’azionamento.
Gestione dei warnings di un drive digitale
159 fn_ENAB_DRIVE_WARNING R/W
tramite Task delle emergenze del PLC

Esempio 1:
Si supponga di voler modificare il parametro accelerazione di rapido (RAPID_ACCELERATION) configurato
in AMP, scrivendo 2500 mm/s2 per l’asse Y di identificativo 2 nel processo corrente. I seguenti comandi
sono equivalenti:

(CPA, W, E0, E1, E2) con E0 = 2, E1 = 12 e E2 = 2500


(CPA, W, 2, 12 , E2)
(CPA, W, Y, 12 , 2500)

45004606R 167
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

3.5.2 CPD - Lettura/Scrittura di un parametro di un azionamento


Il comando CPD permette di eseguire la lettura o la scrittura di un parametro dell’azionamento associato
ad un asse digitale.

Sintassi

(CPD, modo, asse, parametro, valore , formato [, maschera])

dove:
modo: rappresenta la modalità di accesso al parametro, i valori validi sono:
R: accesso in lettura
W: accesso in scrittura

asse: É l’identificativo numerico di un asse oppure il nome dell’asse stesso. Nel caso in cui asse
sia specificato per nome (un carattere alfabetico), è necessario che questo appartenga al
processo corrente; in caso contrario il sistema segnala errore di formato. Se l’asse viene
specificato per identificativo è possibile specificarlo direttamente tramite un numero
intero o indirettamente tramite una variabile

parametro: È il codice numerico che identifica il parametro drive. La lista dei codici validi è
consultabile sul manuale azionamento. E’ possibile impostare il valore in notazione
esadecimale anteponendo il prefisso 0x (per esempio, 0x50A). Nel caso di interfaccia CoE
indicare nella WORD alta di parametro l’indice dell’oggetto e nella WORD bassa il sotto-
indice (zero se non esiste). Per esempio, per scrivere l’oggetto 607C occorre impostare
Parametro uguale a 0x607C0000

valore: A seconda della modalità di accesso richiesta rappresenta la variabile dove verrà scritto il
valore letto dall’asse del parametro richiesto (accesso in lettura) o il valore che verrà
scritto sull’asse (accesso in scrittura).
Nel caso di accesso in lettura valore deve essere una variabile, mentre nel caso di accesso
in scrittura può indifferentemente essere un numero o una variabile.

formato: Per azionamenti con interfaccia Mechatrolink™ e CoE impostare come segue:
Valore
Descrizione
(DEC)
17 Formato intero non segnato espresso su 8 bit
18 Formato intero con segno espresso su 8 bit
33 Formato intero non segnato espresso su 16 bit
34 Formato intero con segno espresso su 16 bit
49 Formato intero non segnato espresso su 32 bit
50 Formato intero con segno espresso su 32 bit
51 Formato floating-point su 32 bit

Impostando a 1 il bit 7 (maschera 0x80) di formato la scrittura del parametro avverrà nella
EEPROM dell’azionamento.
Per azionamenti con altre interfacce il campo non è significativo, impostare con valore 0.

45004606R 168
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

maschera: Può essere utilizzato per azionamenti con interfaccia Mechatrolink™. Rappresenta la
maschera di scrittura del parametro dell’azionamento. E’ un campo facoltativo, se
programmato deve essere un codice esadecimale di 8 caratteri al massimo e preceduto dal
prefisso 0x. Se viene indicata la maschera, il parametro sarà scritto solo per i
corrispondenti bit settati a 1; se tutti i bit della maschera sono a 0 il parametro verrà
completamente azzerato; se la maschera vale 0xFFFFFFFF il parametro verrà
completamente scritto.
Il valore di default è 0xFFFFFFFF quindi se maschera non viene specificato tutti i bit del
parametro saranno scritti.
Per altri tipi di azionamento la maschera non ha alcun effetto.

Esempio 1:
Si supponga di voler leggere il parametro guadagno proporzionale di anello di velocità (cod. param. =
5004) configurato per l’asse Z (id = 3) su un azionamento OS-WIRE. I seguenti comandi sono equivalenti:
(CPD, R, E0, E1, E2, E3) con E0 = 3, E1 = 5004 e E3 = 0
(CPD, R, 3, 5004, E2, 0)
mentre con il comando:
(CPD, R, 3, 5004, 2.5, 0) -> il sistema segnala errore di formato perché non è indicata la variabile di
destinazione.

Esempio 2:
Si supponga di voler scrivere il parametro Pn50A “Input Signal Selection 1” del drive Sigma-V connesso
all’asse Z:
(CPD, W, Z, 0x50A, 32768, 33, 0XF000)
Viene impostato a 8 il campo “P-OT Signal Mapping” (quarto nibble corrispondente al valore 32768) del
parametro Pn50A lasciando inalterati gli altri campi, la scrittura avviene in RAM e la lunghezza del
parametro è di 2 bytes (formato = 33).

45004606R 169
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4. PROGRAMMAZIONE DI UTENSILI E CORRETTORI

Questo capitolo tratta la programmazione di utensili e correttori; ricordiamo che le funzioni descritte
devono essere gestite dalla logica di macchina.

L'installatore del sistema è responsabile dell'interfaccia tra il controllo e la macchina


nonché delle funzioni T ed M specifiche per l'applicazione e del funzionamento dei codici di
riqualifica e di presetting: RQT e RQP
Consultare la documentazione specifica della macchina utensile per ulteriori informazioni
relative alla funzione T.

Ulteriori informazioni correlate si possono trovare nel capitolo 6 (Funzioni Ausiliarie M).

Il RESET o lo spegnimento del sistema non disabilitano i valori di correzione


applicati con funzione "h" o T.
È compito del PLC decidere se disabilitare i valori di correzione nella procedura di
RESET.

45004606R 170
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.1 Indirizzo T per programmazione utensile


L'indirizzo T definisce l'utensile con il relativo correttore utilizzato per una determinata lavorazione.

Sintassi

T [utensile] [ . correttore]

dove:
utensile È il codice ASCII dell'utensile di massimo 32 caratteri. Si può programmare il codice
dell'utensile in modo implicito (con una variabile stringa locale o di sistema) o in modo
esplicito con una stringa o con un numero intero. Se si programma il numero intero, il
sistema provvede automaticamente alla conversione in stringa.

correttore È il numero del correttore da applicare, può variare da 0 a 300.


Può essere un numero intero, oppure un parametro E.

Caratteristiche:
Per compatibilità con la Serie10 OSAI si è mantenuta la programmazione in formato numerico del codice
utensile che deve essere espresso su 12 cifre. Anche il formato numerico può essere programmato in
modo implicito.

I seguenti esempi illustrano diversi modi di programmare gli utensili e i correttori.

T1 Seleziona l'utensile “1” e il correttore definito nella tabella degli utensili.


T”U01”.1 Seleziona l'utensile U01 e il correttore 1.
T(SC.5).0 Seleziona l'utensile il cui nome è specificato nelle 5 variabili SC a partire
dall’indirizzo 0 e senza correttore.
T.0 Disattiva il correttore dell'utensile attivo.
T0 Disattiva l'utensile attivo e relativo correttore.
T.1 Attiva il correttore 1 per l'utensile attivo.
T1234567890123 Segnala errore di sintassi poiché programmazione in formato numerico con più di
12 cifre.
T”1234567890123” Seleziona l'utensile 1234567890123 e il correttore definito nella tabella degli
utensili.
T(!VbUser).1 Seleziona l'utensile identificato dalla variabile utente !VbUser, tipo stringa, e il
correttore 1.
T(LS).2 Seleziona l'utensile specificato nella variabile LS e il correttore 2.
TE0.1 Seleziona l'utensile specificato nella variabile E0 e il correttore 1.

45004606R 171
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.2 Indirizzo T per programmazione multiutensile


L'indirizzo T definisce più utensili da utilizzare contemporaneamente per una determinata lavorazione.

Sintassi

T [master] [.correttore] / { slave | [slaveini , slavefin] ] | [[ varname, num_var ]] } ,... { slave | [slaveini ,
slavefin] ] | [[ varname, num_var ]] }

dove:
master È il codice ASCII dell'utensile, massimo 32 caratteri. Si può programmare il codice
dell'utensile in modo implicito (con una variabile stringa locale o di sistema) o in
modo esplicito con una stringa o con un numero intero. Se si programma il numero
intero, il cui campo di variazione deve essere tra 0 e 999999999999, il sistema
provvede automaticamente alla conversione in stringa.

correttore È il numero del correttore associato all'utensile master. Può essere un numero
intero od una variabile locale o di sistema e varia da 0 a 300.

slave È il numero di un utensile. Può essere un numero intero od una variabile locale o di
sistema.

slaveini È un numero di un utensile e rappresenta il primo di una serie di utensili. Può


essere un numero intero oppure una variabile locale o di sistema.

slavefin È un numero di un utensile e rappresenta l'ultimo di una serie di utensili. Può


essere un numero intero oppure una variabile locale o di sistema.

varname È una variabile locale o di sistema contenente il primo di una sequenza di utensili.

num_varie È un numero intero o una variabile locale o di sistema e rappresenta il numero di


variabili da considerare a partire da "variabile"

Caratteristiche:
La programmazione multiutensile è utilizzata su macchine foratrici. La gestione degli utensili associati al
codice T è demandata alla logica di macchina a cui sono inviati i valori degli utensili programmati.
I valori programmabili per i codici utensili "slave" variano da 0 a 65535. Inoltre il numero massimo di
utensili slave programmabili contemporaneamente è 64.

Come si nota dalla sintassi del codice T la lista degli utensili da usare si può specificare in tre formati
diversi:

1. Formato singolo
Esempi:
T1.2/ 50 utensili 1, 50
correttore 2
T1.2 /20,33,45,46 utensili 1,20,33,45,46
correttore 2

45004606R 172
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

2.Formato sequenza numerica


Semplifica la programmazione di più utensili con codice progressivo.

Esempi:
T1.3 /[ 30, 35 ] equivale a T1.3 /30,31,32,33,34,35
T1.3 /[ 56, 51 ] equivale a T1.3 /56,55,54,53,52,51
T1.3 /[ 50, 52 ], [ 10,13 ] equivale a T1.3 /50,51,52,10,11,12,13
Come si nota il numero dell'utensile iniziale può essere > o < dell'utensile finale; nel primo caso i codici
utensili sono considerati in senso crescente, nel secondo caso in senso decrescente

3.Formato di sequenza di variabili


Si basa su un array di variabili dal quale prelevare i numeri utensili.

Esempi:
E0 = 1, 30, 45 carica in E0, E1, E2 i valori 1, 30, 45
T1.2 / E0, 3  equivale a T1.2 /E0, E1, E2 ed a T1.2 /1, 30, 45
E0 = 1, 30, 45 carica in E0, E1, E2, E3 i valori 1, 30, 45
SN0 = 4, 77 carica in SN0, SN1 i valori 4, 77
SN4 = 3 carica in SN4 il valore 3
T1.2 /[[ E0, SN4 ]], [[ SN0,2 ]] equivale a T1.2 /E0, E1, E2, SN0, SN1 ed a T1.2 /1,30,45,4,77

I tre formati precedenti possono anche essere combinati tra di loro.

Esempio:
E0 = 29, 56 carica in E0, E1 i valori 29, 56
SN6 = 2 carica in SN6 il valore 2
T1.3 /[ 7, 10 ], 15, [[ E0, SN6 ]] equivale a T1.3 /7,8,9,10,15,29,56

4.3 TMT – Parametro utensile per PLC


La variabile TMT è una variabile di tipo reale che viene passata al PLC durante l’esecuzione di un codice
T.

Sintassi

TMT = valore

dove:
valore è un valore reale espresso direttamente tramite un numero reale o indirettamente
usando una variabile locale o di sistema.
Caratteristiche:
La variabile TMT contiene un valore numerico reale che viene passato al PLC, insieme alle altre
informazioni, al momento dell’esecuzione di un codice T.

45004606R 173
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.4 Indirizzo h
L'indirizzo h permette l'introduzione del correttore sia durante il movimento punto a punto (G29) sia
durante il movimento in continuo (G26 - G27 - G28).

Sintassi

h [correttore]

dove:
correttore Numero del correttore da applicare; può essere un numero intero di valore compreso tra 0
e 300 oppure una variabile locale o di sistema.

Caratteristiche:
L'indirizzo "h" deve essere programmato da solo nel blocco di part program. La programmazione
dell'indirizzo "h" disabilita eventuali valori di correzione attivi riferiti al comando "T".

Gli assi di applicazione dei valori sono gli stessi ai quali si fa riferimento con il comando "T
utensile.correttore". I valori associati a correttore vengono applicati agli assi quando l'esecuzione del
part program incontra l'indirizzo "h". L'indirizzo "h" non richiede di essere sincronizzato né con la logica
né con i movimenti.
Il fatto di non sincronizzare "h" implica che la sua visualizzazione viene effettuata nel
momento in cui viene letto dal part program e non quando è attuata.
Lo stesso avviene nel caso di utilizzazioni sincrone di "h", tipo G96. In tal caso occorre
sincronizzare con "#" l'applicazione di "h" per avere il corretto funzionamento dei giri
mandrino.
Programmare "h" senza correttore o con correttore uguale a 0 significa disattivare l'eventuale valore
attivato con un precedente comando "h correttore".
Il RESET non disabilita i valori di correzione applicati con l'indirizzo "h" .

È compito del PLC decidere se disabilitare i valori di correzione nella procedura di


RESET.

La visualizzazione del numero e del valore di correzione viene effettuata nei campi del video
normalmente utilizzati per l'indirizzo T.

I campi della tabella correttori (offset table) dai quali sono prelevati i correttori sono i seguenti:

Valore Campi offset table


Length 1 Length 1+ Curr. requalif. length 1
Length 2 Length 2+ Curr. requalif. length 2
Length 3 Length 3+ Curr. requalif. length 3
Length 4 Length 4+ Curr. requalif. length 4
Length 5 Length 5+ Curr. requalif. length 5
Diameter 1 Diameter 1+ Curr. requalif. Diameter 1
Diameter 2 Diameter 2+ Curr. requalif. Diameter 2

45004606R 174
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 1:
.
.
.
T[n] .x Programmazione di utensile e correttore
.
.
hy Annullamento del correttore x dichiarato in precedenza ed attivazione del correttore y
.
.
Esempio 2:
.
.
.
hy Attivazione correttore y
.
.
T[n] .x Annullamento del correttore y attivato con la h
.
.
Esempio 3:
.
.
.
hx
.
.
hy Annullamento del correttore x programmato in precedenza ed attivazione del correttore
y.
.
.

45004606R 175
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.5 AXO – Definizione del correttore dell’asse


Questo comando associa i valori lunghezza contenuti nella tabella dei correttori con gli assi della
macchina.

Sintassi

(AXO, [[-] [asse1]] [, [ [-] [asse2] ] [, [ [-] [asse3] ] [,[ [-] [asse4] ] [,[ [-] [asse5] ] ] ] ])
(AXO)

dove:
asse1 Nome dell'asse a cui è associata la lunghezza 1 del correttore utensile memorizzato
nella tabella utensili/correttori. Se il segno "-" è inserito davanti al nome, il valore
della lunghezza correttore viene applicato all'asse con segno opposto a quello
presente in tabella.
Se omesso, la lunghezza 1 del correttore non viene associata ad alcun asse.

asse2 Nome dell'asse a cui è associata la lunghezza 2 del correttore utensile memorizzato
nella tabella utensili/correttori. Se il segno "-" è inserito davanti al nome, il valore
della lunghezza correttore viene applicato all'asse con segno opposto a quello
presente in tabella.
Se omesso, la lunghezza 2 del correttore non viene associata ad alcun asse.

asse3 Nome dell'asse a cui è associata la lunghezza 3 del correttore utensile memorizzato
nella tabella utensili/correttori. Se il segno "-" è inserito davanti al nome, il valore
della lunghezza correttore viene applicato all'asse con segno opposto a quello
presente in tabella.
Se omesso, la lunghezza 3 del correttore non viene associata ad alcun asse.

asse4 Nome dell'asse a cui è associata la lunghezza 4 del correttore utensile memorizzato
nella tabella utensili/correttori. Se il segno "-" è inserito davanti al nome, il valore
della lunghezza correttore viene applicato all'asse con segno opposto a quello
presente in tabella.
Se omesso, la lunghezza 4 del correttore non viene associata ad alcun asse.

asse5 Nome dell'asse a cui è associata la lunghezza 5 del correttore utensile memorizzato
nella tabella utensili/correttori. Se il segno "-" è inserito davanti al nome, il valore
della lunghezza correttore viene applicato all'asse con segno opposto a quello
presente in tabella.
Se omesso, la lunghezza 5 del correttore non viene associata ad alcun asse.
nessun parametro (AXO) senza parametri ripristina l’associazione di default configurata in AMP

Caratteristiche:
L'associazione tra correttore lunghezza e l'asse del processo su cui applicarlo viene effettuata di norma
nella fase di configurazione del sistema, tramite la pagina INFORMAZIONI GENERALI relative all’asse
dell'ambiente AMP configurato.
Questa associazione può essere cambiata con il triletterale AXO.
I valori di preset (iniziali) contenuti nelle tabelle dei correttori hanno sempre un segno positivo. Il
comando AXO consente di associare questi valori agli assi con segno negativo.

45004606R 176
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

ATTENZIONE: L’associazione asse/correttore lunghezza caratterizzata con l'AMP, viene


ripristinata a fronte del comando (AXO) oppure su riaccensione del controllo.
Il RESET non elimina l’associazione asse/correttore utensile.

Se si riavvia il controllo dopo un comando AXO e avendo un utensile attivo potrebbero


risultare dei disallineamenti tra le quote assi a video e il correttore utensile. Tale
disallineamento può essere eliminato riprogrammando il comando AXO attivo prima dello
spegnimento e disattivando poi il correttore utensile.

Seguono alcuni esempi di attivazione del correttore lunghezza, il primo senza l'uso del triletterale "AXO",
i successivi con l'uso del triletterale "AXO" .

Esempio 1:
.
.
N1 T1.4 M6 Attiva il correttore 4 dell’utensile 1 sull'asse associato in fase di caratterizzazione alla
lunghezza 1 del correttore.
.
.
N100 T0 M6 Disattiva il valore del correttore lunghezza sull'asse.

Esempio 2:
.
.
N1 (AXO,-X,Z) Associa: il valore della lunghezza 1 del correttore con segno negativo all’asse X, il
valore della lunghezza 2 del corretto con segno positivo all’asse Z
.
.
N50 T1.4 M6 Attiva i valori lunghezza 1 e 2 del correttore 4 sugli assi X e Z definiti nel comando AXO.
Il valore lunghezza 1 è applicato all'asse X con segno negativo.
.
.
N100 T0 M6 Disattiva il valore di correzione lunghezza sugli assi X e Z.

Esempio 3:
.
.
N1 (AXO,,,,Z) Associa la lunghezza 4 del correttore all’asse Z.

45004606R 177
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.6 RQT – Riqualifica dei correttori utensili attuali


Il comando RQT riqualifica la lunghezza e/o il diametro memorizzati nella tabella dei correttori.

Sintassi

(RQT,utensile, correttore [,Lval1] [,l val2][,d val3] [,L(n) valn] [,d(m) valm])

dove:
utensile È il codice ASCII dell'utensile.

correttore È il numero del correttore da riqualificare. Il numero del correttore è un valore compreso
tra 1 e 300.

val1 valore di riqualifica per la lunghezza/diametro associati.

val2 I valori possono essere dei numeri o contenuti nelle variabili.


val3
valn
valm

L Identificano il valore da aggiungere alla lunghezza 1 del correttore.


L(1)
l Identificano il valore da aggiungere alla lunghezza 2 del correttore.
L(2)
n varia da 1 a 5 e identifica una delle cinque lunghezze del correttore.
m varia da 1 a 2 e identifica uno dei due diametri del correttore.
L(n) Identifica il valore da aggiungere alla n-sima lunghezza del correttore.
d Identificano l'incremento del correttore da aggiungere al diametro.
d(1)
d(m) Identifica l'incremento del correttore da aggiungere al m-esimo diametro.

Nel caso di sovrapposizioni di indici tra “L” ed “L(1)”, tra “l” ed “L(2)” oppure tra “d” e “d(1)”, i valori
vengono assegnati nell’ordine in cui vengono scritti (da sx a dx) senza alcuna segnalazione di errore.

Caratteristiche:
Occorre specificare gli incrementi della lunghezza e del diametro del comando RQT nell'unità di misura
corrente (pollici o millimetri con G70/G71). I valori non possono avere un fattore di scala (SCF)
associato.

Esempi:

(RQT,10,1,L E40 ,d E41) Questo blocco riqualifica il correttore 1 dell'utensile 10. L'incremento della
lunghezza 1 è contenuto in E40 mentre l'incremento del diametro è
contenuto in E41.

(RQT,10,1,l E50 ,L(4) E51) Questo blocco riqualifica il correttore 1 dell'utensile 10. L'incremento della
lunghezza 2 è contenuto in E50 mentre l'incremento della lunghezza 4 è
contenuto in E51.

45004606R 178
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.7 RQP – Riqualifica dei correttori utensili (valori di presetting)


Il comando RQP esegue il presetting del correttore selezionato. Quando il controllo esegue il comando,
scrive i corrispondenti valori di lunghezza e diametro nella tabella dei correttori. Tutti i valori di
correzione correnti vengono azzerati.

Sintassi

(RQP,utensile, correttore [,Lval1] [,l val2][,d val3] [,L(n) valn] [,d(m) valm])

dove:
utensile È il codice ASCII dell'utensile.

correttore È il numero del correttore da presettare. Il numero del correttore è un valore compreso
tra 1 e 300. Il numero massimo dipende dal numero di record dichiarato nel file dei
correttori.

L Identificano il valore da aggiungere alla lunghezza 1 del correttore.


L(1)
l Identificano il valore da aggiungere alla lunghezza 2 del correttore.
L(2)
n varia da 1 a 5 e identifica una delle cinque lunghezze del correttore.
m varia da 1 a 2 e identifica uno dei due diametri del correttore.
L(n) Identifica il valore da aggiungere alla n-sima lunghezza del correttore.
d Identificano l'incremento del correttore da aggiungere al diametro 1.
d(1)
d(m) Identifica l'incremento del correttore da aggiungere al m-esimo diametro.

Caratteristiche:
I valori possono essere dei numeri o contenuti nelle variabili.
Occorre specificare i valori della lunghezza e del diametro del comando RQP nell'unità di misura corrente
(pollici o millimetri con G70/G71). I valori non possono avere un fattore di scala (SCF) associato.

Esempi:
(RQP,10,1,L E40, L(3) E41, d E42) Questo blocco presetta il correttore 1 dell'utensile 10. Il valore
della lunghezza 1 è contenuto in E40, il valore della lunghezza 3 è contenuto in E41 mentre il valore del
diametro è contenuto in E42.

45004606R 179
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

4.8 TOU – Dichiarazione di utensile scaduto


Tramite il comando TOU è possibile dichiarare "scaduto" l'utensile specificato.

Sintassi

(TOU,utensile)

dove:
utensile È il codice ASCII dell'utensile da dichiarare scaduto (EXPIRED). Può essere una variabile
locale o di sistema.

Esempio:
(TOU,5) ;Dichiara scaduto l'utensile “5” nella tabella utensili
E1=10 ;
(TOU,E1) ;Dichiara scaduto l'utensile “10” nella tabella utensili

45004606R 180
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5. COMPENSAZIONE DIAMETRO UTENSILE

La compensazione utensile è una correzione basata sulla geometria specifica dell'utensile ed è applicata
ad un profilo programmato composto da segmenti di rette ed archi di circonferenza.

Si hanno due possibili tipi di compensazione utensile:


Compensazione diametro utensile: agisce in direzione perpendicolare al profilo programmato
(fig.1). L’utensile è posizionato perpendicolarmente al piano di compensazione e poiché
generalmente viene considerato come avente una sezione circolare, la correzione viene
applicata al diametro del cerchio.

Compensazione spessore utensile: agisce in direzione tangente al profilo programmato (fig.2).


L’utensile, un disco o una fresa a candela a fondo piatto, viene generalmente utilizzato per le
lavorazioni di “spazzolatura”, la direzione dell’utensile giace nel piano di compensazione.

Le figure illustrano come viene applicata la compensazione utensile nei due casi descritti.

Percorso programmato

Percorso compensato

Fig. 1. Posizionamento dell’utensile durante la compensazione diametro utensile

Percorso programmato

Percorso compensato

Fig. 2. Posizionamento dell'utensile durante la compensazione spessore utensile

45004606R 181
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.1 TTC – Tipo Compensazione utensile


La programmazione del triletterale TTC permette di configurare il tipo di compensazione utensile
desiderata.

Sintassi

(TTC, tipo [,cos(a),sin(a)])

dove:
tipo È il tipo di compensazione utensile da attivare, che può essere:
0 Attiva la compensazione diametro utensile, è il default
1 Attiva la compensazione spessore utensile
Questo valore può essere configurato anche in AMP e viene preso come default.

cos(a),sin(a) È il versore direzione utensile espresso come coseno e seno dell’angolo (a) che
l’utensile forma con l’asse delle ascisse nel piano di lavorazione.
La programmazione di tale versore è facoltativa, il default è 0.0, 1.0: utensile
verticale con la punta rivolta verso il basso.

Ordinata

Versore utensile

Sin(a)

a
Ascissa
Cos(a)

nessun parametro Disabilita la compensazione spessore disco abilitando quella di default


(diametrale)

Se modificati da programma, il RESET ripristina i valori di default.

45004606R 182
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2 G40 G41 G42 – Compensazione utensile


Le seguenti funzioni consentono di abilitare o disabilitare la compensazione utensile nel piano:

G40 Compensazione utensile disabilitata


G41 Compensazione con utensile a sinistra del profilo
G42 Compensazione con utensile a destra del profilo

Sintassi

G40 [codici-G] [operandi]


G41 [codici-G] [operandi]
G42 [codici-G] [operandi]

dove:
codici-G Altri codici G compatibili con G41, G42 e G40 (consultare "Codici G compatibili" nel Cap.
2).
operandi Tutti gli operandi e codici possibili nei blocchi di funzione G.

Quando la compensazione utensile è attiva sul profilo, l’utensile viene posizionato sull’intersezione tra
due elementi geometrici consecutivi opportunamente modificati in base al tipo di compensazione
richiesta

5.2.1 Abilitazione della compensazione utensile


La scelta del tipo di compensazione da attivare avviene in base alla programmazione o meno del
triletterale TTC. La compensazione utensile viene abilitata dai codici G41 o G42. Lo spostamento sul
primo punto del profilo deve essere di tipo lineare (G00-G01).

45004606R 183
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.2 Compensazione diametro utensile (TTC,0)


La correzione agisce in direzione normale al primo movimento nel piano, programmato successivamente
alla funzione G41 o G42. Tale movimento può essere rettilineo o circolare.
Seguono i due esempi relativi.

Il primo movimento del profilo è di tipo lineare

20

0
50
45

G41

G42

15
0
X

Programma:
Compensazione diametro utensile sulla destra del profilo:
G1 G42 X-50 Y15 F200
X-20 Y45

Compensazione diametro utensile sulla sinistra del profilo:


G1 G41 X-50 Y15 F200
X-20 Y45

45004606R 184
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il primo movimento del profilo è di tipo circolare

31.622

33.54
0

1
G41 35

G42

40
35
25

0 0

X
Programma:
Compensazione diametro utensile sulla destra del profilo:
G1 G42 X-31.622 Y40 F200
G2 X33.541 Y35 I J25
G1 X.....

Compensazione diametro utensile sulla sinistra del profilo:


G1 G41 X-31.622 Y40 F200
G2 X33.541 Y35 I J25
G1 X....

45004606R 185
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.3 Compensazione spessore utensile (TTC, 1)


Sull’attivazione della compensazione attraverso la funzione G41 e G42, il sistema determina
automaticamente la componente della direzione utensile lungo il piano di lavorazione ed in base ad essa
viene compensato il profilo programmato.
Se non viene programmata la direzione utensile attraverso il versore nel triletterale TTC, questa viene
considerata verticale.
Il piano di lavorazione viene specificato attraverso i codici di definizione piano (G16, G17, G18, G19), il
sistema calcola la componente normale alla direzione utensile, giacente sul tale piano, lungo la quale
verrà applicato l’offset dello spessore utensile.
In conclusione, dato l’utensile verticale e un punto programmato in coordinate pezzo, il centro utensile
si sposterà a sinistra, se programmato G41, o a destra, se programmato G42, di una quantità pari a metà
dello spessore disco. Nel caso di utensile non verticale il comportamento sarà analogo ma lo
spostamento avverrà lungo la direzione perpendicolare alla direzione utensile.

Direzione utensile

Verso di percorrenza
dell’ente

Punto controllato 1° punto di contatto 1° punto di contatto Punto controllato


calcolato tra utensile e pezzo tra utensile e pezzo calcolato

In caso di ente lineare perpendicolare alla direzione utensile la compensazione del punto
programmato avviene lungo quella direzione e, per convenzione, il verso non dipende dalla
programmazione G41/G42 ma è opposto a quello di percorrenza dell’ente. Si assume cioè
la seguente convenzione:
La compensazione viene eseguita nel piano e ad inclinazione del disco fissa e non può
quindi prevedere, durante una sezione G41 o G42 e G40, inclinazioni del disco
contemporanee alla movimentazione degli assi lineari. Se si necessita di cambiare
inclinazione all’utensile è necessario prima aver chiuso la sezione di compensazione con un
comando di G40.

I due esempi seguenti mostrano i diversi attacchi (primo movimento lineare e primo movimento
circolare).

45004606R 186
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il primo movimento del profilo è di tipo lineare


Un ente lineare, nella compensazione spessore disco, viene trasformato in un altro ente lineare traslato
coerentemente in base alla sua direzione, a quella utensile e all’eventuale presenza di mirror.

utensile

45

G41

G42
15

-50 -20 0 X

Programma:
Compensazione spessore disco sulla destra del profilo:
(TTC, 1)
G1 G42 X-50 Z15 F200
X-20 Z45
X10 Z15

Compensazione spessore disco sulla sinistra del profilo:


(TTC, 1)
G1 G41 X-50 Z15 F200
X-20 Z45
X10 Z15

45004606R 187
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il primo movimento del profilo è di tipo circolare


Un ente circolare, nella compensazione spessore disco, viene scomposto in uno o più enti in base al fatto
che il punto di tangenza (PT) dell’utensile col cerchio sia interno o meno a tale arco di estremi P i e Pf
(Fig.3).

- PT esterno: il sistema genera solo il primo cerchio, avente centro in c’, determinato traslando c di una
quantità pari al raggio fresa nella direzione e nel verso opportuno, e raggio pari a quello del
cerchio non compensato;
- PT interno: il sistema genera il suddetto primo cerchio, la retta passante in P T e tangente al cerchio,
solo se si sta compensando esternamente, e un secondo cerchio, avente centro in c’’
traslato nel verso opposto al primo e di pari raggio;

Nel caso in cui PT coincida con uno dei due punti estremi dell’arco (Pi o Pf) il sistema genera
semplicemente un arco e la retta tangente in PT.

PT
G41

G42

c’ c c”
5
Pi Pf
0
15 65 115 X
Fig. 3. Compensazione spessore disco per un profilo circolare

Programma:
Compensazione spessore disco sulla Compensazione spessore disco sulla
destra del profilo: sinistra del profilo:
(TTC, 1) (TTC, 1)
G1 G42 X15 Z5 F200 G1 G41 X15 Z5 F200
G2 X115 I65 J5 G2 X115 I65 J5
G1 X..... G1 X.....

45004606R 188
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.4 Note relative all'uso della compensazione utensile


Una volta abilitata, la compensazione utensile agisce su tutti i movimenti programmati con velocità di
rapido o di lavoro. Se la compensazione della fresa è abilitata con G41 o G42, non è possibile
programmare le seguenti funzioni G:
G81-G89 (cicli fissi)
G70 G71 (programmazione in mm/pollici)
G79 (programmazione riferita allo zero macchina)
G33 (filettatura)
G72 G73 G74 (cicli di misura)
G16, G17, G18, G19 (cambio piano di interpolazione)
G12, G13, G14 (interpolazione circolare nello spazio)

Con la compensazione utensile abilitata, il controllo visualizza un messaggio di errore quando:


si programma un raggio interno minore del raggio dell'utensile.
l'esecuzione di un movimento lineare traslato comporterebbe l'inversione del senso di
percorrenza rispetto al profilo originale.
si programma un codice di sincronismo (#) oppure una funzione sincrona

All'interno di un profilo compensato con G41 o G42 è possibile programmare il movimento di assi non
appartenenti al profilo. Il numero di movimenti programmabili dipende dall’uso o meno della correzione
interferenze (variabile IBSIZE).
Il numero massimo di movimenti consecutivi extra piano di compensazione nel caso in cui la correzione
interferenze non sia attiva è di 125 movimenti consecutivi.
Se è attiva la correzione interferenze il numero massimo di movimenti extra piano di compensazione
dipende dal valore di IBSIZE:
IBSIZE = 3: possono essere programmati fino a 124 movimenti tra tre movimenti extra piano
IBSIZE = 4: possono essere programmati fino a 123 movimenti tra quattro movimenti extra piano
IBSIZE = 5: possono essere programmati fino a 122 movimenti tra cinque movimenti extra piano

5.2.5 Ottimizzazione del percorso utensile (Tool Path Optimization)


Nell'ambito della programmazione con correzione diametro utensile, è possibile attivare (da part
program o MDI) la funzionalità Tool Path Optimization.
Questa funzionalità viene attivata mediante la variabile di sistema TPO, e può inoltre essere
personalizzata a seconda delle esigenze di lavorazione con la variabile di sistema TPT .

Il TPO consente due tipi di ottimizzazione:


"Riduzione" automatica degli spigoli tra blocchi di movimento lineari e circolari.
Entrata/uscita tangente al profilo (con un arco di cerchio).

Le variabili TPO e TPT sono descritte dettagliatamente, più avanti, in questo stesso capitolo.

45004606R 189
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.6 Disabilitazione della compensazione diametro utensile


La compensazione del diametro utensile viene disabilitata tramite il codice G40.
Le modalità di uscita sono le seguenti:
Senza TPO (modalità offset standard)
Il movimento programmato sul blocco G40 è considerato ancora in offset.
Con TPO attivo
Il movimento programmato sul blocco G40 è da considerarsi il movimento di uscita dall'offset.

Gli esempi seguenti illustrano vari casi di uscita dal profilo:

L'ultimo movimento del profilo è di tipo rettilineo (TPO=0)

Y Programma:
N88 G1 G40 X50 Y15
N100 G X.. Y..

G41

G42

15

0
x
50
0

L'ultimo movimento del profilo è di tipo circolare (TPO=0)

Programma:
N99 G2 G40 X31.62 Y40 I J25
N100 G X.. Y..

45004606R 190
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.7 Disabilitazione della compensazione con TPO attivo


La disabilitazione della compensazione diametro utensile con TPO attivo avviene sempre tramite il
codice G40. L'ultimo punto su cui agisce la compensazione diametro utensile è quello del blocco
precedente a quello che contiene G40.

Esempi:
L'ultimo movimento del profilo è di tipo rettilineo (TPO attivo)

Programma:
N87 G1 X20 Y40
N88 G40 X50 Y15
N100 G X.. Y..

L'ultimo movimento del profilo è di tipo circolare (TPO attivo)

Programma:
N98 G1X-33.541 Y35
N99 G2 G40 X31.622 Y40 I J25
N100 G X.. Y..

Programmando un blocco di part program con solo "G40" (senza punto finale associato) si
ottiene la stessa prestazione della compensazione diametro standard (come TPO=0).
Leggere con attenzione questa pagina e quelle relative alla gestione delle funzioni TPO e
TPT prima della programmazione.

45004606R 191
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.8 Disabilitazione della compensazione spessore disco


La compensazione della spessore disco viene disabilitata tramite il codice G40.
La modalità di uscita applicata è sempre quella standard indipendentemente dallo stato del TPO, ossia il
movimento programmato sul blocco G40 è considerato ancora in offset.

Gli esempi seguenti illustrano vari casi di uscita dal profilo:

L'ultimo movimento del profilo è di tipo rettilineo

Z Z

95

G41 G41
G42
G42

15

0 x 0 x

50
50

Programma: Programma:
N88 G1 G40 X50 Z15 N88 G1 G40 X50 Z95
N100 G X.. Z.. N100 G X.. Z..

L'ultimo movimento del profilo è di tipo circolare

G41
Programma:
N99 G2 G40 X86.6 Z50 R100
N100 G X.. Z..
G42 50
86.6

45004606R 192
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.9 Cambio compensazione utensile in lavoro


Questa sezione descrive la modalità con la quale viene gestito il cambio di compensazione
(G41  G42 o viceversa) durante la lavorazione di un profilo in offset. Il cambio del tipo di
compensazione può avvenire nel punto di intersezione tra i percorsi programmati (con compensazione
sinistra/destra o destra/sinistra), oppure tramite l'aggiunta di un nuovo blocco di movimento generato in
modo automatico dal sistema.

Il tipo di cambio compensazione (sull'intersezione o con blocco di collegamento aggiuntivo) dipende dalla
tipologia dei movimenti precedente e successivo al cambio stesso. Nelle pagine seguenti vengono
illustrati i vari casi possibili:
Lineare/Lineare con blocchi di movimento tangenziali
Lineare/Lineare con inversione della direzione
Lineare/Lineare con generazione automatica di un nuovo blocco di movimento
Lineare/Lineare senza generazione automatica di un nuovo blocco di movimento
Lineare/Circolare - Circolare/Lineare
Circolare/Circolare

5.2.10 Percorso utensile lineare/lineare


La figura seguente illustra il percorso dell'utensile quando la compensazione passa da G41 a G42 durante
l'esecuzione di due movimenti di tipo lineare.
Passando da G41 a G42, il controllo genera due punti, che chiameremo punto 1 e punto 2.
Il punto 1 è la posizione finale dell'utensile prima del cambiamento del tipo di compensazione.
Il punto 2 è la posizione desiderata per l'inizio del primo blocco che usa la direzione di
compensazione cambiata.

Il controllo genera automaticamente il blocco di movimento che collega il punto 1 con il punto 2:

punto 1

Compensato

r
Programmato in G41 G42

N10 N11 N12 N13


r

punto 2

Cambio Lineare/Lineare con blocchi di movimento tangenziali

45004606R 193
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Punti 1 e 2

Compensato

N10 Programmato in G41 N11

N13 Programmato in G42 N12

Cambio Lineare/Lineare con inversione della direzione

r
r r

Percorso N10
Compensato
N11
Percorso
Programmato N12
G41
G42

r r

punto 1
punto 2

Cambio Lineare/Lineare con generazione di un nuovo blocco

45004606R 194
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.2.11 Percorsi utensile Lineare/Circolare, Circolare/Lineare, Circolare/Circolare


Per ognuno dei seguenti tipi di percorso utensile, nei quali avviene un cambiamento della direzione di
compensazione, il sistema OPEN cercherà di trovare un'intersezione tra il percorso programmato in G41 e
quello programmato in G42 (o viceversa).
Se il sistema OPEN trova un punto di intersezione, esso modifica il punto finale del percorso utensile
compensato originale, mentre il punto iniziale del nuovo percorso utensile compensato coincide con tale
intersezione (figura sotto)

r G42 r
Percorso
Programmato G41 Programmato
in G42
+ +
Percorso Percorso
Compensato Compensato
Intersezione
Intersezione

Percorso
Compensato r
in G41
r
Percorso
Programmato
G42

Intersezione

Cambio di compensazione con intersezione del percorso attuale

45004606R 195
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Possono verificarsi tuttavia dei casi in cui non esiste intersezione tra i percorsi utensile; in questi casi,
passando da G41 a G42 (o viceversa) il sistema si comporta come illustrato nelle figure che seguono.
Il punto 1 è la posizione finale dell'utensile prima del cambiamento del tipo di compensazione.
Il punto 2 è la posizione desiderata per l'inizio del primo blocco che usa la direzione di
compensazione cambiata.

Il controllo genera automaticamente il blocco di movimento che collega il punto 1 con il punto 2:
Punto 1

Percorso
Compensato r2 r1

r1

Programmato G42
in G41
Punto 2

Punto 2

r1 r2

Programmato r1
in G41
G42
Percorso
Compensato Punto 1

Percorso
Compensato

r
Programmato
in G41 G42 +

Punto 1

r
Punto 2

Cambio compensazione senza possibilità di intersezione tra i percorsi utensile.

45004606R 196
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.3 r – Raccordi su profili compensati


Durante la lavorazione di profili convessi è possibile introdurre un raccordo circolare tra due elementi
geometrici.

Sintassi

r valore

dove:
valore Il valore del raccordo da programmare: negativo per spostamenti in verso orario, positivo
per spostamenti in verso antiorario.

Programmando r0 (raccordo zero) il centro dell'utensile esegue un arco circolare il cui


centro coincide con lo spigolo del profilo.

Esempio:

2 2

1 1

Senza raccordo Con raccordo


1) N20 G1 X100 Y100 1) N20 G1 X100 Y100
2) N21 X-100 N21 r0
2) N22 X-100

45004606R 197
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.4 b – Smussi nei profili compensati


È possibile inserire uno smusso, piuttosto che un raccordo, tra due blocchi di movimento (lineari o
circolari) la cui traiettoria si interseca, programmando un valore senza segno.

Sintassi

b valore

dove:
valore È il valore dello smusso misurato a partire dal punto di intersezione.
Tale valore di b viene interpretato nei seguenti modi:

Smusso tra due profili rettilinei:


b è la distanza che intercorre tra il punto teorico di intersezione tra i prolungamenti dei
segmenti di profilo ed il punto finale generato.

Smusso tra un profilo rettilineo ed uno circolare:


b è la distanza che intercorre tra il punto teorico di intersezione tra il prolungamento del
segmento del profilo rettilineo e la tangente del profilo circolare.

Smusso tra due profili circolari:


b è la distanza che intercorre tra il punto teorico di intersezione tra il prolungamento
delle tangenti dei due profili circolari.

Esempi :
PUNTO FINALE Smusso tra due blocchi lineari
GENERATO
BLOCCO 2 b
PUNTO FINALE Esempio di programmazione:
PROGRAMMATO
.
.
b N10 G1 X100 Y100 ;blocco 1
N11 b3
PUNTO FINALE
MODIFICATO N12 X-100 ;blocco 2
.
.
.
BLOCCO 1

45004606R 198
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Smusso tra un blocco di movimento circolare


BLOCCO 1
ed uno lineare
tangente al punto Esempio di programmazione:
finale del blocco 1
.
BLOCCO 2 N10 GXY
Punto finale
modificato
N11 G42
N12 G1X10Y70F1000
Punto finale N14 G2X70Y20R50 ;blocco 1
b generato
N16 b10
b N18 G1X150Y90 ;blocco 2
Punto finale N20 G40
programmato
.
.
.

Smusso tra un blocco di movimento lineare ed uno circolare.

P U N T O F IN A L E
PRO GR AM M ATO

b
TAN GENTE AL
PUN TO DI
b

PAR TENZA D EL
B L O C C O C IR C O L A R E
P U N T O F IN A L E
M O D IF I C A T O

P U N T O F IN A L E
G EN ER ATO

BLO C CO 1 BLO C CO 2

Esempio di programmazione:
.
N20 G42
N22 GXY
N24 G1X40Y40F1000 ;blocco 1
N26 b10
N28 G2X80Y5R70 ;blocco 2
N30 G40
.

45004606R 199
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Smusso eseguito tra due blocchi di movimento circolari.

BLOCCO 1
tangente al punto
finale del blocco 1
tangente al punto
iniziale del blocco 2

P unto finale P unto finale


m odificato generato

b b BLOCCO 2

P unto finale
program m ato

Esempio di programmazione:
.
.
N10 G42
N20 GX10Y60
N30 G2X50Y40R50F1000 ;blocco 1
N40 b5
N50 G2X100Y5050R30 ;blocco 2
.
.

45004606R 200
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.5 IBSIZE – Correzione interference sul profilo in G41/G42


La variabile di processo IBSIZE (Interference Buffer Size) consente di attivare la correzione interferenze
durante la compensazione utensile.
Quando la correzione interferenze è attiva, l’algoritmo correggerà, ove possibile, gli errori di inversione
del senso di percorrenza del profilo.
Il profilo dopo correzione sarà differente da quello programmato, ma il controllo potrà proseguire
nell’esecuzione del part program e il pezzo non risulterà danneggiato.

Sintassi

IBSIZE = n

dove:
n Dimensione del buffer utilizzato per la correzione
I valori validi per n sono mostrati nella tabella sottostante. Se n vale 0 l’algoritmo di correzione
interferenze viene disattivato.
Il valore di default di IBSIZE è 0, questo valore può anche essere configurato nell’AMP, tramite
ODM.

Se modificato da programma il RESET ripristina il valore di default.


n Funzione
0 L’algoritmo di correzione interferenze non è attivo
L’algoritmo di correzione interferenze è attivo.
3 E’ possibile correggere le interferenze che richiedono la rimozione, al massimo, di 1
movimento
L’algoritmo di correzione interferenze è attivo.
4
E’ possibile correggere le interferenze che richiedono la rimozione, al massimo, di 2 movimenti
L’algoritmo di correzione interferenze è attivo.
5
E’ possibile correggere le interferenze che richiedono la rimozione, al massimo, di 3 movimenti

Caratteristiche:
La programmazione di un blocco contenente l’istruzione IBSIZE=n attiva l’algoritmo di correzione
interferenze.
Un’interferenza è definita come un movimento compensato il cui verso di percorrenza è invertito
rispetto a quello del profilo originale.
L’uso della correzione interferenze aumenta i tempi di esecuzione di un part program, poiché, per
autorizzare l’uscita di un ente di movimento, è necessario precalcolare un certo numero di movimenti
successivi, così da poter identificare e correggere eventuali interferenze.
L’aumento di tempo di esecuzione non è fisso, ma dipende dal valore di IBSIZE e dal tipo di
ottimizzazione attivato (valore di TPO).

Durante l’uscita dalla compensazione (G40) la correzione interferenze è sempre


disattivata, perciò se un’interferenza sorge durante questa fase allora l’esecuzione del
part program si interrompe con un errore di verso di percorrenza errato.

45004606R 201
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

L’algoritmo disattiva il TPO durante la ricerca della correzione. Come conseguenza può
accadere che venga rimossi più enti di quanto strettamente necessario per correggere
l’interferenza.
Una volta trovata la soluzione, il TPO, se presente, viene ripristinato e il movimento di
correzione viene calcolato con TPO attivo.

L’uso della correzione interferenze modifica il numero di movimenti di assi non


appartenenti al profilo che possono essere programmati quando la compensazione è
attiva.
Inoltre gli smussi (raccordi) programmati, quando la correzione interferenze è attiva,
vengono conteggiati con i movimenti di assi non appartenenti al profilo.

Tale numero, a seconda dei valori di IBSIZE, diventa:


IBSIZE=3
Quattro movimenti di assi non appartenenti al profilo o smussi/raccordi programmati
compresi tra quattro movimenti compensati
IBSIZE=4
Due movimenti di assi non appartenenti al profilo o smussi/raccordi programmati
compresi tra sei movimenti compensati
IBSIZE=5
Nessun movimento di assi non appartenenti al profilo o smusso/raccordo può essere
programmato quando la compensazione sul profilo è attiva

Le interferenze sono suddivise in due classi:


Interferenza data da un solo movimento circolare
Interferenza data da una combinazione di più movimenti lineari e/o circolari

5.5.1 Interferenza data da un solo movimento circolare


Questo tipo di interferenza appare quando si programma un movimento circolare percorso internamente
ed il cui raggio è minore del raggio utensile.
In questo caso l’applicazione dell’algoritmo standard di compensazione genererebbe un profilo
differente rispetto a quello programmato.

profilo compensato

rtool
interferenza

profilo programmato

45004606R 202
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Quando la correzione interferenze è attiva (IBSIZE diverso da 0), l’algoritmo di correzione interviene
sostituendo il movimento circolare programmato con un movimento lineare che abbia gli stessi punti
iniziale e finale del movimento programmato.

profilo compensato

rtool
profilo corretto

profilo programmato

Il profilo risultante è differente da quello programmato, ma il controllo può proseguire nell’esecuzione


del part program e il pezzo in lavorazione non risulta danneggiato.

5.5.2 Interferenza data da una combinazione di più movimenti lineari e circolari


Un’interferenza può crearsi a causa della combinazione di più movimenti lineari e circolari di ampiezza
prossima a quella del raggio utensile.

profilo compensato d

c
D
b

B
A
profilo programmato
C

In questo caso il verso di percorrenza del movimento bc (compensato) è inverso rispetto a quello del
movimento BC (programmato), inoltre l’utensile, arrivando in b, rovina il pezzo in lavorazione.
Se è attiva la correzione interferenze, l’algoritmo di correzione interviene prima che l’utensile arrivi in
b e tenta di risolvere l’interferenza.
L’algoritmo di correzione cerca un’intersezione tra il blocco di movimento in esame ed i blocchi
precedenti.
Prendendo come esempio la figura precedente, l’interferenza viene identificata durante l’analisi del
movimento CD.

45004606R 203
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

L’algoritmo considera che il movimento responsabile sia quello immediatamente precedente, cioè BC e
lo rimuove dal profilo; in seguito cerca un’intersezione tra il movimento in analisi (CD) ed il movimento
precedente a quello responsabile dell’interferenza (AB). Se esiste un’intersezione allora l’interferenza è
stata risolta e l’esecuzione del part program può continuare.
Se non esiste un’intersezione, l’algoritmo cerca se nel buffer di interferenza (la cui dimensione è data
dal valore di IBSIZE) restano movimenti, in caso affermativo la ricerca dell’intersezione prosegue,
altrimenti l’algoritmo non è stato in grado di correggere l’interferenza, il controllo arresta l’esecuzione
del part program ed emette un errore di inversione senso di marcia.
L’applicazione dell’algoritmo descritto porta, nel caso in esempio, alla generazione del profilo seguente:
In questo caso è sufficiente rimuovere un solo movimento per correggere l’interferenza.

profilo compensato dopo correzione d

D
b
a

B
B ’
A

movimento corretto profilo programmato


C

In altri casi la rimozione di un solo movimento non è sufficiente a correggere l’interferenza, ma è


necessario rimuovere più di un ente di movimento per eliminare l’inversione di senso di marcia sul
profilo.
Per esempio per percorrere il profilo seguente è necessario, al crescere del raggio utensile, rimuovere
uno, due o tre movimenti.

rtool
4
rtool
3
rtool
2
rtool
1 E
A

C D

Il primo profilo compensato (rtool1) non richiede correzione poiché non si verificano interferenze.
A partire dal secondo valore di raggio utensile (rtool2) è necessario attivare la correzione interferenze,
infatti in questo caso l’intersezione tra l’ente D e l’ente E inverte il verso di percorrenza del profilo.
Rimuovendo l’ente D e calcolando l’intersezione tra gli enti compensati C ed E l’interferenza scompare .
Per rtool3 non è sufficiente rimuovere D, visto che anche l’intersezione tra C ed E genera un’interferenza.

45004606R 204
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Il valore di IBSIZE deve quindi essere superiore a 3 visto che almeno due enti devono essere rimossi;
infatti l’intersezione tra B ed E è la prima a non dare interferenza.
Per finire, a partire da rtool4 il valore di IBSIZE deve essere obbligatoriamente uguale a 5: in questo caso
anche l’intersezione tra B ed E genera un’interferenza ed è necessario, per risolverla “saltare” tutto il
sottoquadro dato da B,C,D e intersecare direttamente A ed E.
In tutti gli esempi il profilo risultante dopo correzione è differente da quello programmato, ma il
controllo può proseguire nell’esecuzione del part program e il pezzo non risulta danneggiato.
Se un raccordo (o smusso) programmato è connesso ad un movimento eliminato durante la correzione
allora anche il raccordo (smusso) verrà eliminato.

La rimozione dello smusso (raccordo) è necessaria visto che uno dei due movimenti (B) cui si riferisce
non è più presente.

rtool
2

rtool
1

Smusso
programma
to
B

L’inserzione di raccordi circolari su spigolo interno (TPO=64) viene disattivata durante il


calcolo del movimento di correzione.

Il TPO viene disattivato se la correzione da applicare corrisponde all’intersezione tra due


movimenti compensati che non si intersecano sul profilo originale.
Ciò avviene perché non è possibile determinare un punto iniziale non compensato per il
secondo movimento dell’intersezione. Se questo punto non esiste il comportamento
dell’ottimizzazione è indeterminato.

Durante la correzione vengono rimossi soltanto i comandi di movimento. Se in un


blocco rimosso durante la correzione sono presenti funzioni di logica (es. funzioni
M) questi verranno eseguite dopo il movimento di correzione, mentre le funzioni M
tipo expedite non vengono attualizzate, visto che il movimento durante il quale
dovrebbero svolgersi non viene eseguito.

45004606R 205
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6 TPO – Ottimizzazione del percorso utensile in G41/G42


La modalità TPO (Tool Path Optimization) permette di ottimizzare il percorso dell'utensile in presenza di
G41 o G42 attive.
L'algoritmo inserisce automaticamente interpolazioni circolari all'inizio ed alla fine del profilo, nonché
raccordi lineari o circolari sugli spigoli descritti dal profilo stesso.

Sintassi

TPO = n

dove:
n Tipo di ottimizzazione da effettuare.
Il valore di n da specificare nell’istruzione si ricava sommando i pesi decimali dei bit
corrispondenti a ciascuna delle prestazioni desiderate.
Se n è uguale a zero l’algoritmo di ottimizzazione viene disattivato

Bit 0 1 2 3 4 5 6 7

Inserimento movimenti di raccordo lineare fra gli enti

Entrata/uscita tangente al profilo

Attivazione dell’algoritmo per il mantenimento della


velocità di lavorazione costante in G41/G42

Inserimento movimenti di raccordo circolare fra gli enti

Inserimento movimenti di raccordo circolare su spigolo


interno

Caratteristiche:
La programmazione di un blocco contenente l'istruzione TPO=n attiva l'algoritmo di ottimizzazione del
percorso utensile.
Questo algoritmo può introdurre automaticamente dei movimenti all'inizio/fine profilo ed ottimizzare il
percorso sugli spigoli, inserendo un numero variabile di movimenti (da 1 a 3) in relazione al profilo.

All'accensione del sistema viene attivata la modalità TPO configurata in AMP; essa può
essere variata tramite la programmazione.
Su RESET viene ripristinata la modalità caratterizzata presente in AMP.

L’attivazione del bit 5 e/o del bit 6 ha effetto solo se è abilitato anche il bit 0.

Se si desidera inserire dei raccordi circolari laddove si inserirebbero, invece, dei raccordi
lineari, impostare un TPO = 33.
Se si desiderano inserire sugli spigoli interni di un profilo dei raccordi circolari impostare
un TPO = 65

45004606R 206
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.1 Modalità TPO=1, TPO=33 e TPO=65


La modalità TPO=1 attiva l'algoritmo di ottimizzazione del percorso utensile inserendo movimenti lineari
di raccordo fra gli enti del profilo in funzione della deviazione angolare tra gli enti stessi.
Se, inoltre, è settato anche il bit 5 (TPO=33) allora, laddove si verificano le condizioni per
l’ottimizzazione dello spigolo, tramite inserimento di movimenti lineari, viene inserito un raccordo
circolare avente centro nell’intersezione dei due enti non compensati e raggio pari al raggio utensile.

Qualora sia attivo anche il bit 6 (TPO= 1+32+64=97) le stesse considerazioni appena descritte vengono
applicate agli spigoli interni.

I casi di applicazione dell'algoritmo sono i seguenti:


A) Retta-retta con angolo beta di deviazione compreso tra 0° e TPA (0° <  < TPA°), con
la variabile TPA che di default è configurata a 90°
B) Cerchio-retta, retta-cerchio, cerchio-cerchio con angolo di deviazione compreso tra 0°
e 180° (0° <  < 180°).
Se tra gli enti descritti ai punti A) e B) è stato programmato uno smusso (b), od un raccordo, (r)
l'algoritmo non viene invece applicato.

Esempio:
In questo esempio  Programmato
Profilo è minore di 90° Con ottimizzazione TPO=1
BLOCCO
G41 G41 r GENERATO

r
r r r
G42 G42
r
r r

r=raggio utensile

Senza ottimizzazione (TPO=0) Con ottimizzazione (TPO=1)


Con ottimizzazione TPO=1 Con ottimizzazione TPO=1
BLOCCO BLOCCO
GENERATO G41 GENERATO
G41

r r
BLOCCO r
r r
G42
r GENERATO

r
G42
r

r=raggio utensile
r=raggio utensile

Con ottimizzazione (TPO=33) Con ottimizzazione (TPO=97)

45004606R 207
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nell'esempio precedente non si è tenuto conto della programmazione della soglia


TPT; si è assunto cioè che TPT=0.
Nella figura sottostante viene visualizzata la strategia del TPO quando TPT è diverso
da zero, ossia viene impostato uno scostamento di soglia dallo spigolo:

nel caso di spigolo esterno, il suddetto raccordo circolare avrà il centro


traslato, seguendo gli stessi criteri di calcolo usati per il raccordo lineare, e il
raggio ridotto di conseguenza.

nel caso di spigolo interno, il raggio del raccordo circolare sarà calcolato in
modo che il percorso pezzo risultante si discosti di TPT da quello che si
otterrebbe senza l’introduzione del raccordo

Con ottimizzazione TPO=1

G41
TPT

r
TPT

G42

r=raggio utensile

Nel caso di compensazione spessore disco (TTC,1), il raccordo inserito con TPO = 33 è
sempre fuori dallo spigolo di una quantità che però non dipende dal TPT ma dalla distanza
dello spigolo dagli enti compensati

G41

45004606R 208
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.1.1 Esempi relativi alla modalità TPO=1

Esempi di profili in cui la deviazione angolare comporta l'applicazione dell'algoritmo di ottimizzazione:

G41 1. Retta-retta con angolo


  compreso tra 90° e 180°



2. Cerchio-cerchio con
angolo di 180°

G41

    

3. Cerchio-retta con
angolo compreso tra 0° e
180°

        
G 41

45004606R 209
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.1.2 Esempi di profili in cui l'algoritmo comporta l'inserimento di movimenti

Il profilo ricalcolato in presenza di spigoli sarà caratterizzato dall'introduzione automatica di movimenti


(da 1 a 3) a seconda del tipo di profilo che forma lo spigolo da ottimizzare.

1) Retta - retta Movimento generato


dall'algoritmo con
TPO = 1
L'algoritmo genera 1
movimento

con TPO = 33

2) Retta - cerchio Movimenti generati


dall'algoritmo con
TPO = 1 L'algoritmo genera 2
movimenti

con TPO = 33

3) Cerchio - retta Movimenti generati


dall'algoritmo con
TPO = 1 L'algoritmo genera 2
movimenti

con TPO = 33

4) Cerchio - cerchio Movimenti generati


dall'algoritmo
L'algoritmo genera 3
movimenti

con TPO = 1

con TPO = 33

45004606R 210
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.2 Modalità TPO=2


La modalità TPO=2 attiva l'algoritmo di entrata/uscita tangente al profilo tramite l'inserimento di enti
circolari all'inizio ed alla fine del profilo stesso:
A) All'entrata del profilo viene generato un ente circolare fra il punto precedente (P0) ed
il primo punto del profilo offsettato (P1), intendendo come primo punto quello
programmato nel blocco contenente la funzione G41 o G42.

.
X80 ;P0
G41 X100 Y100 ;P1
X140 ;P2
. ;ecc.
.
B) All'uscita del profilo viene generato un ente circolare fra l'ultimo punto del profilo
offsettato (P99) ed il punto finale dell'ente di uscita del profilo (P100) intendendo
come ente di uscita quello programmato nel blocco contenente la funzione G40.

.
G41 X100 Y100 ;P1
.
.
X170 Y160 ;P99
G40 X180 Y185 ;P100
. ;ecc.
.

45004606R 211
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.3 Modalità TPO = 3


La modalità TPO=3 attiva contemporaneamente gli algoritmi delle modalità 1 e 2, inserendo così sia
movimenti di raccordo tra enti, che movimenti circolari di entrata ed uscita dal profilo.
Le regole definite per le due modalità precedenti sono da ritenersi valide anche per TPO=3.

5.6.3.1 Esempi relativi alla modalità TPO=2

Esempio 1:

Y
5 2 ,5
50

m o v im e n ti c ir c o la r i d i u s c it a
45
4 2 ,5
40

35

30

25

20
G 41

15
G 42

10

5
m o v im e n ti c ir c o la r i d i e n t r a ta

5 10 15 20 25 30 35 40 45 50 X

3 2 ,5

N1 S1000 M3 T1.1M6 ;raggio utensile = 2.5


N2 X5 Y5
N3 G1 G42 X15 Y15 F500 ;primo punto del profilo
N4 X30
N5 X40 Y30
N6 X32.5 Y42.5 ;ultimo punto del profilo
N7 G40 X32.5 Y52.5
N8 GX100

45004606R 212
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:

Y
50

45

40

35

30

25

20

15
G 41

10

5
m o v im e n to c ir c o la r e d i u s c ita
0 m o v im e n to c ir c o la r e d i e n t r a t a

-2 0 -1 0 0 10 20 X

N1 S1000 M3 T1.1 M6 ;raggio utensile = 2.5


N2 X0 Y0
N3 G1 G41 Y15 F800 ;primo punto del profilo
N4 X -20
N5 Y45
N6 X40
N7 Y15
N8 X0 ;ultimo punto del profilo
N9 G40 Y0

45004606R 213
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.6.4 Modalità TPO=8 e TPO=16


Le modalità TPO=8 e TPO=16 attivano l’algoritmo che mantiene costante la velocità di lavorazione in
G41/G42. In particolare viene mantenuta costante la velocità di “contatto” tra utensile e pezzo,
variando la velocità di avanzamento riferita al centro utensile.

Tale variazione è funzione del raggio utensile e viene applicata ai soli movimenti circolari. Essa produrrà
un aumento o una diminuzione della velocità di avanzamento riferita al centro utensile a seconda che il
raggio della circonferenza percorsa dal centro utensile sia maggiore o inferiore al raggio della
circonferenza programmata. Settando il bit 3 della variabile TPO (TPO=8) viene abilitato l’incremento
della velocità, mentre settando il bit 4 (TPO=16) viene abilitata la diminuzione della velocità.

I bit 3 e 4 di TPO possono essere settati insieme ed anche contemporaneamente a tutti gli altri bit della
stessa variabile per abilitare le prestazioni corrispondenti.

5.6.5 Modalità TPO=32 e 64


Equivale ad aver programmato TPO = 0.
Questo perché l’attivazione dell’ottimizzazione degli spigoli, sia esterni che interni, tramite inserimento
di un raccordo circolare è subordinata all’aver abilitato il TPO a 1. Se il bit 0 è nullo e il bit 5 e/o il bit 6
è a 1 (TPO=32 e/o TPO=64) l’algoritmo di ottimizzazione a raccordi circolari non viene abilitata.

45004606R 214
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.7 TPA – Angolo di soglia per TPO


Variabile di sistema che rappresenta l’angolo di soglia entro cui raccordare due enti lineari in
compensazione utensile (G41/G42).

Sintassi

TPA = valore

dove:
valore Angolo di soglia espresso in gradi. Se l’angolo tra due enti adiacenti è minore del TPA
allora viene inserito un raccordo, circolare o lineare, secondo quanto impostato nel TPO.
È un numero reale superiore a 0° e inferiore a 180°. Può essere programmato
direttamente tramite un numero reale o indirettamente tramite una variabile.
Il valore di default di TPA è = 90°; questo valore può essere anche configurato in AMP.

Caratteristiche
Questa variabile rende configurabile l’angolo di soglia utilizzato dall’algoritmo Tool Path Optimization
(TPO) nel raccordare due enti lineari in compensazione utensile. Se almeno un ente è circolare
l’algoritmo di ottimizzazione rimane invariato, ossia, viene introdotto un raccordo (lineare o circolare a
seconda del valore di TPO) qualunque sia l’angolo tra i due enti.
Se modificato da programma il RESET ripristina il valore di default.

Esempio:

Con TPA > 90° e TPO = 1 Con TPA > 90° e TPO = 33
Con ottimizzazione TPO=1 Con ottimizzazione TPO=1
BLOCCO BLOCCO
G41 GENERATO G41 GENERATO

r r

G42
r G42
r

r=raggio utensile r=raggio utensile

45004606R 215
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.8 TPT – Soglia di scostamento dallo spigolo (Tool Path Threshold)


Dichiarazione del valore della soglia di scostamento dallo spigolo durante l'ottimizzazione del percorso
utensile con TPO=1 (Tool Path Optimization).

Sintassi

TPT = valore

dove:
valore Quota di scostamento espressa nell'unità di misura corrente (mm/inch.).Essa rappresenta
la distanza tra il tagliente dell'utensile e lo spigolo descritto dal profilo programmato.
Questo valore può essere anche caratterizzato in AMP.

Esempio:

r G41 r G41

Valore di soglia
programmato con TPT

Con TPT=0 Con programmazione TPT

Caratteristiche:
Se il valore di soglia programmato con TPT porta il centro utensile a superare il punto teorico della
normale compensazione diametro utensile (G41/G42 senza programmazione TPO), tale valore sarà
ignorato dal sistema.
In questo caso l'algoritmo TPO viene temporaneamente disabilitato, mentre viene utilizzata la normale
gestione G41/G42, non vi sarà inoltre alcuna segnalazione d'errore.

Esempio:
Normale scostamento
Algoritmo TPO dallo spigolo in G41
non attivabile (max. TPT utile)

r G41

Valore di soglia troppo grande


programmato con TPT
(inutile perchè disattiva il TPO)

45004606R 216
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.9 u v w – Compensazione parassiale


Quando in un blocco vengono programmati i fattori di compensazione u, v, w il controllo si posiziona su
di un punto le cui coordinate sono uguali alle coordinate programmate modificate di un valore che è
uguale al raggio dell'utensile moltiplicato per il fattore di compensazione, supponendo i fattori di
compensazione associati agli assi X,Y e Z:

posizione X = X programmata + (raggio dell'utensile * u)


posizione Y = Y programmata + (raggio dell'utensile * v)
posizione Z = Z programmata + (raggio dell'utensile * w)

Questi fattori di compensazione vengono utilizzati per profili molto semplici (contorniture parallele agli
assi) o per fresare superfici tridimensionali.

Non si possono utilizzare i fattori u, v, w quando la compensazione utensile (G41-G42) è abilitata.


Quando i fattori u, v, w sono negativi, devono essere seguiti da un segno meno (-). Se sono positivi, il
segno più (+) può essere omesso.

Per determinare il valore e il segno basta considerare i fattori parassiali, u, v, w rispettivamente come le
coordinate X, Y, Z del vertice del profilo corrette di un valore unitario. Queste coordinate sono riferite
ad un sistema di assi cartesiani paralleli a quelli della macchina la cui origine è nel punto da correggere.

Determinazione del segno dei fattori di compensazione u, v, w.

Il vettore unità rappresenta un correttore raggio utensile lungo un'unità. Pertanto, gli incrementi di
traslazione vengono ottenuti moltiplicando u, v, w, per il valore del raggio utensile.

I fattori parassiali uvw sono validi solamente all’interno della linea in cui sono usati, la
programmazione di un asse senza specificare il parametro parassiale relativo equivale a
programmare il fattore parassiale con valore 0.

45004606R 217
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

È possibile compensare i profili formati da:


segmenti rettilinei paralleli agli assi o formanti un angolo con gli assi
segmenti rettilinei ed archi ad essi tangenti
archi tangenti tra loro (ammesso che rimangano ancora tali dopo essere stati traslati
parallelamente).

I fattori u, v, w sono validi solo nel blocco in cui sono programmati e agiscono solo se sono associati alle
coordinate corrispondenti:
u al primo asse configurato (tipicamente X)
v al secondo asse configurato (tipicamente Y)
w al terzo asse configurato (tipicamente Z)

5.9.1 Esempi d'uso dei fattori di compensazione u, v, w

Esempio 1:
Y Programma:
N5 T1.01 M6 S. . F. .
N6 G X Y30
N7 G1 Y10 v1
30
u-1 N8 X40 u-1
N9 Y30
N10 G X. . Y. .
v1
v1 u-1 10

X
40
0

Esempio 2:

Programma:
N13 G X Y
N14 Y10 v-1
N15 X40 u1
N16 Y30
N17 G X. . Y. .

45004606R 218
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 3:
Programma:
N13 G X Y
N14 G1 Z-10
N15 X-20 Y-20 u1 v1
N16 X20 u-1
N17 Y20 v-1
N18 X-20 u1
N19 Y-20 v1
N20 G X Y

Esempio 4:
Programma:
N13 G X-35 Y-35
N14 Z-10
N15 G1 X-20 Y-20 u-1 v-1
N16 X20 u1
N17 Y20 v1
N18 X-20 u-1
N19 Y-20 v-1
N20 GZ

45004606R 219
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 5:
Programma:
N12 . . .
N13 G X-30 Y
N14 G1 Y20 v-1
N15 X30
N16 Y-20 v1
N17 X-30
N18 . . .

Esempio 6
Programma:
N12 G X40 Y B0
N13 G1 X30 u1
N14 X25 B360 u1
N15 G X40

45004606R 220
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.10 U V W – Definizione assi per compensazione parassiale


È possibile cambiare gli assi su cui effettuare la compensazione parassiale.
Normalmente la compensazione parassiale viene applicata, all’interno di ogni processo, sui primi tre assi
configurati (i primi tre assi presenti a video). Tramite il triletterale (UVW), è possibile modificare gli assi
su cui effettuare la compensazione parassiale.

Sintassi

(UVW, asse1 asse2 [asse3])

dove:
asse1…asse3 Sono i nomi degli assi a cui associare la compensazione parassiale uvw, ad asse 1 verrà
associato il parametro u, ad asse 2 verrà associato il parametro v ed infine ad asse3 verrà
associato il parametro w.
Caratteristiche:
Se nel comando vengono specificati solo due assi la compensazione parassiale verrà attivata solo per i
parametri uv, ignorando il terzo (w).
Una volta definita l’associazione tra assi e parametri uvw, tale associazione rimane attiva sino a che non
viene eseguito un RESET, a tal punto viene ripristinata l’associazione di default (primi tre assi
configurati). Anche a fronte di un comando di GTA viene ripristinata l’associazione di default a meno che
tutti gli assi (intesi come identificativo asse) su cui sono attivi i parametri uvw rimangono presenti anche
dopo l’esecuzione del comando.

Esempio:
N10 (UVW,XYZ) Attiva uvw rispettivamente su X Y e Z
N20 h1
N20 X10u1Y20Z40
N30 (DAN,XP,YQ,ZD)
N40 (UVW,XYZ) Attiva gli uvw su PQD (la DAN li ha rinominati in XYZ)
N50 X10u1Y20v0.3Z40w0.3

N60 X0u1Y5v0.50Z4w-0.5

45004606R 221
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.11 MSA – Definizione di sovrametallo


Il comando MSA definisce il valore di sovrametallo da lasciare lungo il profilo. Viene utilizzato durante i
cicli di sgrossatura e di pre-finitura. È possibile programmarlo in un blocco o inserirlo tramite MDI o
interfaccia utente.

Sintassi

MSA = valore

dove:
valore Può essere un numero decimale o un parametro E. Viene programmato nella stessa unità di
misura (G70-G71) attiva nel programma.

Caratteristiche:
Il valore del sovrametallo programmato viene applicato dal sistema nel calcolo della traslazione del
profilo quando sono attivi G41 o G42 (compensazione diametro utensile).
La traslazione su profilo, infatti, è la somma tra raggio utensile e MSA.

Esempio:

MSA = 0.5 Assegna un sovrametallo di 0.5


E30 = 1.5
MSA = E30 Assegna un sovrametallo di 1.5

Nel caso in cui venga cambiata l’unità di misura tramite codice G (passaggio G70G71 oppure
G70G71) il valore corrente di MSA viene azzerato.

45004606R 222
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

5.12 CURDIAM / CURDIAM2 – Modifica del raggio utensile / raggio utensile toroidale
Le variabili CURDIAM e CURDIAM2 permettono di leggere e modificare il valore del diametro utensile e
del diametro dell’utensile toroidale attualmente attivi.

Sintassi

CURDIAM = valore
CURDIAM2 = valore

dove:
valore Può essere un numero reale o una variabile sia di sistema che locale.

Caratteristiche:
La variabile CURDIAM permette di leggere e modificare il valore del diametro dell’utensile attivo.
La variabile CURDIAM2 permette di leggere e modificare il valore del diametro dell’utensile toroidale
attivo.
Entrambe le variabili non modificano i valori di diametro utensile presenti in tabella correttori.
I valori di CURDIAM e CURDIAM2 vengono automaticamente aggiornati a ogni variazione del diametro
utensile montato in macchina.

Esempio:

N1 CURDIAM = 10 ; Assegna un raggio utensile di 5 (diametro 10)


N2 h5 ; Attiva il correttore 5. CURDIAM verrà aggiornata con il valore corrispondente

45004606R 223
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6. PROGRAMMAZIONE DEL MANDRINO

Le funzioni descritte in questo capitolo devono essere gestite tramite PLC

FUNZIONI DEL MANDRINO


L'indirizzo S programma la velocità di rotazione del mandrino espressa in giri/min o come velocità di
taglio costante. Anche alcune funzioni M intervengono nel controllo del mandrino.

45004606R 224
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6.1 G96 G97 – Programmazione CSS e RPM


I seguenti codici G controllano la programmazione della velocità del mandrino.

G96 Programmazione della velocità come velocità di taglio costante (CSS).


G97 Programmazione della velocità in giri/min (RPM).

Sintassi

G97 [Codici-G] [operandi]


G96 [Codici-G] [operandi]

dove:
Codici-G Altri codici G compatibili con G96 e G97 (consultare "Codici G compatibili" nel Cap. 2).
operandi Tutti gli operandi e i codici che possono essere utilizzati nei blocchi di funzioni G.

Caratteristiche:
G97 attiva la programmazione dell'indirizzo S come velocità del mandrino espressa in giri/min. G97 è la
modalità di default del controllo ed è modale (come G96).

G96 attiva la programmazione dell'indirizzo S come velocità di taglio costante (CSS=Constant Surface
Speed), espressa in piedi al minuto (G70), o metri al minuto (G71). G96 impone che la velocità del
mandrino sia controllata in funzione della posizione dell'asse diametrale, in modo tale da rimanere
costante sulla superficie da lavorare. Quando viene attivata G96, la posizione dell'asse diametrale viene
assunta uguale al raggio per il quale è programmata la velocità di superficie costante (S).

45004606R 225
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6.1.1 Modifica dell'indirizzo S durante G96 - cancellazione del modo CSS


Per modificare il valore di S mentre G96 è attivo, il controllo deve essere in modo G00 o G29. Per
cancellare la programmazione CSS di G96, il controllo deve essere in modo G00 e occorre programmare
un blocco con G97 ed un indirizzo S che definisca il numero di giri del mandrino.

Esempio:
L'esempio seguente illustra la programmazione in CSS.
Codici G di accensione assunti: G00, G27, G70, G95, G97
Intervallo di accelerazione assunto: intervallo di accelerazione 1 (M41) = 800 giri/min massimo.

N1 G90 G00
N3 U5 ;Predisposizione dell'asse diametrale (U)
N4 SSL=700 ;Velocità di rotazione massima = 700 giri/min
N5 G96 S400 M3 ;CSS 400 piedi /minuto
N6 G1 U0 Z -2 F10 ;Impostazione del modo contornitura e velocità di 10 ;pollici/min
N7 U5 Z0
N8 G00 ;Preparazione alla modifica di S
N9 G01 S300 U0 Z -2 ;Nuova velocità di taglio = 300 piedi/minuto
N10 G00 ; Preparazione alla cancellazione di G96
N11 G97 S100 ;Impostazione di G97, S=100 giri/min
N12 G01 Z0 ;Contornitura in G01
N13 U5
N14 G00 ;Modo rapido, contornitura disattivata
N15 M05 ;Arresto del mandrino
N16 M02 ;Fine programma

L'operatore S non si può programmare quando il processo si trova in stato di Hold.

45004606R 226
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6.2 SSL – Limite della velocità di rotazione del mandrino


Il comando SSL viene introdotto con G96 per definire la massima velocità di rotazione del mandrino
durante il funzionamento in CSS espressa in giri/min.

Sintassi

SSL=valore

dove:
valore È un valore che può essere programmato direttamente con un numero decimale o
indirettamente con un parametro E.

Caratteristiche:
Quando l'asse diametrale si avvicina all'asse del mandrino, il mandrino si avvicina alla velocità massima
per mantenere il valore dell'indirizzo S programmato. Il comando SSL mantiene la velocità di rotazione
del mandrino ad un valore inferiore ai giri/minuto massimo.

Il comando SSL deve essere programmato prima del numero di giri S.

Assicurarsi di definire questo valore nel programma prima di scrivere i blocchi G96.

Esempio:
SSL = 2000 Assegna una velocità massima di rotazione del mandrino pari a 2000 giri/min
E32 = 1500
SSL = E32 Assegna una velocità massima di rotazione del mandrino pari a 1500 giri/min

45004606R 227
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6.3 M19 – Arresto della rotazione mandrino con orientamento


La funzione ausiliaria M19 programma un arresto del mandrino con un certo orientamento angolare.
Questa caratteristica è utile nelle lavorazioni in tiro, poiché consente di orientare il mandrino, spostare
l'asse Y (o l'asse X a seconda dell'orientamento del taglio), penetrare nel foro, posizionare nuovamente il
mandrino in asse e iniziare la lavorazione.

Inoltre M19 può essere utilizzata in operazioni di alesatura di elevata precisione, per evitare l'incisione
della superficie alesata durante lo spostamento di ritorno dell'asse Z. In questo caso, si dovrebbe
terminare il foro, orientare il mandrino, spostare l'asse X o Y a seconda dell'orientamento del taglio, ed
eseguire il ritorno dell'asse Z.

M19 viene annullata da M03, M04, M13, M14. Quando il controllo legge M19 in un blocco che contiene
anche informazioni di movimento, M19 viene eseguita prima del movimento.

Le funzioni M attive nell’applicazione possono essere differenti da quelle descritte di


seguito. Per ulteriori informazioni relative alle funzioni M consultare la documentazione
specifica della macchina.

Esempio:
Programma:
N32 (DIS,"BARRA PER LAMATURA IN TIRATA
D=136")
N33 S115 F20 T7.7 M6
N34 G X250 Y-12 M19
N35 Z-306
N36 Y M3
N37 DWT=2
N38 G1 G29 G4 Z-300
N39 G Z-302 M5
N40 Y-12 M19
N41 Z

Nel blocco N34 vengono posizionati gli assi X ed Y e viene controllato l'orientamento del mandrino in
modo che l'utensile possa scorrere attraverso il foro. Nel blocco successivo l'asse Z viene posizionato per
l'inizio della lamatura.

Nel blocco N36, l'asse dell'utensile viene spostato fino a farlo coincidere con quello della lamatura.

Nel blocco N38 viene eseguita la lamatura. Nei blocchi successivi, l'utensile viene orientato, poi ritirato
dal pezzo in lavorazione e posizionato lungo l'asse Y, in modo che possa scorrere attraverso il foro.

45004606R 228
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

6.4 GTS – Condivisione del mandrino


Nota: comando non disponibile con OPEN-10, richiede l’opzione A34 con OPEN-20 e
OPEN-30

Questo triletterale consente ad ogni processo di rilasciare il suo mandrino, modificarne lo stato oppure
acquisirne uno in nuova modalità. Per le varie condizioni del mandrino vedere il manuale di
caratterizzazione.

Sintassi

(GTS)
(GTS, mode)
(GTS, spindle_id, mode)

dove:
spindle_id È l’identificativo logico dell’asse mandrino interessato. Può essere programmato
direttamente o tramite una variabile.
mode È la modalità richiesta, X = esclusiva, S = condivisa (shared), A = rilascio come asse.

(GTS) Serve per rilasciare il mandrino. Con questa sintassi il processo informa il sistema
che non intende più utilizzare il suo mandrino e lo mette a disposizione di altri
processi. Il mandrino passa in stato RELEASED solo se il rilascio viene effettuato
dall’ultimo processo proprietario, mentre se ancora usato da altri processi
continua a rimanere in stato SHARED.

(GTS,A) Serve per rilasciare il mandrino e renderlo disponibile in modalità “asse”. Con
questa sintassi il processo informa il sistema che non intende più utilizzare il suo
mandrino e lo mette a disposizione di altri processi. La richiesta fallisce se il
mandrino risulta essere in uso da parte di altri processi; al termine della funzione
il mandrino/asse passa in stato RELEASED.

(GTS, spindle_id, S) Serve per condividere con altri processi il mandrino con identificativo spindle_id
che non deve essere di uso esclusivo di un altro processo. Nel momento in cui il
mandrino si trova in modalità “asse”, questo viene trasformato automaticamente
in modalità “mandrino”. I casi possibili sono:
Il processo non possiede nessun mandrino e vuole acquisire, condividendolo,
un nuovo mandrino.
Il processo è già proprietario esclusivo del mandrino e vuole renderlo
condivisibile.
Il processo vuole abbandonare il mandrino corrente ed acquisirne uno nuovo.

45004606R 229
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

(GTS, spindle_id, X) Serve per utilizzare il mandrino con identificativo spindle_id in modo esclusivo.
L’asse non deve essere in condivisione con altri processi. Nel momento in cui il
mandrino si trova in modalità “asse”, questo viene trasformato automaticamente
in modalità “mandrino”. I casi possibili sono:
Il processo non possiede nessun mandrino e ne vuole uno in modo esclusivo.
Il processo è l’unico proprietario di un mandrino “condiviso” e ne vuole il
pieno possesso.
Il processo vuole abbandonare il mandrino corrente ed acquisirne uno nuovo.

Nei casi non previsti viene dato errore di processo.

Esempio:
(GTS, 4, S)

Caratteristiche
La chiamata del triletterale all’interno del part-program forza il sincronismo di blocco-calcolo.

45004606R 230
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

7. FUNZIONI AUSILIARIE M

7.1 Le funzioni M standard


Nel seguente capitolo vengono brevemente descritte le funzioni ausiliarie M considerate standard per la
maggior parte delle applicazioni.
Le funzioni M che sono installate in alcune applicazioni possono essere diverse da quelle descritte in
questo contesto. L'installatore del sistema è responsabile della programmazione dell'interfaccia tra il
controllo e la macchina nonché dell'installazione delle funzioni M specifiche per l'applicazione.
Consultare la documentazione specifica della macchina per ulteriori informazioni relative alle funzioni
M.

ATTIVA A
FUNZIONE CHE
CODICE INIZIO/FINE DESCRIZIONE
ANNULLA M ATTIVA
MOVIMENTO
M0 x Inizio ciclo Arresto del programma
M1 x Inizio ciclo Arresto del programma opzionale
M2 x Fine del programma/uscita da subroutine
M3 x M4-M5-M14-M19 Rotazione oraria del mandrino
M4 x M3-M5-M13-M19 Rotazione antioraria del mandrino
M5 x M3-M4-M13-M14 Arresto del mandrino
M6 x Cambio utensile
M7 x M9 Refrigerante secondario inserito
M8 x M9 Refrigerante primario inserito
M9 x M7-M8 Refrigerante disinserito
M10 x M11 Blocco degli assi
M11 x Sblocco degli assi
M12 x M11 Blocco degli assi rotativi
M13 x M4-M5-M14-M19 Rotazione oraria mandrino e refrigerante
M14 x M3-M5-M13-M19 Rotazione antioraria mandrino e refrigerante
M19 x M3-M4-M5-M13-M14 Arresto del mandrino con orientamento
Fine del programma e riposizionamento sul primo
M30 x
blocco
M40 x Reset gamma forzata
M41 x M42-M43-M44-M40 Forza gamma 1
M42 x M41-M43-M44-M40 Forza gamma 2
M43 x M41-M42-M44-M40 Forza gamma 3
M44 x M41-M42-M43-M40 Forza gamma 4
M45 x M41-M42-M43-M44 Cambio gamma automatico
M60 x Cambio pezzo

A seconda della configurazione le funzioni M possono essere disattivate da un reset del controllo.

45004606R 231
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Un blocco che contiene un codice M "expedite" deve contenere anche un movimento


assi. A seconda del tipo di caratterizzazione della funzione M, può essere possibile la
sola programmazione nel modo punto a punto (G29), oppure anche nel modo continuo
(G26-G27-G28).

CODICE DESCRIZIONE DELLA FUNZIONE


Arresto del programma: M0 arresta l'esecuzione del programma, la rotazione del mandrino ed
il flusso del refrigerante dopo che il controllo ha eseguito tutte le operazioni del blocco in cui
M0
è movimentata. Dopo avere eseguito una M0 il controllo mantiene tutte le informazioni sullo
stato corrente.
Arresto opzionale del programma: Se abilitata tramite interfaccia utente, M1 opera come
M1
M0. Se non abilitata, M1 viene ignorata dal controllo.
Fine del programma: M2 definisce la fine di un programma o forza l’uscita da una subroutine
M2
senza arrivare alla fine di questa.
Rotazione del mandrino in senso orario: M3 definisce la rotazione del mandrino in senso
orario. Questa funzione viene attivata dal controllo dopo che è stata introdotta da tastiera o
M3
letta in un programma. Se presente in un blocco, M3 viene attivata prima di qualsiasi altro
movimento.
Rotazione del mandrino in senso antiorario: M4 definisce la rotazione del mandrino in senso
antiorario. Questa funzione viene attivata dal controllo dopo che è stata introdotta da
M4
tastiera o letta in un programma. Se presente in un blocco, M4 viene attivata prima di
qualsiasi altro movimento.
Arresto del mandrino: M5 arresta la rotazione del mandrino. Questa funzione viene attivata
M5 dal controllo dopo che è stata introdotta da tastiera o letta in un programma. Diventa
esecutiva dopo l'esecuzione delle operazioni contenute nel blocco.
Cambio utensile: M6 arresta temporaneamente l'elaborazione del programma e attiva i
correttori selezionati tramite la funzione T. Se presente in un blocco, viene attivata prima di
M6 qualsiasi movimento. Arresta anche la rotazione del mandrino e il flusso del liquido di
raffreddamento ma non disattiva le funzioni M3, M4, M7, M8, M13, M14, che ridiventano attive
dopo che M6 è completata.
Erogazione del refrigerante secondario: M7 comanda l'erogazione del refrigerante
M7 secondario. Diventa esecutiva quando viene introdotta da tastiera o elaborata in un
programma.
Erogazione del refrigerante principale: M8 comanda l'erogazione del refrigerante principale.
M8 Diventa esecutiva quando viene introdotta da tastiera o elaborata in un programma.
Stop refrigerante: M9 blocca completamente l'erogazione del refrigerante (principale e
M9
secondario). Diventa operativa dopo l'esecuzione delle operazioni contenute nel blocco.
M10 Blocco degli assi lineari e rotativi: M10 blocca gli assi non interessati alla lavorazione.
M11 Disattivazione M10 e M12
M12 Blocco degli assi rotativi: M12 blocca solo gli assi rotativi non interessati alla lavorazione.
M13 Rotazione del mandrino in senso orario e attivazione del refrigerante
M14 Rotazione del mandrino in senso antiorario e attivazione del refrigerante
Arresto rotazione mandrino con orientamento: Diventa esecutiva prima dei movimenti
M19
contenuti nel blocco. Viene annullata dalle funzioni M03, M04, M13, M14.
Reset automatico a fine programma: M30 cancella tutte le informazioni relative al buffer
dinamico del controllo. L'origine assoluta 0 viene automaticamente attivata e il programma
M30
selezionato viene impostato per la ripresa. M30 non disattiva la correzione dell'utensile in
mandrino.
M40 Reset gamma forzata

45004606R 232
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE DESCRIZIONE DELLA FUNZIONE


M41 Forza gamma 1
M42 Forza gamma 2
M43 Forza gamma 3
M44 Forza gamma 4
M45 Cambio gamma automatico
M60 Cambio pezzo

7.2 Funzione M (prelude, expedite, postlude)


Ci sono tre possibili tipi di funzione M:

Codici M prelude vengono emesse verso il PLC prima del movimento degli assi
Codici M expedite vengono emesse verso il PLC durante il movimento degli assi
Codici M postlude vengono emesse verso il PLC dopo il movimento degli assi

Per le funzioni M prelude e postlude la sincronizzazione tra il movimento degli assi e l'esecuzione da
parte del PLC delle funzioni M è funzione del fatto che possano essere accettate in continuo (attributo di
caratterizzazione ODM "accettata in continuo") e del tipo di movimento presente (G27, G28, G29)

"accettata in continuo" = N "accettata in continuo" = Y


G27, Il sistema OPEN chiude il continuo, E' sincronizzata con il movimento. Non
G28 emette la funzione M attendendo il richiede colloquio con il PLC (viene passata al
sincronismo con il PLC e riapre il PLC senza sospendere l'esecuzione del part
continuo appena possibile. program).
Se viene programmato un movimento
nello stesso blocco della funzione M di
Prelude, questo viene eseguito in punto-
punto
G29 E' sincronizzata con il movimento.
Richiede colloquio con il PLC (il sistema
sospende l'esecuzione del part program
finché il PLC lo richiede).

Il sistema consente l'uso di una sola funzione M expedite in ciascun blocco di movimento del
part program.

45004606R 233
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

7.3 M parametriche
Utilizzando la seguente sintassi è possibile inviare fino ad 8 parametri reali verso il PLC.

Sintassi

Mn[param1 [, param2 … , param8]

dove:
n È il codice della funzione M richiesta. È un valore compreso tra 0 e 9999, può
essere espresso direttamente tramite un numero intero oppure indirettamente
tramite un parametro E.

param1…param8 È un valore reale definito direttamente o indirettamente tramite una variabile

45004606R 234
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8. PROGRAMMAZIONE PARAMETRICA

La programmazione parametrica utilizza le variabili locali e di sistema per definire i valori geometrici e
tecnologici di un ciclo di lavorazione. C'è una differenza fondamentale tra variabili locali e di sistema,
che differenzia gli scopi per cui queste variabili vengono usate.
Le variabili di sistema sono memorizzate in un'area di memoria di sistema accessibile da tutti i processi
attivi e restano residenti anche quando il sistema viene disattivato.
Le variabili locali sono memorizzate in un'area di memoria locale e sono utilizzabili solo dal processo a
cui esse sono riferite.

Il valore attuale di queste variabili, inoltre, non viene mantenuto allo spegnimento del sistema, ma alla
successiva riaccensione sarà nuovamente inizializzato con il valore configurato in AMP.

La seguente tabella riassume le variabili disponibili nel sistema:


VARIABILE TIPO FUNZIONE
E locale Parametri E
!nam locale Variabili utente
RTV locale Variabili Real Time
LINENO Locale Numero di linea del livello di esecuzione corrente
Punto di break-point per esecuzione parziale di un
$BRK Locale
programma
GPRG Locale Stato delle G programmate
RCD Locale Disabilita contatore per RCM
CURPROC Locale Numero del processo attivo
SN di sistema Numero di sistema
SC di sistema Carattere di sistema
LS di sistema Stringhe di sistema
TIM di sistema Temporizzatore di sistema (sola lettura)
@nam di sistema Variabili WinPLUS
L di sistema Numero di sistema

Tutte le variabili locali e le variabili di sistema ad eccezione dei Caratteri di Sistema possono essere
usate in espressioni matematiche, trigonometriche e calcoli di espressione.
Un'espressione matematica ha una lunghezza massima di 40 caratteri ed è formata da operatori
aritmetici, funzioni e operandi (variabili o costanti numeriche). Gli operatori aritmetici sono:

addizione (+)
sottrazione (-)
moltiplicazione (*)
divisione (/)

45004606R 235
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.1 Funzioni trigonometriche


Le funzioni trigonometriche disponibili sono elencate nella seguente tabella.
FUNZIONE DESCRIZIONE
SIN (A) Calcola il seno di A
COS (A) Calcola il coseno di A
TAN (A) Calcola la tangente di A
ARS (A) Calcola l'arco seno di A
ARC (A) Calcola l'arco coseno di A
ART (A) Calcola l'arco tangente di A
ATAN2(A,B) Calcola l’arco tangente dell’angolo formato dal vettore centrato nell’origine e di
coordinate (A,B) e l’asse delle ascisse

Gli argomenti di una funzione (A,B) possono essere variabili o costanti numeriche. Un'espressione viene
risolta dal controllo tenendo conto delle regole matematiche sulle priorità delle parentesi e dei segni. Il
risultato viene convertito nel formato della variabile specificata alla sinistra del segno uguale.

Gli argomenti delle funzioni trigonometriche (SIN, COS, TAN) devono essere espressi in
gradi. Anche il risultato delle funzioni trigonometriche inverse (ARS, ARC, ART) viene
espresso in gradi.

8.2 Funzioni matematiche


Le funzioni matematiche disponibili sono elencate nella seguente tabella.
FUNZIONE DESCRIZIONE
SQR (A) Calcola la radice quadrata di A
ABS (A) Calcola il valore assoluto di A
INT (A) Calcola la parte intera di A
NEG (A) Inverte il segno di A
MOD (A,B) Calcola il resto della divisione tra A e B
POW (A, B) Calcola il valore di A elevato alla potenza B

8.3 Funzioni logaritmiche ed esponenziali


Le funzioni logaritmiche ed esponenziali disponibili sono elencate nella seguente tabella.
FUNZIONE DESCRIZIONE
EXP10 (A) Calcola la A-esima potenza di 10 (10^A)
EXP2 (A) Calcola la A-esima potenza di 2 (2^A)
EXPE (A) Calcola la A-esima potenza di e (e^A)
LG2 (A) Calcola il logaritmo base 2 di A
LN (A) Calcola il logaritmo naturale di A
LOG (A) Calcola il logaritmo base 10 di A

45004606R 236
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.4 Funzioni booleane


Le funzioni booleane disponibili sono elencate nella seguente tabella.
FUNZIONE DESCRIZIONE
AND(A,B) Esegue l'AND bit-a-bit tra due numeri di valore compreso tra -32768 e +32767*
OR(A,B) Esegue l'OR bit-a-bit tra due numeri di valore compreso tra -32768 e +32767*
EXOR(A,B) Esegue l’EXOR (OR esclusivo) bit-a-bit tra due numeri di valore compreso tra -32768 e +327
NOT(A) Complemento a 1 di un numero di valore compreso tra -32768 e +32767*
BSET(A, B) Restituisce il valore ottenuto forzando ad 1 il bit B del numero A* 67*
BCLR(A, B) Restituisce il valore ottenuto forzando a 0 il bit B del numero A*
BTST(A, B) Restituisce il valore del bit B del numero A
A && B Esegue l'AND logico tra tra due operandi
A || B Esegue l’OR logico tra tra due operandi
A ^^ B Esegue l’EXOR (OR esclusivo) logico tra due operandi
NEG(A) Inverte il segno dell’operando

*Gli argomenti delle funzioni booleane devono essere numeri interi di valore compreso tra -32768 e
+32767 (formato short con segno). È possibile utilizzare i parametri E (double) con le funzioni
booleane purchè contengano valori compresi in questo intervallo.

8.5 Variabili locali


8.5.1 Parametri E
Il numero massimo di parametri E deve essere definito durante la configurazione del sistema. Si possono
configurare sino a 8000 parametri E.

I parametri E sono di tipo Double con 17 cifre in totale, con un massimo di 17 integer prima del punto
decimale oppure 16 decimali. Il sistema accetta più parametri E per blocco, la sola restrizione è la
lunghezza del blocco. Quando si è in modalità blocco-a-blocco, i blocchi multipli saranno eseguiti come
se fossero un singolo blocco. Sono ammessi più livelli di indici parametrici. Per esempio: E(E(E..)).

I parametri E ricevono i valori in speciali blocchi d'assegnazione. Il formato di un blocco di assegnazione


è:

En = espressione

dove:
n È il numero d'identificazione del parametro E. Può essere espresso con un numero intero
oppure con un altro parametro E.

espressione Può essere un valore numerico, un carattere o un'espressione matematica il cui risultato è
memorizzato nel parametro E avente il numero di identificazione n.

45004606R 237
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempi:
I seguenti esempi illustrano blocchi d'assegnazione per parametri di calcolo:

E37=(E31*SIN(E30)+123.4567)/SQR(16) Risolve l'espressione matematica ed assegna il risultato al


parametro E37.
E39=-0.00000124+5 Calcola l'espressione e assegna il risultato al parametro
E39.
E40=TAN(35) Trova la tangente di 35 gradi e assegna il risultato al
parametro E40.
E7=81 Assegna il valore 81 al parametro E7.
E25=E25+30 Aggiunge 30 al valore corrente di E25 e assegna il risultato
a E25.
E29=1,2,3,4,5 Assegna il valore 1 al parametro E29, il valore 2 al
parametro E30, il valore 3 al parametro E31, il valore 4 al
parametro E32 e il valore 5 al parametro E33.
E(E42)=1729 Assegna il valore 1729 al parametro corrispondente al
valore memorizzato nel parametro E42

I parametri E possono essere usati sia in un programma che in un sottoprogramma. Per visualizzare il
valore corrente di un parametro, utilizzare il comando DIS.

Esempio:
(DIS,E39) visualizza il valore corrente di E39.

Esempio:
Il seguente esempio illustra l'assegnazione di un carattere ASCII
SC0="P" Assegna il carattere "P" alla variabile stringa SC0
E1=SC0
(DIS,E1) Visualizza 80 (codice ASCII della lettera P)

Esempi di blocchi di movimento o comandi con parametri.


XE1
X-E1
X(E1)
X(-E1)
X(E8-14*SQR(E14))
X(-(E8-14*SQR(E14)))
X(E(E(E3)))

FE1
SE2
TE1.E2

45004606R 238
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.5.2 ! – Variabili utente


Le variabili definite dall'utente possono essere di due tipi:
Double
Carattere

Il nome delle variabili e il numero massimo di caratteri disponibili devono essere definiti durante la
configurazione con ODM. Il nome delle variabili utente può avere al massimo 10 caratteri, il primo dei
quali deve essere "!".
L'estensione delle variabili utente può essere .LR oppure .CH.

Per le variabili utente di tipo carattere è valida la seguente regola:

!nome_var [(indice)] [.numero caratteri]CH = parametro

dove:
indice Numero che indica il carattere di partenza nell’array di caratteri della variabile.
Se indice non è specificato, si assume che valga zero.
Se specificato deve essere programmato tra parentesi tonde.

numero caratteri Indica quanti caratteri, a partire da indice, sono interessati dalla lettura/scrittura.
Se non specificato, si intende che sarà scritto/letto un solo carattere.
La somma indice + numero caratteri non deve superare il numero di caratteri
configurato per la variabile specificata.

parametro Può essere:


Una costante stringa racchiusa tra apici singoli o doppi
Una variabile stringa la cui lunghezza sia inferiore a lunghezza
Una costante numerica di valore compreso tra 0 e 255
Una variabile numerica di valore compreso tra 0 e 255

Esempi:
!ABC(1) = 125
G0 X(!ABC(1))

Il valore 125 viene assegnato alla variabile utente !ABC(1); questa variabile viene quindi usata come
argomento dell'indirizzo X in un codice G0.

!CHAR(2).8CH="ABC"
Questa assegnazione scrive "ABC" nei primi 3 caratteri (a partire dal secondo) nella variabile utente
!CHAR: i restanti 5 caratteri (8-3) vengono automaticamente azzerati; per evitare questo azzeramento
occorre programmare !CHAR(2).3CH="ABC"
! CHAR(1).CH=”A” o !CHAR(1).CH=65

45004606R 239
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Le variabili utente di tipo Double hanno il seguente formato:

!nome_var [(indice)]= espressione

dove:
indice Numero che identifica la variabile.
Se indice non è specificato, si assume che valga zero.
Se specificato deve essere programmato tra parentesi tonde. L'indice della variabile può
essere un numero o un parametro E.

espressione Può essere un valore numerico o un’espressione matematica il cui risultato è memorizzato
nella variabile utente identificata da indice.

Esempio:
!ABC(1) = 125
G0 X(!ABC(1))
Il valore 125 viene assegnato alla variabile utente !ABC(1); questa variabile viene quindi usata come
argomento dell'indirizzo X in un codice G0.

NOTE:
Nei blocchi di movimento, la variabile utente deve essere scritta sempre tra parentesi.

Esempi di blocchi di movimenti o comando con variabili utente double:

X(!USER1(2))
X(!USER1(2)10)
F(!USER1(1))
S(!USER1(1))
T(!USER1(1).(!USER1(2))

45004606R 240
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.5.3 Variabili Real Time – RTV


Il controllo offre un array di otto variabili di tipo double, dette variabili Real Time.
I valori di queste variabili vengono copiati in apposite zone di memoria condivisa ogni volta che viene
generato un ente di movimento.

La sintassi per l’assegnazione di una variabile Real Time è la seguente:

RTV(n) = espressione

dove:
n È il numero d'identificazione della variabile Real Time. Può essere espresso direttamente
con un numero intero compreso tra 0 e 7 oppure indirettamente tramite una variabile.
Per conoscere su quali variabili di tipo PD vengano copiati i valori delle variabili Real Time fare
riferimento al Manuale di Applicazione WinPLUS.

Esempio:
RTV(0) = 1
G27G1X100F1000 Durante questo movimento la variabile PD corrispondente vale 1
RTV(0) = 2
G1X150 Durante questo movimento la variabile PD corrispondente vale 2
RTV(1) = 3
G1X200 Durante questo movimento le variabili PD corrispondenti valgono 2 e 3
RTV(0) = 4
(DIS, RTV(0)) Viene visualizzato 4

8.5.4 LINENO – Numero della linea di programma selezionata


La variabile LINENO contiene il numero della linea in esecuzione al momento dell’analisi del blocco che
contiene l’istruzione LINENO.
La variabile LINENO può essere letta, visualizzata o memorizzata su una variabile di supporto.

NOTA:
Il contenuto della variabile LINENO non può essere modificato da part program.

Esempio:
; Test
G27 G1 X10 F1000
X30
E0 = LINENO
X40
#E1 = LINENO

Se l’esempio precedente viene eseguito in modalità automatica la variabile E1 conterrà il valore 5,


mentre in E0 dovrebbe valere 1 poiché il blocco cui appartiene l’assegnazione viene analizzato prima
che il movimento descritto nella riga 1 venga eseguito.

45004606R 241
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.5.5 $BRK – Punto di break-point per esecuzione parziale di un programma


La variabile $BRK permette di definire un break-point per l’esecuzione parziale di un programma o per la
ricerca memorizzata.

La sintassi per l’assegnazione della variabile di break-point è la seguente:

$BRK = espressione

dove:
espressione È il numero d'identificazione del break-point. Può essere espresso direttamente tramite un
numero intero o indirettamente tramite un’espressione algebrica.

Caratteristiche:
Il valore di breakpoint può essere utilizzato nel definire il punto di fine dell’esecuzione di un part-
program o il punto dove deve terminare l’esecuzione in Ricerca Memorizzata.

Esempio:

$BRK = 0
G90X0
'LOOP'

(DIS, $BRK)
GX >> 1
$BRK = $BRK + 1
(GTO, LOOP, $BRK < 100)

Se viene definita l’esecuzione parziale del part program fino a $BRK = 42, allora l’esecuzione terminerà
quando l’asse X sarà a 42 e il valore di $BRK a video sarà di 41.

45004606R 242
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.5.6 GPRG – Stato delle G programmate


La variabile vettoriale GPRG contiene il valore numerico delle G attive al momento dell’analisi del
blocco che contiene l’istruzione GPRG.
Il contenuto della variabile GPRG non può essere modificato da part program ma semplicemente letto,
visualizzato o memorizzato su una variabile di supporto.

NOTA:
La variabile GPRG è un vettore di 14 elementi coerenti con l’area delle G attive presenti nel quadro
video di default del Provideo della WinNBI.
Per completezza viene qui di seguito riportato il significato dei singoli elementi della variabile seguendo
lo stesso ordine di visualizzazione.

VARIABILE VALORE CONTENUTO G ATTIVE


GPRG(0) 0o1o2o3o G0 o G1 o G2 o G3 o
10 o 12 o 13 o 14 o 33 G10 o G12 o G13 o G14 o G33
GPRG(1) 8x G8x
GPRG(2) 72 o 73 o 74 G72 o G73 o G74
GPRG(3) 92 o 98 o 99 G92 o G98 o G99
GPRG(4) 40 o 41 o 42 G40 o G41 o G42
GPRG(5) 26 o 27 o 28 o 29 G26 o G27 o G28 o G29
GPRG(6) 4o5o6o9 G4 o G5 o G6 o G9
GPRG(7) 90 o 91 G90 o G91
GPRG(8) 79 G79
GPRG(9) 70 o 71 G70 o G71
GPRG(10) 16 o 17 o 18 o 19 G16 o G17 o G18 o G19
GPRG(11) 93 o 94 o 95 G93 o G94 o G95
GPRG(12) 96 o 97 G96 o G97
GPRG(13) 60 o 61 G60 o G61

Esempio 1:
La variabile assumerà il valore numerico della G attiva nel momento della sua analisi.
Per es. se si vuole sapere se è attiva la G10 si scriverà:

(IF, GPRG(0) = 10)….

Oppure per l’unità di misura:


E0 = GPRG(9)
(IF, E0 = 71)…

45004606R 243
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:
In riferimento alle linee di programma qui di seguito riportate, si supponga che il sistema stia eseguendo
in continuo il blocco di movimento N30, la G di movimento attiva nel momento dell’analisi del blocco
N60 è G1 mentre quella sincrona con la programmazione è G0.
Al termine del programma il sistema visualizzerà 0.

N10 G1 G27
N20 X100 F1000
N30 X200
N40 X300
N50 G0 X400
N60 E2 = GPRG(0)
N70 G1 X0
N70 (DIS, E2)

8.5.7 RCD – Disabilita contatore per RCM


La variabile RCD permette di disabilitare il conteggio degli enti di movimento che non si vogliono tener
conto durante una ricerca memorizzata (RCM). I blocchi di movimento eseguiti quando RCD vale 1 non
vengono quindi considerati al fine della RCM. Nasce di default con valore 0.

Esempio:
Nel seguente esempio i blocchi da N100 a N150 non vengono conteggiati in fase di esecuzione e quindi
non considerati durante una successiva, eventuale, fase di Ricerca Memorizzata.

MAIN TOOL_CHANGE

N10 G1 G27 N100 RCD = 1


N20 X100 F1000 N110 G79 X0Y0Z0
N30 (CLT, TOOL_CHANGE) N120 h3
N40 X300 N130 T3M6
N50 G0 X400 N140 G79 X50 Z-10
N150 RCD = 0

45004606R 244
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.5.8 CURPROC – Numero del processo attivo


La variabile CURPROC permette di identificare il processo sul quale si sta eseguendo il part program
corrente.

La variabile CURPROC può essere letta, visualizzata o memorizzata su una variabile di supporto.

NOTA:
La variabile CURPROC è di sola lettura.

45004606R 245
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.6 Variabili di Sistema


Ci sono cinque tipi di variabili di sistema che si possono usare nei programmi:
Numero di Sistema
Carattere di Sistema
Stringa di Sistema
Temporizzatori di Sistema
Variabili WinPlus

All'interno dei programmi queste variabili possono essere usate per leggere o scrivere dei valori o delle
stringhe nelle operazioni di assegnazione.

8.6.1 SN – Numero di Sistema


Le variabili Numero di Sistema sono del tipo Double a 17 cifre con segno e un massimo di 17 cifre integer
oppure 16 decimali. Possono essere definite fino a 25 variabili Numero di Sistema che occupano un'area
di 200 byte, disponibile nella memoria dual port del sistema.

Le variabili Numero di Sistema hanno il seguente formato:

SNn = espressione

dove
n È il numero d'identificazione della variabile Numero di Sistema. Il parametro n può essere
un numero o un parametro E.
espressione Può essere un valore numerico o un'espressione matematica il cui risultato è memorizzato
nel Numero di Sistema avente numero di identificazione n.

NOTA:
Una variabile Numero di Sistema può essere assegnata ad un altra variabile numero di Sistema
già definito
Le variabili SN sono globali a tutti i processi e sono retentive, ossia, mantengono il loro valore
anche dopo lo spegnimento del controllo

Esempi:
1. SN20 = 326.957
Il valore decimale 326.957 è assegnato alla variabile Numero di Sistema SN20.
2. SN20 = (SN9*SIN(30) + 12.5)/SQR(81)
Il risultato dell'espressione matematica è assegnato alla variabile SN20.

Esempi di blocchi di movimento o comando con variabile SN


X(SN0)
X(SN0SN1)
F(SN1)
S(SN2)
T(SN1).(SN3)

45004606R 246
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.6.2 SC – Carattere di Sistema


Le variabili Carattere di Sistema sono di tipo carattere e occupano un'area di 100 byte nella memoria di
sistema. Questo significa che l'insieme dei Caratteri di Sistema definiti non può essere superiore ai 100
byte.
Ogni Carattere di Sistema è identificato da un indice che specifica l'indirizzo d'inizio e da una lunghezza
che specifica quanti byte occupa la variabile partendo dall'indirizzo d'inizio.

0 1 2 3 4 5 6 7 8 9 1011 99

Le variabili Carattere di Sistema hanno il seguente formato:

SCindice.lunghezza = parametro

dove:
indice È l'indice che specifica la posizione d'inizio della variabile in memoria. Può avere dei valori
nell'intervallo da 0 a 99 e può essere un numero o un parametro E.

lunghezza È la lunghezza della variabile espressa in numero di caratteri (bytes). La lunghezza può
essere un numero o un parametro E.

parametro Può essere:


una costante stringa racchiusa tra apici singoli o doppi
una variabile stringa la cui lunghezza non sia più grande di lunghezza
una costante numerica di valore compreso tra 0 e 255
una variabile numerica il cui valore sia compreso tra 0 e 255

NOTE:
Per una singola variabile, la somma "indice+lunghezza" non deve superare 100.
Una variabile Carattere di Sistema può essere assegnata ad un'altra variabile Carattere di
Sistema.
Alla variabile SC possono anche essere assegnate le variabili numeriche corrispondenti ai
caratteri ASCII. In questo modo è possibile assegnare anche quei caratteri che non sono
visualizzati, per esempio 10 (LF) e 13 (CR).
I valori numerici sono programmati senza doppi apici (" ").
Le variabili SC sono globali a tutti i processi e sono retentive, ossia, mantengono il loro valore
anche dopo lo spegnimento del controllo

45004606R 247
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
SC2.5="PIPPO"
SC8.3="ABC" o SC8.3=65,66,67

0 1 2 3 4 5 6 7 8 9 1011 99

La stringa "PIPPO" è scritta partendo dal byte 2 e occupa 5 byte da questa posizione.

La stringa "ABC" è scritta partendo dal byte 8 e occupa 3 byte da questa posizione.

Quando si definiscono l'indice e la lunghezza, occorre fare attenzione a non sovrapporre


due variabili.

Esempio:
Assegnazione di un valore numerico ad una variabile SC.
SC0.1=80 Assegna 80 alla variabile stringa
(DIS,SC0.1) Visualizza P (carattere ASCII 80).

E1=80 Assegna 80 alla variabile E1


SC0.1=E1
(DIS,SC0.1) Visualizza P (carattere ASCII 80).

45004606R 248
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.6.3 LS – Stringhe di Sistema


Le variabili Stringhe di Sistema sono un array di 100 stringhe di al massimo 128 caratteri. Questo significa
che occupano un'area di 128000 byte nella memoria di sistema.
Ogni Stringa di Sistema è identificata da un indice che specifica l'indirizzo d’inizio, mentre la lunghezza
non deve essere specificata in quanto il sistema legge o scrive la stringa a partire dal primo carattere
sino al terminatore di riga o al raggiungimento dei 128 caratteri.

0 1 2 3 4 5 6 7 8 9 10 11 127
LS
o
LS0
LS1

LS99

Sintassi

LSindice = parametro

dove:
indice È l'indice che specifica la stringa in memoria. Può avere dei valori nell'intervallo da 0 a 99
e può essere un numero o un parametro E. Se l’indice non è specificato, è sottintesa la
stringa di posizione 0

parametro Può essere:


una costante stringa racchiusa tra apici singoli o doppi
una variabile stringa la cui lunghezza non sia maggiore di 128 caratteri
una costante numerica di valore compreso tra 0 e 255
una variabile numerica di valore compreso tra 0 e 255

NOTE:
Una variabile Stringa di Sistema può essere assegnata ad un'altra variabile Stringa di Sistema.
Alla variabile LS possono anche essere assegnate le variabili numeriche corrispondenti ai
caratteri ASCII. In questo modo è possibile assegnare anche quei caratteri che non sono
visualizzati, per esempio 10 (LF) e 13 (CR).
I valori numerici sono programmati senza doppi apici (" ").
Le variabili LS sono globali a tutti i processi e sono retentive, ossia, mantengono il loro valore
anche dopo lo spegnimento del controllo

45004606R 249
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
LS ="PIPPO"
LS3="ABC" o LS3=65,66,67 Assegna alla variabile LS di indice 3 la stringa "ABC"

0 1 2 3 4 5 6 7 8 9 10 11 39
LS P I P P 0

0 1 2 3 4 5 6 7 8 9 10 11 39
LS3 A B C

Esempio:
Assegnazione di un valore variabile carattere ad una variabile LS.

SC3.5=”PLUTO” Assegna alla variabile SC la stringa PLUTO


LS10 = SC3.5 Assegna alla variabile LS di indice 10 la stringa di cinque caratteri SC a partire
dall’indice 3
(DIS,LS10) Visualizza PLUTO
E1=80 Assegna 80 alla variabile E1
LS1=E1 Assegna il contenuto di E1 alla variabile stringa
(DIS,LS1) Visualizza P (carattere ASCII 80).

8.6.4 TIM – Temporizzatore di Sistema


L'istruzione TIM definisce una variabile usata dal programmatore per leggere il tempo indicato dal
temporizzatore del controllo. Il valore della variabile è espresso in secondi.
L'istruzione TIM può essere letta, visualizzata o memorizzata su una variabile di supporto.

Il calcolo di questo valore inizia all'accensione del controllo.

Esempio:
(DIS, TIM)
E10=TIM

NOTA:
Il contenuto della variabile TIM non può essere modificato da part program.

45004606R 250
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.7 @ - Variabili WinPLUS


Dal programma è possibile accedere alle variabili WinPLUS della logica di macchina per operazioni di
scrittura o lettura.

Sintassi

@nome

dove:
nome È il nome della variabile dichiarato nella configurazione AMP.
Esistono tre tipi di variabili WinPLUS:
Short
Booleane
Double

Il sistema dispone di 2000 variabili Short. I nomi delle variabili Short e le corrispondenze con le variabili
WinPLUS sono definiti nell’AMP.
Le variabili Short sono di 16 bit e possono contenere valori tra -32768 e +32767.
Si può indirizzare un singolo bit di una variabile Short usando una variabile Booleana.

Ci sono 256 variabili Booleane, 128 delle quali sono accessibili da programma. I nomi delle variabili
Booleane a cui si può accedere da programma devono essere configurati in AMP.

Il sistema dispone di 1000 variabili Double, tutte accessibili da programma. I nomi delle variabili Double
a cui si può accedere da programma devono essere configurati in AMP.
Il numero di variabili Booleane, Short e Double deve essere configurato in AMP.

I valori di tutte le variabili WinPLUS configurate in AMP sono caricati all'accensione del sistema. Se il
campo "valore" di una variabile non contiene un valore, la variabile non è inizializzata e mantiene il
valore che aveva al precedente spegnimento.
Le variabili WinPLUS sono globali a tutti i processi e sono retentive se non inizializzate, ossia,
mantengono il loro valore anche dopo lo spegnimento del controllo

All'interno di un programma, le variabili WinPLUS possono essere usate:

nei blocchi di assegnazione e nei blocchi di triletterali fra parentesi


E10=@LOG1
(GTO,END,@LOG3=1)

blocchi di movimento o comando


G0 X (@LOG2)
X(@LOG22)
F(@LOG2)
S(@LOG3)
T(@LOG2)(@LOG3)

L'uso di queste variabili è direttamente collegato al PLC. Perciò è responsabilità del


costruttore della macchina utensile fornire una lista delle variabili usate nella sua
applicazione e tutte le informazioni necessarie per il loro corretto impiego.

45004606R 251
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.8 Variabili L
Le variabili L sono del tipo Double a 17 cifre con segno ed un massimo di 17 cifre intere; esse sono 3000
e indicizzate da 0 a 2999.

Sono variabili viste sia dall'ambiente di programmazione che da quello di PLC, pertanto possono essere
utilizzate per la comunicazione tra i due ambienti o in modo separato.

Le variabili L sono globali a tutti i processi e sono ritentive, ossia, mantengono il loro valore anche dopo
lo spegnimento del controllo.

Esempi:
L10 = 26.9570
L15 = (L10*SIN (30)+9)/SQR(81)
(GTO,END,L2=1)
G0XL15
X(L15)
X(L15L1)
FL1
SL1
TL1.L3

L'uso di queste variabili è direttamente collegato al PLC. Perciò è responsabilità del


costruttore della macchina utensile fornire una lista delle variabili usate nella sua
applicazione e tutte le informazioni necessarie per il loro corretto impiego.

45004606R 252
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

8.9 Assegnazioni multiple


Con l'operatore di assegnazione multipla [[ ]] è possibile assegnare ad un certo numero di variabili il
contenuto di altre variabili.
L'assegnazione multipla è accettata solamente per le variabili di tipo numerico.

Sintassi

variabile_destinazione = [[ variabile_sorgente, numero_variabili ]]

dove:
variabile_destinazione È la prima delle variabili di destinazione.
variabile_sorgente È la prima delle variabili sorgenti.
numero_variabili È il numero di variabili da trasferire. Può essere un numero intero od una
variabile locale o di sistema
Esempi:
E0 = [[ SNO,4 ]]
equivale a queste quattro assegnazioni:

E0 = SN0
E1 = SN1
E2 = SN2
E3 = SN3

E100 = 5
E50 = [[LO,E100]]
equivale a queste cinque assegnazioni:

E50 = L0
E51 = L1
E52 = L2
E53 = L3
E54 = L4

45004606R 253
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9. PARAMACRO

9.1 Definizione di paramacro


I sottoprogrammi paramacro sono disponibili per i cicli definiti dall'utente. Vengono richiamati con un
codice numerico costituito da tre cifre.
Le paramacro modali sono attivate solo nei blocchi di movimento che non contengono funzioni M. Se una
paramacro modale è attiva non possono essere programmate altre funzioni o codici.

Sintassi

Gn [par-name-1 valore-1] . . . [par-name-n valore-n] . . . ["string"]

dove:
n È un numero intero compreso tra 100 e 998

par-name-1. . . Possono essere tutte le lettere dell'alfabeto (vedi tabelle di corrispondenza)


par-name-n

valore-1 . . . Può essere un numero o un parametro E o un’espressione parametrica


valore-n

string Stringa di caratteri (max. 99)

Caratteristiche:
Esistono due gruppi di paramacro:
da 100 a G699 Paramacro non modali
da G700 a G998 Paramacro modali

La paramacro G999 effettua il reset delle paramacro modali.


Nelle paramacro vengono utilizzati i parametri H, HF, e HC. Sono disponibili 128 parametri H per
realizzare delle paramacro, suddivisi in tre gruppi:
I parametri da H0 ad H51 sono abbinati a delle lettere e non possono essere utilizzati da
operazioni all'interno di una paramacro (vedere tavola di corrispondenza).
I parametri da H52 ad H59 sono abbinati al passaggio parametri utilizzato dalle funzioni ausiliarie
M utilizzate come paramacro (vedere tavola di corrispondenza).
I parametri da H60 ad H127 possono essere utilizzati da operazioni matematiche all'interno di
una paramacro.
Utilizzando i parametri H nelle paramacro è possibile eseguire le stesse operazioni consentite ai
parametri E.
Le paramacro possono avere fino a 7 livelli di annidamento.
A seconda del tipo di compatibilità ISO definito in AMP le variabili H esisteranno a livello globale o
locale.
Quando le variabili sono di tipo global i parametri H, HF, e HC eventualmente modificati in una
paramacro inferiore cancelleranno i corrispondenti equivalenti parametri H, HF, e HC delle paramacro di
livello superiore.

45004606R 254
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Nel caso di variabili H locali i valori dei parametri H, HF e HC di un livello inferiore non modificheranno i
valori delle corrispondenti variabili H, HF e HC di livello superiore.
Tramite la configurazione del campo di esistenza delle variabili H è anche possibile decidere se nel
passaggio dal livello superiore a quello inferiore i valori delle variabili H vengano azzerati o se invece
ereditino i valori del livello superiore. L’ereditarietà non si applica ai parametri HF
Quando viene programmata una lettera, il parametro HF corrispondente viene posto a 1 (tipo booleano).
Ciò consente di verificare che tutti i parametri della paramacro siano stati programmati.

Esempio:
G300 A1 B2 C3 D4

H0 riceve il valore 1
H1 riceve il valore 2
H2 riceve il valore 3
H3 riceve il valore 4

HF0 è forzato a 1
HF1 è forzato a 1
HF2 è forzato a 1
HF3 è forzato a 1

Tutti gli altri HF vengono posti a zero.

Se G300 effettua la chiamata:


G400 A10 C30,
Il risultato sarà differente a seconda se le variabili H siano configurate come locali o come globali.
Nel caso di variabili H globali H0 avrà valore 10, H2 avrà valore 30, HF0 e HF2 verranno forzati a 1 e tutti
gli altri HF verranno posti a zero. I valori assegnati ad H0 e H2 in G300 vengono perduti.

Nel caso di variabili H locali H0 avrà valore 10, H2 avrà valore 30, HF0 e HF2 verranno forzati a 1 e tutti
gli altri HF verranno posti a zero, H1 avrà il valore 2 e H3 il valore 4. I valori assegnati ad H0 e H2 in
G300 non vengono perduti, al termine dell’esecuzione di G400 tutte le variabili H riprendono il valore
che avevano al momento della chiamata a G400.

Se richiesto, i parametri E (ed anche tutti gli altri tipi di parametri disponibili nel CNC OPEN) possono
essere utilizzati nelle paramacro. Tuttavia, per evitare interazioni con i parametri utilizzati altrove, è
preferibile utilizzare all’interno delle paramacro G solo parametri H.

45004606R 255
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.2 Parametri HC
Se sul blocco di chiamata alla paramacro si specifica anche una stringa di caratteri tra doppi apici,
questa viene resa disponibile alla paramacro nell'array di caratteri HC (100 caratteri).
Se la stringa non è stata specificata, l’intero array HC viene azzerato.

L’array è sempre unico, indipendentemente dal tipo di compatibilità ISO configurato dall’ODM.

Se la stringa è stata programmata, essa viene posta nelle variabili HC con l'aggiunta del terminatore '0';
per questo motivo la lunghezza massima della stringa è di 99, anche se l'array HC è lungo 100 caratteri.

Esempi:
!PROFILO=..........
G600 "PROFILO" A50 ;chiamata a paramacro G600
..
..
;-------------------- nella paramacro .......
(DIS,HC0.10)
(CLS,?HC0.10)

Situazione dei parametri HC dopo la chiamata alla paramacro:

HC0="P" HC1="R" HC2="O" HC3="F" HC4="I" HC5="L" HC6="O" HC7=0


H0=50 HF0=1

La seguente tabella mostra la corrispondenza tra lettere e parametri H.


PARAMETRI PARAMETRI
LETTERA LETTERA
H HF H HF
A H0 HF0 a H26 HF26
B H1 HF1 b H27 HF27
C H2 HF2 c H28 HF28
D H3 HF3 d H29 HF29
E H4 HF4 e H30 HF30
F H5 HF5 f H31 HF31
G H6 HF6 g H32 HF32
H H7 HF7 h H33 HF33
I H8 HF8 i H34 HF34
J H9 HF9 j H35 HF35
K H10 HF10 k H36 HF36
L H11 HF11 l H37 HF37
M H12 HF12 m H38 HF38
N H13 HF13 n H39 HF39
O H14 HF14 o H40 HF40
P H15 HF15 p H41 HF41
Q H16 HF16 q H42 HF42
R H17 HF17 r H43 HF43
S H18 HF18 s H44 HF44
T H19 HF19 t H45 HF45
U H20 HF20 u H46 HF46

45004606R 256
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

PARAMETRI PARAMETRI
LETTERA LETTERA
H HF H HF
V H21 HF21 v H47 HF47
W H22 HF22 w H48 HF48
X H23 HF23 x H49 HF49
Y H24 HF24 y H50 HF50
Z H25 HF25 z H51 HF51

La seguente tabella mostra la corrispondenza tra parametri delle funzioni ausiliarie M utilizzate come
paramacro ed i parametri H.

Parametro PARAMETRI Parametro PARAMETRI


Mcode H HF Mcode H HF
Param1 H52 HF52 Param5 H56 HF56
Param2 H53 HF53 Param6 H57 HF57
Param3 H54 HF54 Param7 H58 HF58
Param4 H55 HF55 Param8 H59 HF59

Esempio 1:
N45 G777 A(E8) R22.5 F(E2) S(E3+5-E1)

E8 viene passato ad H0
22.5 viene passato a H17
E2 viene passato a H5

Il risultato di (E3+5-E1) viene passato ad H18.

In questo esempio i parametri booleani HF0, HF17, HF5 ed HF18 sono posti a 1.

45004606R 257
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:

D = H3 = Diametro maggiore
R = H17= Raggio minore
F = H5 = Velocità di avanzamento

Programma:
Il seguente è un esempio di programmazione di
un'operazione di fresatura/alesatura utilizzando
delle paramacro.
;PROGRAMMA PRINCIPALE
.
.
.
N20 G601 D125 R25 F160
N21 . . .
; PARAMACRO G601
G0 X90 Y80
G92 XY
(GTO,END,HF3=0)
(GTO,END,HF17=0)
(GTO,END,HF5=0)
H67=H3/2
H68=H57-H17
G1 G41 XH17 YH68 F2000
G3 X0 YH67 I0 JH68 FH5
I0 J0
H69=NEG(H17)
G40 XH69 YH68 I0 JH68
G1 X0 Y0 F2000
(GTO,F)
"END"
G99
(DIS,"PARAMETRI OMESSI")
M ..
"F"

45004606R 258
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.3 DAN – Definizione del nome asse


Questo comando permette di modificare il nome di asse di un processo. Il cambio nome sarà logico cioè
il nome asse visualizzato non sarà modificato, ma il vecchio nome non sarà più utilizzabile e sarà
necessario riferirsi all’asse fisico con il nuovo nome.

Sintassi

(DAN,par-ax1 char-ax1[,par-ax12 char-ax12])


(DAN)

dove:
par-ax1 ... par-ax12 Sono i nuovi nomi logici degli assi.
char-ax1 ... char-ax12 Sono i nomi degli assi attualmente attivi.
nessun parametro (DAN) senza parametri disabilita modalità (DAN)

Caratteristiche:
Il comando permette di ridefinire al volo i nomi degli assi, senza far intervenire il meccanismo della
migrazione degli assi.
L’esecuzione del comando non interrompe il continuo.
I nomi assi visualizzati dalla WinNBI non sono modificati dal comando.

Esempio 1:

(DAN,PX,QY,DZ) X,Y,Z vengono sostituiti da P,Q,D quindi X,Y,Z non sono più utilizzabili

Esempio 2:
(DAN,PX,QY,DZ) X,Y,Z vengono sostituiti da P,Q,D quindi X,Y,Z non sono più utilizzabili.
(DAN,WA) A viene sostituito da W inoltre i nomi logici degli assi X, Y, Z vengono rimossi,
quindi P, Q, D
La riprogrammazione di (DAN,...) annulla le precedenti associazioni e, partendo
dalla caratterizzazione iniziale, attiva quelle correnti.

Dopo l’utilizzo del triletterale DAN, nel caso in cui gli assi interessati siano quelli
del piano d’interpolazione, tale piano deve essere ridefinito usando i nuovi nomi.

45004606R 259
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.4 SCRLPAR – Stato scrolling paramacro


Questa variabile definisce il comportamento di default per quanto riguarda lo scrolling e l’esecuzione
delle paramacro (sia di tipo G che di tipo M, S o T).

Sintassi

SCRLPAR = valore

dove:
valore Può valere 0 oppure 1. Con 0 si considera che, per tutte le paramacro, lo scrolling sia
disattivato, mentre con 1 si considera che lo scrolling sia abilitato

Caratteristiche:
Se SCRLPAR vale 0 e se la modalità di esecuzione selezionata è blocco a blocco, allora una paramacro e
le eventuali paramacro e subroutine che questa chiama verranno eseguite con una sola pressione del
tasto di cycle.
Il valore di SCRLPAR è valido per il livello di esecuzione dove è stato assegnato e per i livelli di
esecuzione sottostanti, ma non è possibile mutarlo per i livelli di esecuzione superiori.
Se il livello di esecuzione superiore ha SCRLPAR uguale ad 0, allora la modifica di SCRLPAR è ignorata.
Il valore di default di SCRLPAR è caratterizzato in AMP tramite ODM.

Esempio:
Main program: G302 G303
N1 SCRLPAR=1 N10 GX10Y10 N21 G1X-10Y-10
N2 G302 N11 SCRLPAR=0 N22 SCRLPAR=1
N3 G303 N12 G303

L’esecuzione dei blocchi di part program sarà la seguente


N1 SCRLPAR=1 ; SCRLPAR passa ad 1, nessun effetto
N2 G302 ; ingresso in paramacro, il valore di SCRLPAR viene ereditato, i blocchi
;della paramacro saranno visualizzati
N10 GX10Y10 ;
N11 SCRLPAR=0 ; SCRLPAR passa a 0
N12 G303 ; Ingresso in paramacro, il valore di SCRLPAR viene ereditato, i blocchi
; paramacro non saranno visualizzati
N21 G1X-10Y-10 ; A schermo resta il blocco G303
N22 SCRLPAR=1 ; Poiché SCRLPAR è a 0, l’assegnazione è ignorata. Resta
; visualizzato il blocco G303

N3 G303 ; Ingresso in paramacro, il valore di SCRLPAR del livello di esecuzione


; corrente viene ereditato, i blocchi della paramacro verranno visualizzati
N21 G1X-10Y-10 ;
N22 SCRLPAR=1 ; SCRLPAR resta ad 1

Il triletterale DGM ha precedenza sulla variabile SCRLPAR, quindi una paramacro


contenente tale letterale sarà sempre eseguita con scrolling disabilitato.

45004606R 260
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.5 DGM – Sospensione scrolling


Questo comando sospende lo scrolling a video durante l’esecuzione di una paramacro. Permette anche di
eseguire una paramacro in un solo ciclo di esecuzione.

Sintassi

(DGM)

Caratteristiche:
Il triletterale DGM disattiva la visualizzazione e lo scrolling dei blocchi che costituiscono una paramacro.
Il triletterale ha effetto sulla paramacro che lo contiene e su eventuali paramacro o routines da questa
chiamate.
Se la modalità di esecuzione selezionata è blocco a blocco, allora la paramacro e le eventuali paramacro
e subroutine che questa chiama verranno interamente eseguite con una sola pressione del tasto cycle.

Il triletterale DGM è preso in considerazione soltanto dalle paramacro. Esso è ignorato se


si trova all’interno del part-program o di subroutines.

Il triletterale DGM ha precedenza sulla variabile SCRLPAR, quindi una paramacro


contenente tale letterale sarà sempre eseguita con scrolling disabilitato.

45004606R 261
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

9.6 PMS – S come paramacro / PMT – T come paramacro / PMM – M come paramacro
Questi comandi abilitano e disabilitano la gestione delle relative funzioni ausiliarie S, T, M come
paramacro.
Per maggiori informazioni sulla programmazione di queste paramacro fare riferimento al paragrafo
“funzioni ausiliarie S, T, M eseguite come paramacro” di questo capitolo.

Sintassi

PMS=valore
PMT=valore
PMM=valore

dove:
valore È un valore che può essere:

0 Disabilita la gestione delle funzioni S, T, M come paramacro – tali funzioni vengono


eseguite in modo standard
1 Abilita la gestione delle funzioni S, T, M come paramacro – tali funzioni agganciano
l’esecuzione della corrispondente paramacro

NOTA:
I valori assegnati alle variabili PMS, PMT e PMM possono essere modificati nei seguenti modi:
Tramite ODM all’atto della configurazione
Tramite part program con la sintassi descritta
Il RESET ripristina i valori di caratterizzazione.

9.6.1 Funzioni ausiliarie S, T, M eseguite come paramacro


È possibile agganciare all'esecuzione delle funzioni ausiliare S, T, e M dei sottoprogrammi di tipo
paramacro, ossia, a fronte di un blocco contenente almeno una funzione S, T e/o M, preventivamente
configurata come paramacro, viene eseguito il corrispondente sottoprogramma, con le regole già
attualmente definite per le paramacro.

Sintassi
uguale a quella per le funzioni ausiliarie eseguite in modo standard, con le seguenti limitazioni:
 Nel caso di paramacro legate a funzioni S o T è possibile programmare un solo codice M,
eventualmente con i suoi parametri. Nel caso di paramacro M è invece possibile programmare
altri 3 codici M oltre al codice M paramacro.
 Nel caso di paramacro legate a funzioni T non è possibile utilizzare la programmazione di tipo
multiutensile

45004606R 262
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Paramacro
Ausiliario

S A fronte di una funzione “Sx”, ad es. sul processo “n”, verrà eseguita la paramacro “PnS”
con parametro H18 = x

T A fronte di una funzione “Tx.y”, ad es. sul processo “n”, verrà eseguita la paramacro
“PnT” con parametro H19 = x.y. Vengono definite le seguenti ulteriori variabili per il
passaggio dei parametri, codice utensile e correttore, associati alla programmazione di T:
HI (H Integer) tipo double e relativo flag HFI: contiene il numero intero a sinistra del
punto (codice utensile). Nell’es. HI varrà x
HD (H Decimal) tipo double e relativo flag HFD: contiene il numero intero a destra del
punto (correttore). Nell’es. HD varrà y
HS (H String) di tipo stringa con relativo flag HFS: contiene il ToolName ASCII se
programmato. HS è dimensionata a 40 caratteri ma viene limitata a 32 se usata per la
T

M A fronte di una funzione “Mx”, ad es. sul processo “n”, verrà eseguita la paramacro
“PnMx” con parametro H12 = x. È possibile passare fino ad 8 parametri utilizzando la
seguente sintassi:
Mx[param1 [, param2, …param8]]
Sullo stesso blocco è anche possibile specificare altri 3 codici M, che vanno
preferibilmente programmati dopo il codice M paramacro. Se i codici M non paramacro
sono programmati prima della M paramacro, allora i loro valori devono essere programmati
tramite un’espressione oppure devono corrispondere a una funzione M ausiliaria.

I valori e parametri relativi ai codici M vengono assegnati alle variabili H secondo questo
schema:
Descrizione parametro Variabile H associata
Codice M paramacro H12
Parametri associati alla M paramacro H52H59
Primo codice M non paramacro H60
Paramatri associati al primo codice M non paramacro H6370
Secondo codice M non paramacro H61
Paramatri associati al secondo codice M non paramacro H7178
Terzo codice M non paramacro H62
Paramatri associati al terzo codice M non paramacro H7986

Caratteristiche:
Le funzioni che generano la chiamata a paramacro possono non essere programmate a inizio blocco.
Il nome della paramacro non contiene gli eventuali zeri a sinistra presenti nel numero di processo o
nel codice M. Per esempio il codice M78 eseguito come paramacro sul processo 1 corrisponderà alla
paramacro P1M78 e non alla paramacro P01M0078
Se si ha una programmazione contemporanea di M, S e/o T, il nome della procedura da chiamare è
determinato dalla prima funzione configurata come paramacro, tutte le eventuali altre funzioni
programmate nel blocco vengono passate nei rispettivi parametri H, HF e HC, come descritto
precedentemente in questo capitolo. Per esempio se è configurata sia la M che la T come
paramacro, la programmazione di TxMy genererà la chiamata alla macro PnT mentre la
programmazione di MyTx chiamerà la macro "PnMx" con i parametri H19=x e H12=y per entrambi i
casi.

45004606R 263
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Per l’esecuzione della paramacro in modalità MDI si faccia riferimento al manuale d’uso paragrafo
“Esecuzione di blocchi inseriti da tastiera”
Al termine della paramacro viene ripristinato il modo di esecuzione (MDI, AUTO, STEP) in cui si
trovava il sistema alla sua chiamata.
Il tipo di paramacro in esecuzione può essere letto nella variabile SW21, ed è pari a:
 1000 per paramacro chiamata dalla funzione S
 2000 per paramacro chiamata dalla funzione T
 3xxx per paramacro chiamata dalla funzione Mxxx

Il pathname da utilizzare per il richiamo delle paramacro può essere dichiarato anche tramite il
triletterale PTH descritto più avanti in questo capitolo. Se il pathname è omesso la ricerca del
direttorio di appartenenza della subroutine avviene secondo la seguente modalità:
1. caso: non è stato specificato nessun pathname tramite PTH.
Il sistema cerca la paramacro nel direttorio in cui si trova il programma chiamante e, se qui non
esiste, la cerca nei direttori di default specificati in AMP.
2. caso: è stato specificato un pathname tramite l'istruzione PTH.
Il sistema cerca la paramacro nel direttorio specificato con PTH e, se qui non esiste, la cerca nei
direttori di default configurati.

Configurazione: esistono tre variabili di processo (PMM, PMS, PMT definite precedentemente) che se
a1/0 abilitano/disabilitano a livello generale l’esecuzione delle corrispondenti funzioni
come paramacro. Inoltre, per la specifica funzione ausiliaria M, esiste ancora un
opportuno bit, definito in ODM, che ne identifica l'esecuzione come paramacro.
Quindi, se PMM è a 1 e la funzione “Mx”:
è configurata nel processo “n” ma il suo bit è a 0 non viene eseguita la
paramacro (esecuzione di Mx standard)
è configurata nel processo “n” e il suo bit è a 1 viene eseguita la paramacro
“PnMx”
non è configurata nel processo “n” viene visualizzato errore di “M non definita”

Esempio:
Esecuzione del seguente blocco sul processo 1 nel quale è configurata la funzione ausiliaria M2 con il bit
di paramacro abilitato

N20 X10 M2 T1.20 S2000


PMM PMT PMS Nome paramacro Parametri
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 =
1 1o0 1o0 P1M2 2000 e HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1;
HFD = 1; HF18 = 1
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 =
0 1 1o0 P1T 2000 e HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1;
HFD = 1; HF18 = 1
H23 = 10; H12 = 2; H19 = 1.2; HI = 1; HD = 20 H18 =
0 0 1 P1S 2000 e HF23 = 1; HF12 = 1; HF19 = 1; HFI = 1;
HFD = 1; HF18 = 1

45004606R 264
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio:
Esecuzione del seguente blocco sul processo 1 nel quale è configurata la funzione ausiliaria M42 con il bit
di paramacro abilitato

PMM = 1
N30 X10 M42 T50 M45[12]

X10 H23 = 10 HF23 = 1


M42 H12 = 42 HF12 = 1
T50 H19 = 50 HF19 = 1
HI = 50 HFI = 1
HD = 0 HFD = 1
HS = “50” HFS =1
M45[12] H60 = 45 HF60 = 1
H63 = 12 HF63 = 1

Esempio:
Esecuzione del seguente blocco sul processo 1 nel quale la variabile PMT è stata posta a uno
T"ToolName".20 viene chiamata la paramacro P1T con i parametri: H19=0.2, HF19=1; HFI = 0; HD =
20 e HFD = 1; HS =" ToolName" e HFS = 1

Un esempio di come sviluppare le relative paramacro è il seguente:


;PARAMACRO P1M2 ;PARAMACRO P1T ;PARAMACRO P1S
E0 = H12 E1 = H19 E2 = H18
PMM = 0 PMT = 0 PMS = 0
ME0 TE1 SE2
"TEST_M" "TEST_M"
"TEST_T" (GTO,TEST_S,HF12=0) (GTO,TEST_T,HF12=0)
(GTO,TEST_S,HF19=0) E0 = H12 E0 = H12
E1 = H19 PMM = 0 PMM = 0
PMT = 0 ME0 ME0
TE1 "TEST_S" "TEST_T"
"TEST_S" (GTO,END,HF18=0) (GTO,END,HF19=0)
(GTO,END,HF18=0) E2 = H18 E1 = H19
E2 = H18 PMS = 0 PMT = 0
PMS = 0 SE2 TE1
SE2 "END" "END"
"END"

45004606R 265
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10. MODIFICA DELLA SEQUENZA DI ESECUZIONE DEL


PROGRAMMA

10.1 Generalità
Questo capitolo descrive i comandi che consentono al programmatore di modificare l'ordine di
esecuzione di un part-program e di disattivarne o sospenderne l'esecuzione. Questi comandi vengono
usati per:

ripetere parti di programma


eseguire sottoprogrammi
modificare il flusso del programma
impostare tempi di attesa
rilasciare il programma o sospenderne l'esecuzione

10.1.1 Comandi per la ripetizione di parti di programma


I comandi in questa classe sono:
COMANDO FUNZIONE
RPT Apre la ripetizione di una serie di blocchi di programa
ERP Chiude la ripetizione di una serie di blocchi di programma

Questi comandi permettono ad una serie di blocchi di programma di essere eseguiti più volte. Possono
essere usati per lavorazioni ripetitive quali la perforazione di fori multipli.

10.1.2 Comandi per l'esecuzione di sottoprogrammi


I comandi di questa classe sono:
COMANDO FUNZIONE
CLS,CLD,CLT Chiama una subroutine per l'esecuzione
$(nome) Chiama una subroutine per l'esecuzione
PTH Dichiara e attiva il pathname di default per le subroutine

Una subroutine è una sequenza di blocchi che definisce un ciclo di lavorazione. La subroutine è
memorizzata come un file separato con nome file proprio. Il controllo esegue i blocchi della subroutine
ogni volta che vengono invocati con il comando CLS, CLD o CLT. La subroutine può essere chiamata in
qualunque momento da qualunque punto del programma principale.

45004606R 266
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.1.3 Comandi per la modifica del flusso del programma


I comandi di questa classe sono:
COMANDO FUNZIONE
EPP Esegue una parte di un part-program delimitata da una o due etichette
EPB Esegue un blocco di un part-program
GTO Effettua un salto durante l'esecuzione del programma
IF ELSE ENDIF Esegue sessioni di part program in modo condizionato

Il comando GTO fa sì che l'esecuzione di un programma salti ad un blocco che contiene un'etichetta
specifica. Un salto può essere incondizionato o condizionato dai parametri E, dai segnali logici della
macchina o da valori numerici.
I salti condizionati vengono effettuati solo se il risultato del confronto è vero. Non si effettua alcun salto
se il confronto è falso.
I comandi IF, ELSE, ENDIF permettono di condizionare e modificare il flusso di esecuzione del part
program senza necessità di definire etichette e salti.

10.1.4 Comandi di ritardo esecuzione programma e di disabilitazione di blocchi barrati


I comandi di questa classe sono:
COMANDO FUNZIONE
DLY Causa un ritardo nell'esecuzione del programma
DSB Disabilita i blocchi barrati

Il comando di ritardo può essere usato per ritardare l'esecuzione del programma per scopi di
sincronizzazione. Il comando di disabilitazione blocchi barrati permette di scegliere se eseguire o meno i
blocchi barrati.

10.1.5 Comandi per il rilascio e la sospensione dell'esecuzione del programma


I comandi di questa classe sono:
COMANDO FUNZIONE
REL Rilascia il part program
WOS Mette il programma in attesa di un segnale

10.1.6 Comandi per la modifica dell’esecuzione in semi auto


I comandi di questa classe sono:
COMANDO FUNZIONE
STPMOV Passa dalla modalità semi-auto blocco a blocco alla modalità semi-
auto movimento a movimento

STPMOV è una variabile che permette di modificare il comportamento del controllo numerico quando è
attiva la modalità semi-auto

45004606R 267
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.2 RPT e ERP - Comandi per la ripetizione di parti di programma


I comandi RPT e ERP definiscono una parte di programma che deve essere ripetuta un numero specificato
di volte. La serie di blocchi comincia con il comando RPT e termina con il comando ERP.

Sintassi

(RPT,n)
.
.
.
blocchi
.
.
.
(ERP)

dove:
n È il numero di ripetizioni della parte di programma. Deve essere un numero intero
compreso tra 1 e 65535. Si può programmare direttamente con un numero o
indirettamente con un parametro E. Il controllo accetta cinque livelli di annidamento.

blocchi È una serie di blocchi che deve essere eseguita n volte.

L'istruzione "GTO" può essere programmata all'interno di una sessione di RPT-EPP, ma se


a fine programma non sono stati eseguiti tutti i cicli programmati con RPT il sistema
ritorna il seguente errore:
"23/166 RPT/EPP APERTI A FINE PROGRAMMA"

Esempio 1:
Y

80 80

40
20
30
20

20

20 X

45004606R 268
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Programma:

(DIS,"N.3 CAVE")
(DIS,"FRESA D12")
N1 S600 T6.6 M6
N2 (RPT,3)
N3 X40 Y35 M3
N4 Z2
N5 (RPT,2)
N6 G91 Z-8
N7 G90 G1 G41 X40 Y20 F300
N8 X60
N9 Y50
N10 X20
N11 Y20
N12 G40 X40
N13 Y35 F1000
N14 (ERP)
N15 G Z2
N16 (UIO,X80,Y20)
N17 (ERP)
N18 (UAO,0)
N19 Z20
N20 X Y M30

Esempio 2:
Questo esempio illustra come vengono annidati tre livelli di ripetizione.
(RPT, 8)
(RPT,
10)
(RPT, 5)
1 2 3
(ERP)
(ERP)
(ERP)

45004606R 269
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.2.1 Lavorazione di fori equidistanti


Il seguente è un esempio di comando di ripetizione usato per la lavorazione fori equidistanti.

Programma:
(DIS,"FORI EQUIDISTANTI")
N1 F200 S900 T1.1 M6
N2 G81 R5 Z-10 M3
N3 X10 Y10
N4 (RPT,7)
N5 G91 X10
N6 (ERP)
N7 Y40
N8 (RPT,7)
N9 X-10
N10 (ERP)
N11 G80 G90 XY M5

10.2.2 Lavorazione con tagli di sgrossatura e finitura


Il seguente è un esempio di comandi di ripetizione usati per la lavorazione con una passata di sgrossatura
e una di finitura.

45004606R 270
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Programma:
(DIS,"DEFINIZIONE DI SOVRAMETALLO")
N1 S350 T6.6 M6
N2 X60 Y M3
N3 Z-50
N4 MSA=0.5
N5 (RPT,2)
N6 G1 G41 X60 Y60 F500
N7 G3 Y-60 I60 J
N8 G1 X100
N9 G3 Y60 I100J
N10 G1 G40 X60
N11 MSA=0
N12 (ERP)
N13 GZ20 M5
N14 X Y M30

45004606R 271
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.3 Comandi per l’esecuzione di sottoprogrammi


10.3.1 CLS – CLD – CLT - $() – Chiamata di subroutine
I comandi CLS, CLD, e CLT e $() richiamano l'esecuzione di una subroutine cioè di un programma
separato memorizzato in un file. Tali comandi possono essere eseguiti dal un programma principale o da
un'altra subroutine. Si possono avere sino a sette livelli di annidamento.

CLS Chiamata a subroutine Statica: analizzata all'atto dell'attivazione del part program
principale
CLD Chiamata a subroutine Dinamica: analizzata durante l'esecuzione del part program e soltanto
al momento della prima chiamata
CLT Chiamata a subroutine Temporanea: analizzata durante l'esecuzione del part program ogni volta
che viene incontrata la sua chiamata
$( ) Chiamata a subroutine Statica: analizzata all'atto dell'attivazione del part program
principale

Sintassi

(CLS,nome [, parametro1 [, parametro2 …[, parametro52 ]…])


(CLD,nome [, parametro1 [, parametro2 …[, parametro52 ]…])
(CLT,nome [, parametro1 [, parametro2 …[, parametro52 ]…])
$(nome) ([, parametro1 [, parametro2 …[, parametro52 ]…])

dove:
nome è il nome del file della subroutine.
Può essere specificato tramite una stringa di caratteri maiuscoli, oppure tramite una
variabile stringa preceduta dalla chiave "?" (punto interrogativo).

Il parametro può contenere il solo nome file oppure il percorso del file compreso di drive
logico.
Si hanno a disposizione 127 caratteri alfanumerici in totale per specificare il nome file,
comprensivo di percorso ed eventuale estensione. Per maggiori dettagli su come
specificare il nome file si faccia riferimento al paragrafo “I file di programma” del capitolo
1 di questo manuale.
parametro1
parametro52 elenco dei parametri (opzionali) passati alla subroutine. I parametri possono essere
programmati direttamente con un valore decimale, tramite un’espressione algebrica o
tramite una variabile di sistema o locale. Tali valori saranno disponibili all’interno di
variabili di tipo H. è possibile specificare fino a 52 parametri.

45004606R 272
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

NOTE:
Se nome è una variabile stringa preceduta dalla chiave "?" la subroutine non viene analizzata
all'atto dell'attivazione del part program principale ma solo durante l'esecuzione dello stesso.
Questo comporta che se la subroutine è stata chiamata attraverso il triletterale:
 CLS o $(): tale subroutine non debba contenere istruzioni di salto
 CLD o CLT: la subroutine può contenere istruzioni di salto in quanto analizzate run time
Il pathname da utilizzare per il richiamo delle subroutine può essere dichiarato anche tramite il
triletterale PTH descritto più avanti in questo capitolo. Se il pathname nella chiamata a
subroutine è omesso, la ricerca del direttorio di appartenenza della subroutine avviene secondo
la seguente modalità:
1. caso: non è stato specificato nessun pathname tramite PTH.
Il sistema cerca la subroutine nel direttorio in cui si trova il programma chiamante e, se
qui non esiste, la cerca nei direttori di default definiti in fase di caratterizzazione della
macchina.
2. caso: è stato specificato un pathname tramite l'istruzione PTH.
Il sistema cerca la subroutine nel direttorio specificato con PTH e, se qui non esiste, la
cerca nei direttori di default definiti in fase di caratterizzazione della macchina.
Il numero di sottoprogrammi e label “statici” gestito dal controllo dipende dai corrispondenti
valori configurati in AMP. In caso di tabelle piene viene attivata una procedura di gestione della
memoria che va a liberare, dove è possibile, le tabelle dalle subroutine dinamiche e delle
paramacro, compattando quelle statiche ($() e CLS). Ogniqualvolta non sia più possibile liberare
spazio in memoria viene visualizzato il messaggio di tabelle piene e il sistema si pone nelle
stesse condizioni di errore che si avrebbero durante una selezione del part program. L'operatore
può quindi procedere modificando il partprogram o aumentando i limiti massimi per le tabelle.
Il fatto di non bloccare l'esecuzione di un programma a fronte di tabelle piene, grazie al
compattamento della memoria, va a scapito di un rallentamento nell'esecuzione del programma
dovuto alla eventuale successiva fase di analisi; fase peraltro inevitabile in caso di errore
bloccante.
Il superamento della fase di attivazione di un programma non dà la garanzia che questo poi
venga eseguito senza errori di memoria piena. Questo, ad es., è il caso di una CLD che chiama un
numero tale di CLS o $() da riempire le tabelle.
Rieseguire un programma principale può generare il messaggio di tabelle piene anche se la
prima volta (dopo la sua attivazione) è stato eseguito interamente. Questo perché dopo
l'attivazione di un programma le tabelle non contengono i nomi files e le labels di subroutine
statiche chiamate da subroutine dinamiche o temporanee.
L’ordine di chiamata ad una stesso nome di programma attraverso triletterali di tipo differente
(ad es. CLT prima e CLS dopo) può generare il messaggio di etichetta sconosciuta; messaggio che
può essere ovviato sostituendo la chiamata CLS con una chiamata CLD.
La modifica run time di una subroutine, senza la successiva riattivazione del programma
principale, verrà interpretata solo se la sua chiamata sarà effettuata tramite CLT; in caso
contrario verrà rieseguita quella precedentemente analizzata con conseguenze imprevedibili
sull’esecuzione del programma.
I parametri opzionali di chiamata di una subroutine vengono assegnati a variabli tipo H. Il
parametro di posizione N viene mappato sulla variabile H di indice N-1. È possibile programmare
fino a 52 parametri opzionali.

Esempio 1:
(CLS, DRIVEUSER\PROGRAM.PRG) ;chiamata a subroutine con path logico

45004606R 273
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:
(CLS,PROGRAM.MIO) ;chiamata a subroutine diretta

Esempio 3:
Di seguito è riportato un esempio di chiamata a una subroutine, non è specificato un path con PTH.
Programma principale Subroutine P800 ;viene ricercata nel direttorio in cui risiede il
programma principale e nei direttori di
default configurati in AMP

N16 . . .
N17(CLS,P800) N500. . .
N18. . . N501. . .
.. N502. . .
N67(CLS,P800) N503 . . .
N68 . . .

Esempio 4:
Sequenza di esecuzione di quattro subroutine annidate.

MAIN PROGRAM

........... SUBROUTINE 1
...........
(CLS,SUB1) ...........
SUBROUTINE 2
...........
...........
(CLS,SUB2) ...........
SUBROUTINE 3
........... ...........
(CLS,SUB3) ...........
SUBROUTINE 4
........... ........... ........... ...........

........... ........... (CLS,SUB4) ...........

........... ...........

...........
...........

...........
...........

Esempio 5:
Chiamata alla subroutine specificata in modo implicito
SC0.5="PIPPO"
(CLS,?SC0.5)

45004606R 274
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 6:
Uso di subroutine per più operazioni di foratura.

15 60
50

20
X
20
25

15

30

Programma principale:

N19 (DIS,"...")
N20 S2000 F180 T2.02M6
N21 (UTO,1,X-20,Y-25)
N22 (CLS,S600) Subroutine S600
N23 (UTO,1,X-15,Y50) N501 G81 R-108 Z-130 M3
N24 (CLS,S600) N502 XY
N25 (UTO,1,X60,Y20) N503 Y-15
N26 (CLS,S600) N504 X30
N27 Z0 N505 Y0
N506 G80

45004606R 275
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 7:
Esecuzione di un profilo parabolico usando un sottoprogramma parametrizzato.
Programma principale:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 E30=72.795 ;Valore iniziale di X
N40 E31=24.28 ;Lunghezza focale
N50 E32=2 ;Incremento di Y
N60 E33=108.24 ;Valore iniziale di Y
N70 E34=0 ;Valore finale di Y
N80 GX0 Y120
N90 (CLS,PAR)

Sottoprogramma PAR:
;N500 PAR
;N501 Sottoprogramma parametrizzato: esecuzione completa di parabola.
N502 G1 G42 XE30 YE33
N503 E36 = E33
"START" N504
N505 E36=E36-E32
N506 (GTO,END,E36<E34)
N507 E35=SQR( 2*E31*ABS(E36))
N508 XE35 YE36
N509 (GTO,START)
"END" N510
N511 E35=SQR (2*E31*ABS(E34))
N512 XE35 YE34
;N513 Seconda parte della parabola
1
N514 E42=E32 0
N515 E43=E34 0
N516 E44=E33
N517 XE35 YE43
"START2" N518
N519 E43=E43+E42
N520 (GTO,END2,E43>E44)
N521 E35= -(SQR (2*E31*ABS(E43)))
N522 XE35 YE43
N523 (GTO,START2) -100
"END2" N524 -100 100
N525 E35= - (SQR(2*E31*ABS(E44)))
N526 G40 XE35 YE44
N527 GX0

45004606R 276
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 8:
Chiamata alla subroutine dinamica, specificata in modo implicito con sottoprogramma PAR dell’esempio
precedente

Programma principale:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 E30=72.795 ;Valore iniziale di X
N40 E31=24.28 ;Lunghezza focale
N50 E32=2 ;Incremento di Y
N60 E33=108.24 ;Valore iniziale di Y
N70 E34=0 ;Valore finale di Y
N80 GX0 Y120
SC0.5="PAR"
(CLD,?SC0.5)

45004606R 277
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 9:
Esecuzione del profilo parabolico dell’esempio 5 tramite passaggio diretto di parametri al
sottoprogramma.

Programma principale:
;N10 MAIN PAR
N20 T1.1M6 S1000 M3 F700
N30 GX0 Y120
N40 (CLS,PAR, 72.795, 24.28, 2, 108.24,0)
Sottoprogramma PAR:
;N500 PAR
;N501 Sottoprogramma parametrizzato: esecuzione completa di parabola.
N502 G1 G42 XH0 YH3
N503 E36 = H3
"START" N504
N505 E36=E36-H2
N506 (GTO,END,E36<H4)
N507 E35=SQR( 2*H1*ABS(E36))
N508 XE35 YE36
N509 (GTO,START)
"END" N510
N511 E35=SQR (2*H1*ABS(H4))
N512 XE35 YH4
;N513 Seconda parte della parabola
1
N514 E42=H2
0
N515 E43=H4 0
N516 E44=H3
N517 XE35 YE43
"START2" N518
N519 E43=E43+E42
N520 (GTO,END2,E43>E44)
N521 E35= -(SQR (2*H1*ABS(E43)))
N522 XE35 YE43
N523 (GTO,START2)
"END2" N524 -100
N525 E35= - (SQR(2*H1*ABS(E44))) -100 100
N526 G40 XE35 YE44
N527 GX0

45004606R 278
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.3.2 PTH – Dichiarazione del pathname di default


Il comando PTH dichiara il pathname da utilizzare come default nelle chiamate a subroutine e
paramacro.

Sintassi

(PTH,modo [,pathname])

dove:
modo modo può assumere i seguenti valori:
0 = Viene assunto come pathname di default il path del programma principale.
1 = Dichiara il path da utilizzare a fronte di una istruzione (PTH,2).
Questa modalità può essere utile se nel part program deve essere richiamato più volte,
tramite (PTH,2), un pathname definito inizialmente con (PTH,1,pathname).
2 = Attiva il path specificato nell'istruzione oppure, se non specificato, quello dichiarato in
precedenza con un'istruzione (PTH,1,pathname).

pathname Percorso logico da dichiarare come path; tale parametro è opzionale. Non essendo un
indirizzo fisico deve contenere un DRIVE logico la cui associazione con il path fisico è stata
fatta in AMP in fase di caratterizzazione della macchina.

NOTA:
Il pathname dichiarato tramite il triletterale PTH viene mantenuto anche dopo un RESET del processo nel
quale è stato programmato.

45004606R 279
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.4 Comandi per la modifica del flusso del programma


10.4.1 EPP – Esecuzione di una porzione di programma
Il comando EPP consente di eseguire una porzione di un programma delimitata da uno o due blocchi con
campi etichetta.

Sintassi

(EPP,etichetta1,[etichetta2])

dove:
etichetta1 Campo etichetta del primo blocco da eseguire. Un'etichetta è una stringa lunga al massimo
quaranta caratteri. Può essere specificata direttamente tramite una stringa di caratteri
(non racchiusa tra apici) o tramite una variabile stringa preceduta dal carattere ‘?’. I
caratteri permessi nelle etichette sono descritti nel capitolo 2.2.

etichetta2 Campo etichetta dell'ultimo blocco della parte di programma che si vuole eseguire.
Un'etichetta è una stringa alfanumerica lunga al massimo quaranta caratteri. Può essere
specificata direttamente tramite una stringa di caratteri (non racchiusa tra apici) o
tramite una variabile stringa preceduta dal carattere ‘?’. I caratteri permessi nelle
etichette sono descritti nel capitolo 2.2.

Caratteristiche:
In un blocco l'etichetta va programmata tra doppi apici (per esempio "LABEL") mentre in un comando EPP
le etichette vanno dichiarate senza doppi apici. Il sistema accetta fino a cinque livelli di annidamento.

Il ritorno all’esecuzione del blocco successivo al comando EPP dipende dalla presenza di etichetta2:

 Presente: il flusso di esecuzione riprenderà dal blocco successivo al comando EPP dopo
aver incontrato etichetta2

 Assente: il ripristino del flusso di esecuzione avverrà dopo aver eseguito un blocco
contenente un codice M di uscita subroutine (tipicamente un codice M02); se
non è presente alcun codice M di uscita subroutine, allora l’esecuzione del
part program terminerà senza errori e non si avrà ritorno al blocco
successivo a EPP

In una contornitura, questa prestazione può essere utilizzata, ad esempio, per richiamare in fase di
finitura un profilo programmato per la fresa di sgrossatura. È chiaro che in fase di sgrossatura va
programmato un sovrametallo di finitura con il codice MSA.
In operazioni di punto-punto è possibile programmare tutti i punti su cui avviene ad esempio la
centrinatura e successivamente richiamare per gli utensili di foratura, barenatura, ecc. solo i punti
interessati. Il comando EPP può essere usato per eseguire un'operazione completa di lavorazione a più
orientamenti sul piano di interpolazione attivo.

45004606R 280
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 1:
.
.
.
"START"N25 Primo blocco con etichetta
.
. Qui non si può richiamare un EPP
.
"END"N100 Ultimo blocco con etichetta
.
.
.
N150 (EPP,START,END) Comando EPP che specifica le etichette. Il controllo esegue i blocchi da
N25 a N100, quindi riprende l'esecuzione dal blocco che segue il blocco del
comando EPP,N150.
Si determina la condizione di errore "23/165 ANNIDAMENTO DI EPP MAGGIORE DI 5" se si
annidano più di cinque istruzioni EPP. L'istruzione GTO può essere programmata nella porzione
di part-program descritta da EPP, ma se a fine programma non è stata trovata l'etichetta che
chiude l'esecuzione di EPP il sistema ritorna l'errore "23/166 RPT/EPP APERTO A FINE
PROGRAMMA"

45004606R 281
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 2:
Come usare il comando EPP in un'operazione di centrinatura:

Programma:

N1 (DIS,"CENTRINATURA")
N2 F300 S2000 T1.1 M3 M6
N3 G81 R0 Z-3
"D6" N4
N5 X100 Y100
N6 X-100
N7 Y-100
N8 X100
"D10" N9
N10 X40 Y40
N11 X-40
N12 Y-40
N13 X40
"FINE" N14
N15 G80
N16 (DIS,"PUNTA D6")
N17 F200 S1800 T2.02 M3 M6
N18 G81 R Z-22
N19 (EPP,D6,D10)
N20 G80
N21 (DIS,"PUNTA D10")
N22 F220 S1600 T3.3 M3 M6
N23 G81 R Z-24
N24 SC0.3 = “D10”
N25 (EPP,?SC0.3,FINE)
N26 G80

45004606R 282
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.4.2 EPB – Esecuzione di un blocco di part program


Il triletterale EPB permette di eseguire un blocco di part program .
L’esecuzione può essere condizionata dal risultato di un confronto specificato nel comando; se la
condizione non è soddisfatta, si può definire un blocco di part program alternativo da eseguire.

Sintassi

(EPB, blocco1 [ , condizione [ , blocco2] ] )

dove :
blocco1 È il blocco di part program che verrà eseguito se la condizione specificata è stata
soddisfatta. Può essere una stringa tra apici o una variabile di tipo carattere, locale o di
sistema.

condizione Condizione, opzionale, che deve essere vera perché sia effettuato il blocco blocco1. La
condizione può essere un’espressione di tipo algebrico-logico oppure un confronto diretto
tra due stringhe. Le stringhe possono essere sia di tipo costante racchiuse tra apici
(semplici o doppi) che variabili di tipo stringa.

blocco2 È il blocco di part program che verrà eseguito solo se la condizione specificata per
l’esecuzione di blocco1 non è stata soddisfatta. È un parametro opzionale.
Può essere una stringa tra apici o una variabile di tipo carattere, locale o di sistema.

Caratteristiche:
Se par1 ,operatore e par2 non sono stati specificati, il programma esegue sempre il blocco blocco1.
È accettato dal sistema un solo livello di annidamento del triletterale EPB.

Esempio:
(EPB, “(EPB,’E1=1’)”) : accettato dal sistema
(EPB, “(EPB,’(EPB,SC0.100)’ )”) : NON accettato dal sistema (ERRORE DI FORMATO)

I blocchi di part program specificati nel triletterale EPB non vengono analizzati in fase di attivazione del
part program, per cui è cura del programmatore far sì che questi blocchi non creino malfunzionamenti al
part program.

45004606R 283
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempi:

(EPB,”(CLS,SUBROUT)”) : il sottoprogramma SUBROUT non viene preanalizzato in


fase di attivazione, non potrà quindi contenere istruzioni
di salto (GTO).

(EPB,’ “LABEL” ’) : la label LABEL non verrà inserita nella tabella label
del part program.)

(EPB, “ ( DIS, E1)” ) : equivale al blocco (DIS, E1)

SC0.30= ” E1 =10”
(EPB, SC0.30) : equivale al blocco E1=10

SC40.30 = “# X10”
(EPB, SC40.30) : equivale al blocco #X10

(EPB,”(CLS,SUBROUT)”,E1=34) : chiama il sottoprogramma SUBROUT solo se E1=34

(EPB,” E1=100”, SN1=25,” E1=0”) : assegna 100 ad E1 solo se SN1=25 , altrimenti


assegna 0 ad E1

(EPB,”(EPP,LAB1,LAB2)“,SC0.2=“OK”,“(EPP,LAB3,LAB4)“) : esegue dalla label LAB1


alla label LAB2 se SC0.2
e’ uguale a OK altrimenti
esegue dalla label LAB3
alla label LAB4.

(EPB, “( EPB,’ E1 = 2’, E0 < 100)”, E0 > 70 ) : assegna 2 ad E1 solo se


E0 e’ compreso tra 70 e
100.

(EPB,“ ( EPB,’ E0 = 5’, E0 < 5) ",E0 < 10,E0=10) : assegna ad E0 il valore 5


se E0<5; assegna ad E0 il
valore 10 se E0>10.

Se 5<E0<0, E0 rimane invariata.

45004606R 284
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.4.3 GTO – Comando di salto


Il comando GTO esegue un salto ad un blocco identificato con un'etichetta.
Il salto può essere condizionato dal risultato di un confronto specificato nel comando.

Sintassi

(GTO,etichetta [,condizione])

dove:
etichetta Etichetta del blocco di programma a cui saltare. Un'etichetta è una stringa costituita da un
massimo di sedici caratteri alfanumerici. Nel blocco in cui vi è l'etichetta, essa deve essere
tra doppi apici, invece in questo contesto, l'etichetta deve essere programmata senza
apici. L'etichetta può inoltre essere specificata con una variabile di tipo carattere
preceduta dalla chiave "?" (punto interrogativo).

condizione Condizione, opzionale, che deve essere vera perché sia effettuato il salto verso
l’etichetta. La condizione può essere un’espressione di tipo algebrico-logico oppure un
confronto diretto tra due stringhe. Le stringhe possono essere sia di tipo costante
racchiuse tra apici (semplici o doppi) che variabili di tipo stringa.

Caratteristiche:
Se non è stata specificata alcuna condizione, il programma salta sempre al blocco descritto
dall’etichetta.

La condizione può essere un’espressione logico-aritmetica oppure essere un confronto tra stringhe.

L'etichetta su cui posizionare il part program può essere espressa anche con una variabile locale o di
sistema (preceduta dalla chiave ?).
Ciò permette di semplificare i part program con un elevato numero di blocchi programmati per
modificarne il flusso di esecuzione.
In particolare, programmando l'etichetta con una variabile, è possibile programmare una etichetta di
default, chiamandola "DEFLAB": il part program si posiziona su di essa se l'etichetta contenuta nella
variabile non esiste.

45004606R 285
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 1:
;SC0.3 contiene l'etichetta su cui posizionarsi
(GTO,?SC0.3)
"UNO"
.
.
.
.
"DUE"
.
.
.
.
"TRE"
.
.
.
"DEFLAB"
.
.
.
Se SC0.3 non contiene "UNO", "DUE", o "TRE" il part program si posiziona sul blocco "DEFLAB".
Se l'etichetta "DEFLAB" non fosse programmata verrebbe visualizzato l'errore "23/156 Etichetta
indefinita" e l'esecuzione del part program verrebbe interrotta.

Esempio 2:
N01 (GTO,START) salto incondizionato all'etichetta "START"
N10 (GTO,END,E1 > 123) salto ad "END" se il valore di E1 è maggiore di 123
N20 (GTO,LAB1,@COOLANT= 1) salto a "LAB1" se la variabile WinPLUS @COOLANT è attivata
N30 (GTO,START,E1 <> E5) salto a "START" se il valore di E1 è diverso da quello di E5
N40 (GTO,LAB1,SC1.2H = "OK") salto a "LAB1" se i due caratteri che iniziano con SC1 sono uguali ad
OK
N50 SC1.3="ABC" prepara la variabile per blocco successivo
N60 (GTO,?SC1.3) salto alla label ABC

Esempio 3:
L'istruzione:
(GTO,END,SC2.3H = "ABC")
se i tre caratteri a partire da SC2 sono ABC il programma salta all'etichetta "END".

NOTA
Nel comando di salto i caratteri da confrontare vanno programmati tra doppi apici.

45004606R 286
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 4:
Esempio di uso di salto condizionato per la fresatura di una cava.

Programma:
N1 (DIS,"FRESATURA CAVA")
N2 F500 S2000 T1.1 M3 M6
N3 E31=-3.5
N4 E32=-24
"START"
N6 G X Y-10
N7 Z(E31)
N8 G1 G42 X Y-20
N9 X-30
N10 Y20
N11 X30
N12 Y-20
N13 G40 X
N14 Y-10
"END"
N16 E31=E31-3.5
N17 (GTO,START,E31>E32)
N18 E31=-25
N19 (EPP,START,END)
N20 G Z10

45004606R 287
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempio 5:

Uso di salto condizionato per l'esecuzione di una filettatura cilindrica.

E30 = Diametro 1^ passata


E31 =Incremento della profondità di passata
(diametrale)
E32 = Diametro di ritorno
E33 = Diametro finale

Programma:
N1 (DIS,"FILETTATURA DIAMETRO 60")
N2 S150 T5.5 M6
N3 G0 X66 Y98 Z5 M3
N4 E30=56.8
N5 E31=0.5
N6 E32=50
N7 E33=60
"I" N8
N9 G0 Z5
N10 U(E30)
N11 G33 Z-45 K3
N12 GU(E32)
N13 E30=E30+E31
N14 (GTO,F,E30>E33)
N15 (GTO,I)
"F" N16
N17 GU(E32)
N18 Z5
N19 U(E33)
N20 G33 Z-45 K3
N21 GU(E32)
N22 Z20

45004606R 288
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.4.4 IF ELSE ENDIF


Il comando IF permette di aprire una sessione di part program che verrà eseguita solo se la condizione
specificata nel comando è vera. Questa sessione di part program deve terminare con il comando ENDIF:
al suo interno può contenere opzionalmente il comando ELSE che delimita, fino al comando ENDIF una
sessione di part program che verrà eseguita se la condizione specificata nel comando IF non è vera.

Sintassi

(IF, condizione)
.
blocchi
.
(ELSE)
.
blocchi
.
(ENDIF)

dove :
condizione È la condizione necessaria per l’esecuzione del ciclo IF-ELSE. La condizione può essere
un’espressione di tipo algebrico-logico oppure un confronto diretto tra due stringhe. Le
stringhe possono essere sia di tipo costante racchiuse tra apici (semplici o doppi) che
variabili di tipo stringa.
blocchi È una serie di blocchi che deve essere eseguita.

Caratteristiche:
Se la condizione specificata nel comando IF è vera i blocchi specificati fino al comando ELSE (se
presente) o fino al comando ENDIF (se ELSE non è presente) verranno eseguiti, altrimenti verranno
ignorati. La condizione può essere un’espressione logico-aritmetica oppure essere un confronto tra
stringhe. I blocchi compresi tra il comando ELSE e il comando ENDIF verranno eseguiti solo se la
condizione specificata nel comando IF non è vera .Si possono annidare fino a 32 livelli di cicli IF ELSE
ENDIF. Ad ogni comando IF deve corrispondere un comando ENDIF.

La condizione associata al comando IF deve contenere o sole espressioni algebriche oppure un confronto
diretto tra due stringhe. Non è possibile utilizzare nella stessa condizione espressioni algebriche e
stringhe, né utilizzare espressioni composte contenenti stringhe.

45004606R 289
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Esempi:
( IF , E0 = 3)
( DIS , “ E0 is equal to 3 “)
(ELSE)
( IF E0 > 3)
( DIS , “ E0 is greater than 3 “)
(ELSE)
( DIS , “ E0 is less than 3 “)
( ENDIF)
( ENDIF)

( IF , E0 >10 )
( IF , E0 >20 )
( IF , E0 >30 )
( IF , E0 >40 )
( IF , E0 >50 )
( DIS , “ E0 is greater than 50 “)
( ENDIF)
( ENDIF)
( ENDIF)
( ENDIF)
( ENDIF)

45004606R 290
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.5 Comandi di ritardo esecuzione programma e di disabilitazione di blocchi


barrati
10.5.1 DLY – Definizione del tempo di attesa
Il comando DLY permette di programmare una sosta durante l'esecuzione del programma.

Sintassi

(DLY,tempo)

dove:
tempo Tempo di sosta espresso in secondi (valore minimo 0.01 secondi). Si può programmare il
valore del tempo con un numero reale, una variabile o un’espressione algebrica.

10.5.2 DSB – Disabilitazione di blocchi barrati


Questo comando viene utilizzato per abilitare/disabilitare i blocchi barrati;
I blocchi barrati contengono il segno "/" come primo carattere e la loro esecuzione è condizionata al
valore di DSB.

Sintassi

DSB = valore

dove:
valore Il valore può essere:
0 i blocchi barrati vengono eseguiti
1 i blocchi barrati non vengono eseguiti

10.6 Comandi per il rilascio e la sospensione dell'esecuzione del programma


10.6.1 REL – Deseleziona il part program
Il comando REL disattiva il part program e tutte le eventuali subroutine.

Sintassi

(REL)

Caratteristiche:
La funzione REL disattiva il part program; essa è programmabile anche in modalità MDI.
Quando il part program è stato disattivato, sul video viene visualizzato il messaggio ‘23/160 FINE FILE.

45004606R 291
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.6.2 WOS – WAIT su segnale


Il comando WOS sospende l'esecuzione del part program finché la variabile specificata non soddisfa la
condizione voluta.

Sintassi

(WOS, par1 operatore par2)

dove:
par1 È una variabile, locale o di sistema, oppure una costante, il cui valore viene confrontato
con il valore del parametro par2.
operatore È uno degli operatori logici della lista seguente:
= uguale
< minore di
> maggiore di
<> diverso
<= minore o uguale
>= maggiore o uguale
par2 È una variabile, locale o di sistema, oppure una costante, il cui valore viene confrontato
con il valore del parametro par1.

Caratteristiche:
Il processo in cui è programmata la funzione WOS passa nello stato WAIT finché la condizione non è
soddisfatta. Il controllo della condizione viene effettuato ad ogni intervallo di tempo pari al minimo tra
10ms e il clock configurato nel processo.
Il comando WOS è sincronizzato di default.

Se durante la fase di debug del part program il sistema si trova in stato di WAIT (dovuto alla
programmazione di una funzione WOS), è possibile assegnare alla variabile par1 il valore che soddisfa la
condizione specificata nel comando WOS.

Questo si può ottenere eseguendo le seguenti operazioni:


1. Premere CYCLE STOP
2. Assegnare in MDI il valore corretto alla variabile par1
3. Premere CYCLE START

Esempi di programmazione:
(WOS,E1>4)
(WOS,SC10.5 = "PIPPO")
(WOS,@TOOL_STATUS >= E3)
(WOS,!USER_VAR3.5CH = SC4.5)

45004606R 292
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

10.7 Comandi per la modifica dell’esecuzione in semi-auto


10.7.1 STPMOV – passaggio da “blocco a blocco” a “movimento a movimento”
La variabile STPMOV permette di modificare il funzionamento della modalità semi-auto.

Sintassi

STPMOV = par1

dove:
par1 È un numero intero che può valere:
 0: funzionamento blocco a blocco
 1: funzionamento movimento a movimento
Par1 può essere definito direttamente tramite un numero intero o indirettamente tramite
una variabile. Il valore di default è definito nella configurazione AMP del sistema.

Caratteristiche:
La variabile STPMOV permette di definire il comportamento del controllo numerico quando si trova in
modalità semi-auto.
Se STPMOV vale 0, allora ogni comando di Cycle Start eseguirà un blocco di part program.
Se STPMOV vale 1, allora ogni comando di Cycle Start eseguirà tutti i blocchi di part program che NON
contengono movimenti programmati degli assi e si arresterà alla fine del primo movimento incontrato.

Il valore di default di STPMOV è definito nella configurazione AMP del sistema.

Il comando di RESET ripristina il valore di default di STPMOV

45004606R 293
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

11. Stima del tempo di esecuzione programma

Il sistema OPENControl può funzionare in una modalità speciale chiamata modalità calcolo tempo ciclo.
Quando tale modalità è attiva il controllo simula l’esecuzione del part program senza muovere gli assi e
senza emettere le funzioni ausiliarie.
Questa modalità permette di avere, salvate all’interno di apposite variabili, alcune informazioni relative
al tempo di esecuzione del part program.
Per quanto riguarda le operazioni necessarie all’attivazione di questa modalità fare riferimento al
manuale di uso OPENControl.

11.1 CYCTIME – Variabile di abilitazione del calcolo tempo ciclo


La variabile CYCTIME permette di sapere se la modalità calcolo tempo ciclo sia attiva o meno.
Si tratta di una variabile di solo lettura per quanto riguarda il linguaggio ISO.

Quando CYCTIME vale 1 la modalità calcolo tempo ciclo è attiva, quando CYCTIME vale 0 la modalità non
è attiva. Non sono ammessi altri valori per la variabile.

11.2 CTV – Valori calcolati del tempo ciclo


Il vettore di variabili CTV contiene, quando la modalità di calcolo tempo ciclo è attiva, informazioni
relative alla stima dei tempi di esecuzione di alcune parti di part program.

Il sistema mette a disposizione 10 variabili: da CTV(0) a CTV(9) nelle quali si troveranno i seguenti tempi
calcolati in secondi:

CTV(0) = Tempo totale di esecuzione programma


CTV(1) = Tempi di lavorazione (tempi di taglio, quindi operazioni svolte in G1/G2/G3…)
CTV(2) = Tempi di posizionamento (tempi in G0/G10)
CTV(3) = Tempi di esecuzione tecnologia (tempi delle funzioni M S T)
CTV(4) = Tempi di entrata in tolleranza assi e svuotamento filtri FLT
CTV(8) = Tempo totale di esecuzione realtime.
Corrisponde al tempo progressivo di esecuzione programma a partire dallo start, si azzera cioè
ad ogni cycle. Se il programma è eseguito in modalità blocco-blocco, fornisce il tempo di
esecuzione del blocco. Se il programma è eseguito in modalità AUTO, equivale a CTV(0) ma
viene aggiornato su ogni blocco.
CTV(9) = Tempo totale di esecuzione realtime cumulativo.
Corrisponde al tempo progressivo di esecuzione programma a partire dal RESET, si azzera cioè
ad ogni RESET. Questo può essere utile durante la prova programma per avere il tempo
complessivo anche se lo si esegue in modalità blocco-blocco.
Le variabili da CTV(5) a CTV(7) sono riservate per usi futuri.

Tutte le variabili CTV, ad eccezione della CTV(9), vengono azzerate al cycle start e aggiornate solo al
termine del programma, sommando i tempi calcolati al valore che queste contengono. Sono, cioè,
variabili di input/output che il programmatore può utilizzare per inizializzazioni particolari.

45004606R 294
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

11.3 EVM – Stima del tempo di esecuzione di un movimento lineare


Questo triletterale permette di calcolare il tempo stimato per l’esecuzione di un movimento lineare
lungo un asse.
L’esecuzione di EVM NON richiede che la modalità calcolo tempo ciclo sia attiva.

Sintassi

(EVM, ax, ramp, len, feed, var)

dove:
ax identifica l’asse sul quale applicare il movimento lineare richiesto. Si può specificare
secondo due sintassi:
tramite un singolo carattere ASCII se l’asse è programmato per nome
usando il carattere ′/′ seguito da un numero intero corrispondente all’identificativo
dell’asse.

ramp indica il tipo di rampa di accelerazione e decelerazione da utilizzare per il calcolo del
movimento. Può essere specificato sia direttamente tramite un numero intero che
indirettamente tramite una variabile. I valori validi per questo campo sono:
1: Rampa lineare
2: Rampa a S
3: Rampa trapezoidale
4: Rampa con Jerk limitation

len lunghezza in mm (o pollici) del movimento del quale si desidera conoscere la durata di
esecuzione. Può essere specificata sia direttamente tramite un numero intero che
indirettamente tramite una variabile.

feed velocità massima alla quale sarà eseguito il movimento richiesto. Se si specifica il valore 0
il controllo utilizzerà il valore velocità di rapido attivo. Può essere specificata sia
direttamente tramite un numero intero che indirettamente tramite una variabile.

var nome della variabile di tipo reale destinata a contenere il valore di tempo di esecuzione
del movimento.

Caratteristiche:

Questo comando permette di calcolare la durata di un movimento lineare lungo un asse.


È possibile specificare alcuni dei parametri del movimento come tipo di rampa e feed massima; per
quanto riguarda le caratteristiche non gestite direttamente dal triletterale (come per esempio
accelerazione e decelerazione) il controllo utilizza i valori attivi al momento dell’esecuzione del
triletterale.

45004606R 295
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12. APPENDICE A: Sommario dei caratteri e dei comandi

12.1 Caratteri consentiti

CARATTERE DESCRIZIONE
0-9 Numeri
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
Cancellazione blocco (blocco opzionale)
. Punto decimale
“ Identificatore etichetta o stringa
( Parentesi tonda aperta
) Parentesi tonda chiusa
[ Parentesi quadra aperta
] Parentesi quadra chiusa
{ Parentesi graffa aperta
} Parentesi graffa chiusa
; Simbolo di commento
, Separatore di parametri
= Simbolo di assegnazione o uguaglianza
< Minore di (codice di salto)
> Maggiore di (codice di salto)
LF (Avanzamento di una linea ISO o ASCII)
Fine blocco
CR (Ritorno di carrello EIA)
# Sincronizzazione
& Desincronizzazione
! Prefisso di variabile utente
@ Prefisso di variabile WinPLUS
$ Prefisso per variabili tecnologiche, TCP o I/O
>> Incremento sul singolo operando
A Nome asse
Accelerazione sul profilo o sul blocco (associato a F
o f)
B Nome asse
b Tempo di rampa (decelerazione) sul profilo o sul
blocco (associato a F o f)
Smusso in correzione di utensile
C Nome asse
D Nome asse
d Decelerazione sul profilo o sul blocco (associato a F
o f)
Diametro dell’utensile (RQT,RQP)
E Parametro di tipo E

45004606R 296
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CARATTERE DESCRIZIONE
F Velocità di avanzamento degli assi in G1, G2, G3,
f G12, G13, G14 (velocità sul profilo)
Set delle caratteristiche dinamiche globali (sul
profilo) in G1, G2, G3, G12, G13, G14
G Codice preparatorio (G00 - G99)
Sottoprogrammi di Paramacro (G100 - G999)
H Parametri da utilizzare nelle Paramacro
h Cambio correttore durante il movimento continuo
I Coordinate del centro dell'arco in una
interpolazione circolare (G2 - G3 – G12 – G13)
Passo variabile in G33
Incremento di profondità nei cicli di foratura
profonda (G83)
Coordinata dell’ascissa del terzo punto in G14
(interpolazione circolare spaziale per tre punti)
J Coordinate del centro dell'arco in una
interpolazione circolare (G2-G3) (ordinata)
Min. incremento di profondità in (G83)
K Coordinate del centro dell'arco in una
interpolazione circolare (G2-G3-G12-G13)
Coordinata sul terzo asse del terzo punto in G14
(interpolazione circolare spaziale per tre punti)
Fattore di riduz. per I e J nel ciclo di foratura G83
Passo di filettatura (G33)
Passo di filettatura (G84)
Passo dell'elica in un'interpolazione elicoidale
Dejerk sul profilo o sul blocco (associato a F o f)
L Variabili condivise tra processo e PLC
Lunghezza del correttore utensile (RQT,RQP)
l Lunghezza 2 del correttore utensile (RQT,RQP)
(Sintassi Serie10 OSAI)
M Funzioni ausiliarie
N Numero di blocco del Part Program
P Nome di asse
Q Nome di asse
R Posizionamento rapido nei cicli G81 - G89
r Scostamento dallo zero del mandrino (usato nelle
filettature a più principi)
Raggio in un'interpolazione circolare G02-G03 – G12
– G13
Raccordo in correzione utensile
Raggio teorico del foro (G73)
S Velocità del mandrino
T Indirizzo dell’utensile e del correttore
t Tempo di rampa (accelerazione) sul profilo o sul
blocco (associato a F o f)
Tempo necessario per completare lo spostamento
in un blocco

45004606R 297
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CARATTERE DESCRIZIONE
U Nome di asse
u Fattore di compensazione sull’asse 1 (offset)
V Nome di asse
v Fattore di compensazione sull’asse 2 (offset)
W Nome di asse
w Fattore di compensazione sull’asse 3 (offset)
X Nome di asse
x Componente versore ortogonale per circonferenza
o semicirconferenza nello spazio (G12-G13)
Y Nome di asse
y Componente versore ortogonale per circonferenza
o semicirconferenza nello spazio (G12-G13)
Z Nome di asse
z Componente versore ortogonale per circonferenza
o semicirconferenza nello spazio (G12-G13)

45004606R 298
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12.2 Sommario dei codici G

CODICE G FUNZIONE
G00 Posizionamento rapido dell'asse

G01 Interpolazione lineare

G02 Interpolazione circolare oraria

G03 Interpolazione circolare antioraria

G04 Attesa a fine passo

G05 Entrata in FeedHold a fine movimento

G06 Entrata in FeedHold a inizio movimento

G09 Decelerazione a fine passo

G10 Interpolazione circolare per tre punti nello spazio

G12 Interpolazione circolare antioraria nello spazio

G13 Interpolazione circolare oraria nello spazio

G14 Interpolazione lineare con parametri dinamici di rapido

G16 Piano di interpolazione definito

G17 Interpolazione circolare e correzione di utensile sul piano XY

G18 Interpolazione circolare e correzione di utensile sul piano ZX

G19 Interpolazione circolare e correzione di utensile sul piano YZ

G26 Operazione in sequenza continua con velocità nulla a fine blocco

G27 Operazione in sequenza continua con riduzione automatica di velocità sugli spigoli

G28 Operazione in sequenza continua senza riduzione di velocità sugli spigoli

G29 Operazione punto-a-punto

G31 Identificazione di movimento interrompibile con ActiveReset

G33 Filettatura a passo costante o variabile

G35 Rototraslazione assoluta di una terna di assi lineari– Richiede l’opzione A39
Rototraslazione di una terna di assi lineari rispetto all’origine attiva– Richiede l’opzione
G36
A39
G37 Coordinate dei punti teorici per la definizione della rototraslazione per tre punti

G38 Coordinate dei punti misurati per la definizione della rototraslazione per tre punti

G39 Attivazione della rototraslazione definita da tre punti – Richiede l’opzione A39

G40 Disabilitazione di correzione sul profilo

G41 Correzione sul profilo con utensile a sx

45004606R 299
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE G FUNZIONE
G42 Correzione sul profilo con utensile a dx

G60 Chiude il profilo spline (HSM)

G61 Apre il profilo spline (HSM) – Richiede l’opzione A38

G62 Spezza il profilo spline in due con continuità

G63 Spezza il profilo spline in due con raccordo

G66 Spezza il profilo spline in due con spigolo

G67 Spezza il profilo spline in due con velocità contratta sullo spigolo

G70 Programmazione in pollici

G71 Programmazione in millimetri

G72 Tastatura del punto con correzione del raggio della sfera del tastatore

G73 Tastatura del foro con correzione del raggio della sfera del tastatore
Tastatura per la definizione dello scostamento teorico dal punto senza compensazione del
G74
raggio della sfera
G77 Calcolo delle quote giunto di un movimento date le quote pezzo

G78 Programmazione riferita alla punta utensile e movimentazione riferita allo zero macchina

G79 Programmazione riferita allo zero macchina

G80 Disabilitazione dei cicli fissi

G81 Ciclo di foratura

G82 Ciclo di lamatura

G83 Ciclo di foratura profonda

G84 Ciclo di maschiatura

G85 Ciclo di alesatura

G86 Ciclo di barenatura

G89 Ciclo di barenatura con sosta

G90 Programmazione assoluta

G91 Programmazione incrementale

G92 Pre-impostazione dell'asse senza mirror

G93 Modalità di programmazione della velocità di avanzamento a tempo inverso (V/D)

G94 Programmazione della velocità di avanzamento in pollici/min o mm/min

G95 Programmazione della velocità di avanzamento in pollici per giro o millimetri per giro

G96 Velocità di taglio in piedi al minuto o metri al minuto

G97 Programmazione della velocità del mandrino espressa in giri/min

45004606R 300
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE G FUNZIONE
G98 Pre-impostazione dell’asse con mirror

G99 Cancella G92

12.3 Funzioni matematiche e logiche


&& || ^^
ABS AND ARC
ARS ART ATAN2
BCLR BSET BTST
COS EXP10 EXP2
EXPE EXOR INT
LG2 LN LOG
MOD NEG NOT
OR POW SIN
SQR TAN

45004606R 301
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12.4 Variabili locali e di sistema modificabili anche da programma


Accesso in
NOME VARIABILE FUNZIONE
scrittura
!name Variabile utente Sì
@name Variabile PLUS Sì
Break-point per esecuzione part program o per ricerca
$BRK Sì
memorizzata
$I $IW Variabile Input Sì
$O $OW Variabile Ouput Sì
ACCUR Precisione di calcolo Sì
ALIASLD Stato di caricamento del file degli alias globali No
ALIASLN Numero della riga errata durante caricamento del file alias globali No
ARM Definizione della modalità normalizzazione arco Sì
CEND Continuità a inizio e fine spline Sì
CET Tolleranza di precisione in interpolazione circolare Sì
CRV Calcolo velocità curvatura Sì
CTV Variabili input/output per il calcolo del tempo ciclo Sì
CURDIAM Valore attuale di diametro utensile Sì
CURDIAM2 Valore corrente di diametro utensile toroidale Sì
CURLEN Lunghezza minima per cambio curvatura Sì
CURMODE Modalità di gestione cambio curvatura Sì
CURPROC Numero del processo attivo No
CURRAP Rapporto tra lunghezze tratti per gestione cambio curvatura Sì
CYCTIME Stato abilitazione calcolo tempo ciclo di un programma No
DAC Angolo (assi profilo) per riconoscimento spigolo Sì
DAV Angolo (assi rotativi) per riconoscimento spigolo Sì
DLA Abilita/disabilita look ahead Sì
DPMODE Modalità di gestione spigolo rilevato con DAC e DAV Sì
DPS Disabilita scrolling del part program No
DRP Quota di ripresa foro in G83 Sì
DSB Blocchi barrati disabilitati Sì
DWT Tempo di sosta Sì
E Variabile locale Sì
EMGERR Emergenza trasformata in Errore Si
ERF Massimo errore di forma Sì
ERR Abilita/disabilita l'uso dell'errore di sistema Sì
FCT Soglia per cerchio completo Sì
FEEDROT Feed programmata solo sugli assi lineari Sì
FOP Modo di applicazione del feed override Sì
GPRG Variabile vettoriale per stato delle G programmate No
H Variabile di paramacro Sì
HC Variabili stringa di paramacro Sì
HD Numero correttore utensile su programmazione di paramacro Sì
HF Flag di paramacro Sì
HFC Flag di variabile HC caricata Sì
HFD Flag di correttore utensile caricato Sì
HFI Flag di numero utensile caricato Sì

45004606R 302
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Accesso in
NOME VARIABILE FUNZIONE
scrittura
HFS Flag di codice utensile ASCII caricato Sì
HI Numero utensile su programmazione di paramacro Sì
HMP Abilitazione multi-homing No
HS Codice utensile ASCII su programmazione di paramacro Sì
IBSIZE Attiva la correzione interferenze Sì
IDMODE Modalità di gestione discontinuità interne Sì
ISOCOMP Flag vari di compatibilità No
JRK Modalità gestione accelerazione con rampe ad S (RAMP=2) Sì
JRKCRV Abilita/disabilita la limitazione dovuta al jerk in curvatura spline Sì
KVGAIN Costante di riduzione velocità nelle interpolazioni circolari Sì
Variabili numeriche di sistema per interscambio dati tra processo
L Sì
e WinPLUS
LINENO Numero della linea evidenziata No
LS Variabili stringhe di sistema Sì
MAXLEN Massima lunghezza delle spline generate Sì
MBA Abilita/disabilita funzioni ausiliarie in Multi Block Retrace Sì
MBR Stato abilitazione Multi Block Retrace No
MBRLEN Distanza a ritroso durante il Multi Block Retrace Sì
MBRTHR Soglia di arresto dal punto in MBR Sì
MDA Massimo angolo di deviazione Sì
MOA Opzioni di movimentazione assi Sì
MOM Configurazione movimenti in manuale Sì
MOVNULL Soglia di movimento nullo Sì
MSA Definizione di sovrametallo Sì
ODH "Online Debug Help" Sì
PMM Abilita/disabilita funzione ausiliaria M come paramacro Sì
PMS Abilita/disabilita funzione ausiliaria S come paramacro Sì
PMT Abilita/disabilita funzione ausiliaria T come paramacro Sì
POCKACC Abilita/disabilita l’accesso in scrittura alle variabili pocket Sì
RAMP Modalità di movimentazione Sì
RAP Abilitazione ritorno automatico sul profilo No
RAPSTOP Abilitazone frenatura rapida Sì
RCD Disabilitazione conteggio enti per RCM Sì
RCM Stato abilitazione RCM No
RCNEAR Stato abilitazione ricerca del punto più vicino No
REM Modalità di ritorno sul profilo Sì
ROLLOPT Movimento ottimizzato assi rollover Sì
RTV Variabile Real-Time Sì
SC Carattere di sistema Sì
SCRLPAR Disattiva lo scrolling per le paramacro Sì
SHAPERR Soglia per riduzione velocità nelle interpolazioni circolari Sì
SN Numero di sistema Sì
SNMT Soglie di movimento nullo sugli assi delle Spline Sì
SPL3D Abilitazione trasformazione cinematica nel modulo Spline Sì
SSL Limite della velocità del mandrino Sì
STA Identificatore del task di sistema che ha generato l’errore No

45004606R 303
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Accesso in
NOME VARIABILE FUNZIONE
scrittura
STE Errore specifico del task di sistema No
Tipo del modo di esecuzione Semiautomatico (Movimento per
STPMOV Si
Movimento)
TAG Guadagno per maschiatura accelerata Sì
TBS Precisioni associate agli assi delle spline durante lavorazione Sì
TBSG0 Precisioni associate agli assi delle spline durante spostamenti in

rapido
TBV Precisione associata ai versori delle spline durante lavorazione Sì
TBVG0 Precisione associata ai versori delle spline durante spostamenti in

rapido
TCPACT Identificativo della cinematica attiva No
TCPDEF Identificativo cinematica di default Sì
TIM Temporizzazione di sistema No
TKG Guadagno per maschiatura a velocità costante Sì
TMD Modalità di esecuzione della maschiatura Sì
TMT Parametro utensile per PLC Sì
TPA Angolo di soglia per attivazione del TPO Sì
TPO Ottimizzazione percorso utensile Sì
TPT Soglia per TPO Sì
TRACE Abilita/disabilita il log su file dei comandi al Processo Sì
TRP Percentuale velocità di ritorno in maschiatura Sì
UAS Stato assi sconnessi No
UDR Usa dinamica di rapido Sì
UPA Aggiornamento dell'ascissa del tastatore Sì
UPO Aggiornamento dell'ordinata del tastatore Sì
URL Override per velocità di rapido Sì
URLFVAL Valore di override di rapido quando il controllo override è

disabilitato
USO Abilità lo stop opzionale per i codici M No
UVR Usa velocità di rapido Sì
UWL Abilitazione override per velocità di lavoro Sì
UWLFVAL Valore di override velocità di lavoro quando il controllo override è

disabilitato
VLEAP3D Abilita/disabilita la riduzione di velocità su spigoli giunto Sì
VFF "Velocity Feed Forward" Sì
XMLMAP Stato di caricamento del Mapping File No
XMLMAPLN Numero della riga errata durante il caricamento del Mapping File No

45004606R 304
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12.5 TRILETTERALI
Segue una tabella riepilogativa di tutti i triletterali del linguaggio OPEN, con associata l’informazione di
comando sincronizzato e se tale sincronismo può essere modificato.

CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
AXF Assi a inseguire Si No

AXO Definizione offset dell'asse No Si

AXS Assi condivisi con la logica Si No

AXT Controllo asse rotativo tangenziale Si No

CAM Comandi relativi alla camma elettronica Si No

CLD Chiamata di sottoprogrammi No Si

CLO Chiusura canale associato a file No Si

CLP Ciclo di finitura No Si

CLS Chiamata di sottoprogrammi No Si

CLT Chiamata di sottoprogrammi No Si

COF Invio comando di CYCLE OFF No Si

CON Invio comando di CYCLE ON No Si

CPA Lettura / scrittura di un parametro relativo a un asse Si Si

Lettura / scrittura di un parametro relativo a un


CPD Si Si
azionamento
CPY Copia un file No Si

DAN Definisce il nome dell'asse No Si

DEL Cancella un file No Si

DER Sospende il programma con la generazione di un errore Si Si

DEW Visualizza un codice di avvertimento Si Si

DGM Disattiva scroll paramacro / sottoprogramma No Si

DIF Definisce il form per input dati da utente No Si

DIR Invio direzione movimento manuale No Si

DIS Visualizza un messaggio per l'operatore No Si

DLY Tempo di ritardo Si Si

45004606R 305
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
DPA Definizione di area protetta No Si

DPP Definizione dei parametri di tastatura No Si

DSB Disabilitazione blocchi barrati No Si

ECM Esecuzione blocco di part program in MDI No Si

EPB Esecuzione di un blocco di programma No Si

EPP Esecuzione di una parte di programma No Si

ERP Chiusura di una ripetizione No Si

EXE Esecuzione automatica di un part program No Si

FHO Invio comando di arresto movimento No Si

FIL Ciclo di filettatura No Si

FLT Programmazione di filtri su assi di processo Si No

GDT Data e ora correnti del controllo No Si

GET Ricezione da linea seriale No Si

GPS Lettura stato e modo di un processo No Si

GTA Acquisizione assi Si No

GTO Esecuzione di salto No Si

GTS Condivisione mandrino Si No

HOF Invio comando di HOLD OFF No Si

HON Invio comando di HOLD ON No Si

IF, ELSE, ENDIF Esecuzione condizionata di parti di programma No Si

INP Input da utente Si No

JOG Invio passo per movimenti manuali incrementali No Si

LCK Blocco/sblocco scrittura tabelle WinPLUS No Si

LKH Lettura/scrittura dimensione coda di Look Ahead Si No

LOA Caricamento delle tabelle in memoria No Si

LTH Compensazione velocità relative Si No

MIR Lavorazione speculare No Si

45004606R 306
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
OPN Apertura di un file per lettura / scrittura No Si

PAD Disabilitazione di area protetta Si Si

PAE Abilitazione di area protetta Si Si

PLD Lettura variabili WinPLUS di tipo double No Si

PLR Lettura variabili WinPLUS di tipo word No Si

PLS Lettura variabili WinPLUS SW No Si

PRO Definizione processo di defaul No Si

PTH Definizione del direttorio di subroutine e paramacro No Si

PUT Trasmissione su linea seriale No Si

RAP Lettura posizione asse No Si

REA Lettura dati da file No Si

REL Disattivazione part program Si Si

REN Cambio nome di un file No Si

RES Invio comando di RESET No Si

ROP Lettura correttore programmato o corrente No Si

ROT Rotazione del piano attivo No Si

RPT Apertura di una ripetizione di un gruppo di blocchi No Si

RQO Riqualifica delle origini Si Si

RQP Riqualifica correttore utensile No Si

RQT Riqualifica del correttore e della vita utensile No Si

RTP Lettura utensile programmato o corrente No Si

SAX Invio selezione asse per movimenti manuali No Si

SCF Fattori di scala Si Si

SCL Disattivazione della porta seriale No Si

SDA Assi duali Si Si

SMD Invio comando di SETMODE No Si

SND Invio di un messaggio di sincronizzazione Si Si

45004606R 307
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
SOL Limiti di fine corsa software No Si

SOP Abilitazione e configurazione della linea seriale No Si

SPA Ciclo di sgrossatura par assiale senza prefinitura No Si

SPF Ciclo di sgrossatura par assiale con prefinitura No Si

SPL Definizione assi di una spline No Si

SPP Ciclo di sgrossatura parallela al profilo No Si

SRS Reset della porta seriale No Si

TCP Attivazione di una cinematica di macchina Si No

tcp Attivazione di una cinematica di macchina in continuo No Si

TGL Ciclo di taglio gola No Si

TOU Dichiarazione di utensile scaduto No Si

TTC Definizione tipo di compensazione utensile Si No

UAO Uso di origini assolute No Si

UDA Assi duali Si Si

UIO Uso di origini incrementali No Si

UPR Attivazione di una rotazione piani Si No

upr Attivazione di una rotazione piani in continuo No Si

UTO Uso di origini temporanee No Si

UVA Programmazione di assi non ortogonali Si No

UVC Programmazione in coordinate cilindriche Si No

UVP Programmazione in coordinate polari Si No

UVW Definizione assi per compensazione parassiale No Si

WAI Attesa di un messaggio di sincronizzazione Si Si

WOS Wait su segnale Si Si

WRT Scrittura dati su file No Si

XDA Assi master / slave Si No

xda Assi master / slave in continuo No Si

45004606R 308
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Segue una tabella riepilogativa di tutti i triletterali del linguaggio OPEN, con associata l’informazione
dell’opzione relativa.

— = Non disponibile  = Opzionale  = Di serie

CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
AXF Assi a inseguire A37 —  

AXO Definizione offset dell'asse

AXS Assi condivisi con la logica  

AXT Controllo asse rotativo tangenziale A51 —  

CAM Comandi relativi alla camma elettronica A41   

CLD Chiamata di sottoprogrammi

CLO Chiusura canale associato a file

CLP Ciclo di finitura

CLS Chiamata di sottoprogrammi

CLT Chiamata di sottoprogrammi

COF Invio comando di CYCLE OFF A44 —  

CON Invio comando di CYCLE ON A44 —  


Lettura / scrittura di un parametro relativo
CPA
a un asse
Lettura / scrittura di un parametro relativo
CPD
a un azionamento
CPY Copia un file

DAN Definisce il nome dell'asse

DEL Cancella un file


Sospende il programma con la generazione
DER
di un errore
DEW Visualizza un codice di avvertimento
Disattiva scroll paramacro /
DGM
sottoprogramma
DIF Definisce il form per input dati da utente

DIR Invio direzione movimento manuale A44 —  

DIS Visualizza un messaggio per l'operatore

DLY Tempo di ritardo

45004606R 309
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
DPA Definizione di area protetta

DPP Definizione dei parametri di tastatura

DSB Disabilitazione blocchi barrati

ECM Esecuzione blocco di part program in MDI A44 —  

EPB Esecuzione di un blocco di programma

EPP Esecuzione di una parte di programma

ERP Chiusura di una ripetizione

EXE Esecuzione automatica di un part program A44 —  

FHO Invio comando di arresto movimento A44 —  

FIL Ciclo di filettatura

FLT Programmazione di filtri su assi di processo

GDT Data e ora correnti del controllo

GET Ricezione da linea seriale A47 —  

GPS Lettura stato e modo di un processo

GTA Acquisizione assi A34 —  

GTO Esecuzione di salto

GTS Condivisione mandrino A34 —  

HOF Invio comando di HOLD OFF A44 —  

HON Invio comando di HOLD ON A44 —  


Esecuzione condizionata di parti di
IF,ELSE,ENDIF
programma
INP Input da utente
Invio passo per movimenti manuali
JOG A44 —  
incrementali
LCK Blocco/sblocco scrittura tabelle WinPLUS
Lettura/scrittura dimensione coda di Look
LKH
Ahead
LOA Caricamento delle tabelle in memoria

LTH Compensazione velocità relative

MIR Lavorazione speculare

45004606R 310
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
OPN Apertura di un file per lettura / scrittura

PAD Disabilitazione di area protetta

PAE Abilitazione di area protetta

PLD Lettura variabili WinPLUS di tipo double

PLR Lettura variabili WinPLUS di tipo word

PLS Lettura variabili WinPLUS SW

PRO Definizione processo di default


Definizione del direttorio di subroutine e
PTH
paramacro
PUT Trasmissione su linea seriale A47 —  

RAP Lettura posizione asse

REA Lettura dati da file

REL Disattivazione part program

REN Cambio nome di un file

RES Invio comando di RESET A44 —  

ROP Lettura correttore programmato o corrente

ROT Rotazione del piano attivo


Apertura di una ripetizione di un gruppo di
RPT
blocchi
RQO Riqualifica delle origini

RQP Riqualifica correttore utensile


Riqualifica del correttore e della vita
RQT
utensile
RTP Lettura utensile programmato o corrente

SAX Invio selezione asse per movimenti manuali A44 —  

SCF Fattori di scala

SCL Disattivazione della porta seriale A47 —  

SDA Assi duali A35 —  

SMD Invio comando di SETMODE A44 —  

SND Invio di un messaggio di sincronizzazione A44 —  

45004606R 311
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
SOL Limiti di fine corsa software
Abilitazione e configurazione della linea
SOP A47 —  
seriale
Ciclo di sgrossatura par assiale senza
SPA
prefinitura
Ciclo di sgrossatura parassiale con
SPF
prefinitura
SPL Definizione assi di una spline A38 —  

SPP Ciclo di sgrossatura parallela al profilo

SRS Reset della porta seriale A47 —  

TCP Attivazione di una cinematica di macchina A31/A32 —  


Attivazione di una cinematica di macchina
tcp A31/A32 —  
in continuo
TGL Ciclo di taglio gola

TOU Dichiarazione di utensile scaduto

TTC Definizione tipo di compensazione utensile

UAO Uso di origini assolute

UDA Assi duali A35 —  

UIO Uso di origini incrementali

Attivazione di una rotazione piani su 3 assi


UPR (0, 1, 4) A30 —  
(v. nota a fine tabella)

Attivazione di una rotazione piani in


upr (0, 1, 4) A30 —  
continuo su 3 assi (v. nota a fine tabella)

Attivazione di una rotazione piani su 3 assi


UPR (10, 14) con compensazione errore di A39 —  
posizionamento pezzo

Attivazione di una rotazione piani in


upr (10, 14) continuo su 3 assi con compensazione A39 —  
errore di posizionamento pezzo

UPR (2, 3, 6,
Attivazione di una rotazione piani su 5 assi A40 —  
12, 16)

upr (2, 3, 6, Attivazione di una rotazione piani in


A40 —  
12, 16) continuo su 5 assi

UTO Uso di origini temporanee

UVA Programmazione di assi non ortogonali

UVC Programmazione in coordinate cilindriche

45004606R 312
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
UVP Programmazione in coordinate polari
Definizione assi per compensazione
UVW
parassiale
WAI Attesa di un messaggio di sincronizzazione A44 —  

WOS Wait su segnale

WRT Scrittura dati su file

XDA Assi master / slave A36   

xda Assi master / slave in continuo A36   

NOTA: La programmazione di UPR,4 (o upr,4) richiede la presenza dell’opzione A31 (TCP)

45004606R 313
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

12.6 Codici ASCII


Le tabelle seguenti mostrano i 256 elementi del set di caratteri ASCII esteso con i loro equivalenti
decimali ed esadecimali.

DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER

B LA N K
(N U L L ) (D L E ) BLAN K
000 00 (NU LL ) 016 10 032 20 (S P A C E D ) 048 30
0
001 01 (S O H ) 017 11 (D C 1 ) 033 21 ! 049 31 1
002 02 (S T X ) 018 12 (D C 2 ) 034 22 " 050 32 2


003 03  (E T X ) 019 13 !! (D C 3 ) 035 23 # 051 33 3
004 04  (E O T ) 020 14 ¶ (D C 4 ) 036 24 $ 052 34 4
005 05  (E N Q ) 021 15 § (N A C ) 037 25 % 053 35 5
006 06  (A C H ) 022 16 (S Y N ) 038 26 & 054 36 6
' 7

007 07 (B E L ) 023 17 (E T B ) 039 27 055 37

008 08 (B S ) 024 18
 (C A N ) 040 28 ( 056 38 8
009 09 (H T ) 025 19  (E M ) 041 29 ) 057 39 9
010 0A (L F ) 026 1A  (S U B ) 042 2A * 058 3A :
011 0B (V T ) 027 1B  (E S C ) 043 2B + 059 3B ;
012 0C (F F ) 028 1C (F S ) 044 2C , 060 3C <
013 0D (C R ) 029 1D
 (G S ) 045 2D - 061 3D =
014 0E (S O ) 030 1E (R S ) 046 2E . 062 3E >
015 0F (S I) 031 1F (U S ) 047 2F / 063 3F ?

DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER

064 40 @ 080 50 P 096 60 ` 112 70 p


065 41 A 081 51 Q 097 61 a 113 71 q
066 42 B 082 52 R 098 62 b 114 72 r
067 43 C 083 53 S 099 63 c 115 73 s
068 44 D 084 54 T 100 64 d 116 74 t
069 45 E 085 55 U 101 65 e 117 75 u
070 46 F 086 56 V 102 66 f 118 76 v
071 47 G 087 57 W 103 67 g 119 77 w
072 48 H 088 58 X 104 68 h 120 78 x
073 49 I 089 59 Y 105 69 i 121 79 y
074 4A J 090 5A Z 106 6A j 122 7A z
075 4B K 091 5B [ 107 6B k 123 7B {
076 4C L 092 5C \ 108 6C l 124 7C |
077 4D M 093 5D ] 109 6D m 125 7D }
078 4E N 094 5E ^ 110 6E n 126 7E ~
079 4F O 095 5F _ 111 6F o 127 7F

45004606R 314
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER

128 80 Ç 144 90 É 160 A0 á 176 B0

129 81 ü 145 91 æ 161 A1 í 177 B1

130 82 é 146 92 Æ 162 A2 ó 178 B2

131 83 â 147 93 ô 163 A3 ú 179 B3

132 84 ä 148 94 ö 164 A4 ñ 180 B4

133 85 à 149 95 ò 165 A5 Ñ 181 B5

134 86 å 150 96 û 166 A6 a 182 B6

135 87 ç 151 97 ù 167 A7 o 183 B7

136 88 ê 152 98 ÿ 168 A8 ¿ 184 B8

137 89 ë 153 99 Ö 169 A9 185 B9

138 8A è 154 9A Ü 170 AA 186 BA

139 8B ï 155 9B c 171 AB ½ 187 BB

140 8C î 156 9C £ 172 AC ¼ 188 BC

141 8D ì 157 9D Y
T
173 AD ¡ 189 BD

142 8E Ä 158 9E Pt 174 AE « 190 BE

143 8F Å 159 9F f 175 AF » 191 BF

DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER

192 C0 208 D0 224 E0  240 F0 


193 C1 209 D1 225 E1  241 F1 
194 C2 210 D2 226 E2  242 F2 
195 C3 211 D3 227 E3  243 F3 
196 C4 212 D4 228 E4  244 F4 
197 C5 213 D5 229 E5  245 F5 
198 C6 214 D6 230 E6  246 F6 
199 C7 215 D7 231 E7  247 F7 
200 C8 216 D8 232 E8  248 F8 
201 C9 217 D9 233 E9  249 F9 
202 CA 218 DA 234 EA  250 FA

203 CB 219 DB 235 EB  251 FB 


204 CC 220 DC 236 EC  252 FC n
205 CD 221 DD 237 ED  253 FD 2

206 CE 222 DE 238 EE  254 FE

207 CF 223 DF 239 EF  255 FF BLAN K


"F F "

Set di caratteri ASCII esteso

45004606R 315
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13. APPENDICE B: Messaggi d’errore

13.1 Descrizione dei messaggi di errore ed azione di recupero


13.1.1 Errori generati dalla libreria PLC – interpolatore

Codice Descrizione del messaggio ed azione di recupero


Troppi interpolatori/processi
Errore interno:
Indica che il sistema sta creando un numero eccessivo di processi o attività di
22/001
movimentazione. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Troppe attività di interpolazione
Errore interno:
Indica che il sistema sta creando un numero eccessivo di attività di interpolazione. Non viene
22/003
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Troppi movimenti
Errore interno:
Indica che il sistema sta creando un numero eccessivo di movimenti rispetto a quanto
22/004 configurato in ODM (numero buffer di precalcolo). Non viene evidenziato a fronte di
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Numero assi errato
Errore interno:
È stata richiesta la movimentazione contemporanea di un numero eccessivo di assi (massimo
22/005
12). Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.
Movimento inesistente
Errore interno:
Si è cercato di utilizzare un movimento non più disponibile. Non viene evidenziato a fronte di
22/006
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Movimento non riservato
Errore interno:
Si è cercato di utilizzare un movimento non appartenente al processo o interpolatore
22/007
richiedente. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.

45004606R 316
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Interpolatore/processo inesistente
Errore interno:
Si è cercato di utilizzare un processo o interpolatore non più disponibile. Non viene
22/008
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Errore di allocazione memoria
22/009 Al boot del sistema non risulta essere disponibile una quantità di memoria tale da soddisfare
la configurazione ODM. È una anomalia da segnalare al servizio di assistenza.
Comando non permesso in modalità punto-a-punto
Errore interno:
Il comando richiesto non è disponibile in modalità punto-a-punto. Non viene evidenziato a
22/010
fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Comando non permesso in continuo
Errore interno:
Il comando richiesto non è disponibile in modalità continuo. Non viene evidenziato a fronte di
22/011
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Programma terminato
Errore interno:
Viene richiesto al sistema di effettuare una operazione di movimentazione nel momento in
22/012 cui si sta terminando, per reset o per emergenza. Non viene evidenziato a fronte di
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Troppi interpolatori attivi
Errore interno:
Indica che il sistema sta creando un numero eccessivo di attività di movimentazione (ad
22/013 esempio selezionando due assi e muovendoli in manuale si creano due attività di
movimentazione). Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Comando non permesso in Abort Continuo
Errore interno:
Viene richiesto al sistema di effettuare una operazione di movimentazione nel momento in
22/014 cui si sta terminando, per reset o per emergenza, una attività di movimentazione in
continuo. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.

45004606R 317
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Comando non permesso
Errore interno:
Viene richiesto al sistema di effettuare una operazione di movimentazione nel momento in
22/015 cui si sta già eseguendo una movimentazione. Non viene evidenziato a fronte di operazioni
richieste da part program o a fronte di operazioni svolte da un operatore. È una segnalazione
interna relativa alla programmazione PLC, se segnalata a video occorre contattare il servizio
di assistenza.
Modo gestione posizioni errato per interpolatore/processo
Errore interno:
Viene richiesto al sistema di configurare in modo errato un processo od un interpolatore. Non
22/016 dipende da come è stata effettuata la configurazione ODM di un processo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Tipo di interpolatore/processo errato
Errore interno:
Viene richiesto al sistema di configurare in modo errato un processo od un interpolatore. Non
22/017 dipende da come è stata effettuata la configurazione ODM di un processo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Modalità errata per gestione errore da parte di interpolatore/processo
Errore interno:
Viene richiesto al sistema di configurare in modo errato un processo od un interpolatore. Non
22/018 dipende da come è stata effettuata la configurazione ODM di un processo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Modalità gestione emergenze da parte di interpolatore/processo errata
Errore interno:
Viene richiesto al sistema di configurare in modo errato un processo od un interpolatore. Non
22/019 dipende da come è stata effettuata la configurazione ODM di un processo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Interpolatore/processo non trovato
Errore interno:
Viene richiesto al sistema di eseguire una movimentazione su un processo od un interpolatore
22/020
non esistente. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Interpolatore/processo già esistente
Errore interno:
Viene richiesto al sistema di creare un processo od un interpolatore precedentemente
22/021
creato. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.

45004606R 318
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Interpolatore/processo ancora in esecuzione
Errore interno:
Si è cercato di chiudere un interpolatore o processo mentre ha ancora attive delle attività di
22/022
movimentazione. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Movimento ancora in esecuzione
Errore interno:
Si è cercato di liberare un movimento mentre è ancora in esecuzione. Non viene evidenziato
22/023
a fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Richiesta di avvio fase di interpolazione rifiutata
Errore interno:
È stato richiesto l’attivazione di una movimentazione per interpolatore e la richiesta è stata
22/024 rifiutata perché esistono attività già attive sull’interpolatore. Non viene evidenziato a fronte
di operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Richiesta di ingresso in Hold rifiutata
Errore interno:
È stata richiesta la messa in stato di hold di un interpolatore che si trova in fase di errore,
22/025
emergenza o reset. Non viene evidenziato a fronte di operazioni richieste da part program o
a fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Richiesta di uscita da Hold rifiutata
Errore interno:
È stata richiesta l’uscita dallo stato di hold di un interpolatore che non era in tale stato. Non
22/026
viene evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni
svolte da un operatore. È una segnalazione interna relativa alla programmazione PLC, se
segnalata a video occorre contattare il servizio di assistenza.
Assi fuori profilo in uscita da Hold
Errore interno:
Almeno un asse, durante l’uscita da Hold, non si trova sulla posizione che aveva al momento
22/027 della entrata in Hold. Avviene se si cerca di riprendere un movimento sospeso in hold senza
aver riportato gli assi alla posizione che avevano nel momento di ingresso in Hold. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Comando incongruente richiesto da processo
Errore interno:
Il controllo ha cercato di eseguire un comando incongruente con il processo che lo ha
22/028
richiesto. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.

45004606R 319
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Errata modalità di ingresso in FeedHold
Errore interno:
È stata richiesta una modalità di esecuzione di FeedHold non prevista. Non viene evidenziato
22/029
a fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Classe del comando sconosciuta
Errore interno:
È stata richiesta l’esecuzione di un comando la cui tipologia non è prevista. Non viene
22/030
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Comando sconosciuto
Errore interno:
È stata richiesta l’esecuzione di un comando non previsto. Non viene evidenziato a fronte di
22/031
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Comando di RoundOff ammesso solo in continuo
Errore interno:
È stata richiesta l’esecuzione del comando di RoundOff non in modalità di continuo. Non
22/032
viene evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni
svolte da un operatore. È una segnalazione interna relativa alla programmazione PLC, se
segnalata a video occorre contattare il servizio di assistenza.
Comando non accettato perché esauriti enti di precalcolo
Errore interno:
È stato richiesta l’esecuzione di un comando di movimento in continuo nel momento in cui la
22/033 coda di precalcolo è piena, ovvero sono stati esauriti tutti gli enti di precalcolo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Informazioni non disponibili
Errore interno:
Sono state richieste informazioni su interpolatori processi o assi inesistenti. Non viene
22/034
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Mandrino fermo
È stata chiesta una operazione di filettatura o maschiatura con mandrino fermo. Tali
22/035
operazioni richiedono che il mandrino sia in rotazione. Verificare la programmazione del
comando S e la sua attivazione.
Si richiede mandrino con rampe di accelerazione configurate
L’operazione di maschiatura richiede che il mandrino abbia configurato delle rampe di
22/036 accelerazione (tempo di inversione diverso da 0) in modo tale da poter effettuare
correttamente l’inversione sul fondo del foro. Verificare in ODM la configurazione del
mandrino utilizzato

45004606R 320
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Lunghezza di maschiatura insufficiente
La lunghezza del tratto di maschiatura è insufficiente a portare l’asse alla velocità di
22/037
sincronizzazione con la velocità di rotazione del mandrino in modo tale da poter effettuare
correttamente l’operazione di maschiatura.
Accelerazione asse di maschiatura errata
22/038 L’accelerazione configurata per l’asse di maschiatura non consente di raggiungere la velocità
di maschiatura rispettando il tempo di inversione del mandrino.
Asse mandrino errato
22/039 Si sta cercando di utilizzare come mandrino un asse che non è di tipo mandrino oppure l’asse
mandrino è Master o Slave.
Asse in uso
22/040 L’asse specificato è in uso da parte di un altro interpolatore o processo per cui la richiesta di
utilizzo dell’asse non può essere soddisfatta.
Asse in uso durante operazioni di movimentazione in Hold
L’asse specificato è in uso da parte di un altro interpolatore o processo (che lo sta muovendo
22/041
durante movimentazione in stato di Hold) per cui la richiesta di utilizzo dell’asse non può
essere soddisfatta.
Discordanza tra i clock di interpolazione associati agli assi
Gli assi coinvolti in un movimento od in una acquisizione o virtualizzazione hanno clock di
22/042
interpolazione differenti per cui non possono essere mossi in interpolazione tra di loro.
Verificare in ODM la configurazione degli assi.
Asse non presente
22/043
È stato richiesto l’utilizzo di un asse non configurato. Verificare l’ID dell’asse richiesto.
Asse con ID errato
22/044 È stato richiesto l’utilizzo di un asse il cui ID non è previsto, ovvero ha un ID il cui valore è al
di fuori dell’intervallo dei valori ID previsti dal sistema. Verificare l’ID dell’asse richiesto.
Richiesta di utilizzo di un asse Gantry (slave)
È stato richiesto l’utilizzo, tramite ID, di un asse Gantry (slave). È possibile richiedere e
22/045
comandare solamente l’utilizzo di un asse Gantry (master). Verificare ID dell’asse richiesto e
la sua configurazione in ODM.
Asse non disponibile
Errore interno:
Sono state richieste movimentazioni con assi non associati all’interpolatore (durante una
22/046 movimentazione in continuo) o non appartenenti al processo in uso. Non viene evidenziato a
fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Asse duplicato
22/047 È stato richiesto più volte l’utilizzo di uno stesso asse all’interno di un comando di
movimentazione o di virtualizzazione. Verificare il comando.
Asse in uso per operazione di Master/Slave
22/048 È stato richiesto l’utilizzo di un asse già in uso da una operazione di Master/Slave. L’asse
potrà essere utilizzato solamente nel momento in cui è terminata tale modalità operativa.

45004606R 321
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Richiesta di operazione su un asse non disponibile
Errore interno:
Sono state richieste operazioni su assi non associati all’interpolatore o non appartenenti al
22/049 processo che richiede l’operazione. Non viene evidenziato a fronte di operazioni richieste da
part program o a fronte di operazioni svolte da un operatore. È una segnalazione interna
relativa alla programmazione PLC, se segnalata a video occorre contattare il servizio di
assistenza.
Condizione di inizio movimento errata
22/050 La condizione richiesta per iniziare un movimento è errata. Verificare la codifica della
condizione ed i parametri ad essa associati.
Condizione di fine movimento errata
22/051 La condizione richiesta per terminare un movimento è errata. Verificare la codifica della
condizione ed i parametri ad essa associati
Condizione di interruzione movimento errata
22/052 La condizione richiesta per interrompere un movimento è errata. Verificare la codifica della
condizione ed i parametri ad essa associati
È richiesta almeno una condizione da associare al movimento
Congiuntamente al movimento deve essere specificata una condizione di partenza o di
22/053
arresto o di interruzione. Verificare quale condizione deve essere associata al movimento
programmato
Parametro associato alla condizione di movimento errato
22/054 Il segnale (variabile booleana di tipo bit) associato alla condizione di inizio, fine o
interruzione movimento è errato o non compatibile con la condizione stessa.
Modalità comando MoveUntil errata
Errore interno:
All’interno del comando MoveUntil è stata richiesta una modalità di esecuzione non prevista.
22/055
Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.
Modalità di inizio continuo errata
Errore interno:
All’interno del comando di inizio continuo è stata richiesta una modalità di esecuzione non
22/056
prevista. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.
Modalità di fine continuo errata
Errore interno:
All’interno del comando di fine continuo è stata richiesta una modalità di esecuzione non
22/057
prevista. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.
Richiesta modalità di asservimento errata
Errore interno:
È stata richiesta una modalità di asservimento asse non prevista. Non viene evidenziato a
22/058
fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.

45004606R 322
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Tipo di rampa richiesta non prevista
Errore interno:
È stata richiesta una tipologia di rampa di accelerazione non prevista. Non viene evidenziato
22/059
a fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Programmazione asse oltre il limite operativo positivo
22/060 È stata richiesta una posizione asse che supera il limite operativo positivo, il comando
22/160 richiesto non viene attivato. Verificare il comando richiesto e/o i limiti operativi attivi in
quel momento.
Programmazione asse oltre il limite operativo negativo
22/061 È stata richiesta una posizione asse che supera il limite operativo negativo, il comando
22/161 richiesto non viene attivato. Verificare il comando richiesto e/o i limiti operativi attivi in
quel momento.
È stato raggiunto il limite operativo positivo
22/062
Durante una movimentazione asse è stato raggiunto il limite operativo positivo, il movimento
22/162
in corso è stato arrestato.
È stato raggiunto il limite operativo negativo
22/063
Durante una movimentazione asse è stato raggiunto il limite operativo negativo, il
22/163
movimento in corso è stato arrestato.
Asse su overtravel positivo
22/064
L’asse è sull’overtravel positivo. Il comando di movimentazione non può essere eseguito ed
22/164
occorre spostare in manuale l’asse all’interno del campo operativo.
Asse su overtravel negativo
22/065
L’asse è sull’overtravel negativo. Il comando di movimentazione non può essere eseguito ed
22/165
occorre spostare in manuale l’asse all’interno del campo operativo.
Azzeramento asse richiesto
22/066
Il comando può essere eseguito solamente dopo aver eseguito l’operazione di azzeramento
22/166
dell’asse in errore.
Asse non di tipo mandrino
22/067 L’operazione richiesta può essere eseguita solamente da un asse di tipo mandrino. Verificare
l’asse richiesto.
Mandrino non disponibile
22/068 Si sta cercando di utilizzare un asse mandrino non disponibile all’interpolatore od al processo
che ne sta facendo richiesta.
Comando di cambio gamma (mandrino) errato
Errore interno:
Si sta cercando di utilizzare per un asse mandrino un valore di gamma al di fuori dei valori
22/069 consentiti. Vedere ODM e gamme disponibili per l’asse mandrino. Non viene evidenziato a
fronte di operazioni richieste da part program o a fronte di operazioni svolte da un
operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Velocità nulla
22/070 È stato programmato un movimento a velocità nulla, tale valore non è previsto. Verificare il
valore programmato con F.

45004606R 323
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Valore JRK errato
È stato programmato un valore di JRK (valore per determinare la caratteristica della rampa
22/071
di accelerazione/decelerazione per le rampe a S) al di fuori dell’intervallo di
programmazione consentito.
Variabile da usare come condizione di movimento non valida
22/072 La variabile associata alla condizione di inizio, fine o interruzione movimento è errato o non
compatibile con la condizione stessa.
Modalità di definizione della velocità errata
Errore interno:
La modalità con cui è definita la velocità di lavorazione (Feed) non è prevista dal sistema. La
22/075 velocità di lavorazione può essere espressa in unità/minuto, tempo, 1/tempo. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Valore di SLL errato
22/076 Il valore della variabile SLL (valore minimo della velocità di rotazione del mandrino in G96)
non può essere negativo. Vedere la programmazione della variabile.
Valore di SSL errato
22/077 Il valore della variabile SSL (valore massimo della velocità di rotazione del mandrino in G96)
non può essere negativo. Vedere la programmazione della variabile.
Valore SSL inferiore di SLL
La variabile SSL (valore massimo della velocità di rotazione del mandrino in G96) non può
22/078
assumere valori inferiore rispetto alla variabile SLL (valore minimo della velocità di rotazione
del mandrino in G96). Vedere la programmazione delle due variabili.
Funzionalità non prevista in maschiatura
Errore interno:
Il comando di maschiatura richiede una modalità non prevista dal sistema. Non viene
22/079
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Numero di origine errato
Errore interno:
È stata richiesta l’attivazione di una origine non prevista dal sistema, ovvero con un numero
22/080 al di fuori dei valori previsti dal sistema. Non viene evidenziato a fronte di operazioni
richieste da part program o a fronte di operazioni svolte da un operatore. È una segnalazione
interna relativa alla programmazione PLC, se segnalata a video occorre contattare il servizio
di assistenza.
Origine non definita
Errore interno:
È stata richiesta l’attivazione di una origine non definita. Non viene evidenziato a fronte di
22/081
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Distanza di sicurezza in tastatura errato
22/082 Il valore della distanza di sicurezza per una operazione di tastatura non può essere nullo o
negativo. Vedere i parametri di tastatura.

45004606R 324
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Distanza di avvicinamento in tastatura errato
22/083 Il valore della distanza di avvicinamento per una operazione di tastatura non può essere nullo
o negativo. Vedere i parametri di tastatura.
Velocità di tastatura errato
22/084 La velocità da utilizzare per le operazioni di tastatura non può essere nulla o negativa.
Vedere i parametri di tastatura.
Tastatura avvenuta durante fase di approccio
22/085 Viene segnalato che la tastatura è avvenuta durante la fase di approccio, quindi all’esterno
della zona prevista per la tastatura.
Tastatura non eseguita
22/086
Viene segnalato che la tastatura non è avvenuta.
Tastatura in corso
22/087
Viene segnalato che la tastatura è ancora in corso.
Stato tastatura errato
22/088 Il tastatore segnala uno stato non previsto dal sistema. Occorre contattare il servizio di
assistenza.
Dimensione tastatore errata
22/089 Il valore del diametro del tastatore (diametro della pallina del tastatore) non può essere
negativo. Vedere i parametri di tastatura
Richiesta rifiutata per interpolazione in esecuzione
22/090
Il comando viene rifiutato perché esiste una attività di interpolazione in corso.
Valore variabile ARM non previsto
22/092 La variabile ARM ha un valore non previsto. Vedere modalità di esecuzione cerchi e possibili
correzioni automatiche sulle quote programmate.
Programmazione moto elicoidale errato
22/093 Valore del passo dell’elica non congruente. Vedi modalità di programmazione dei moti
elicoidali e parametro K.
Programmazione asse Rollover errata
È stata programmata una posizione dell’asse rollover non prevista. La posizione deve essere
22/094 inferiore al passo rollover dell’asse. Per poter eseguire più rivoluzioni sull’asse utilizzare la
modalità di programmazione incrementale. Vedere modalità di programmazione degli assi
rollover.
Inversione movimento all’interno di un ciclo fisso
Le quote programmate per un ciclo fisso richiedono una inversione di movimento rispetto alla
22/095
caratteristica di esecuzione del ciclo stesso. Vedere modalità di programmazione dei cicli
fissi.
Lunghezze errate all’interno di un ciclo fisso
Le quote programmate per un ciclo fisso richiedono delle lunghezze non congruenti rispetto
22/096
alla caratteristica di esecuzione del ciclo stesso. Vedere modalità di programmazione dei
cicli fissi.
Direzione azzeramento errata
22/097 È stato richiesto un movimento per effettuare l’azzeramento di un asse in direzione contraria
a quanto configurato sull’asse. Vedi configurazione homing asse in ODM.
Mandrino in orientamento
22/098
Non è possibile effettuare un cambio gamma durante la fase di orientamento del mandrino.
Mandrino in barenatura
22/099
Non è possibile effettuare una programmazione mandrino durante la fase di barenatura.

45004606R 325
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Mandrino in maschiatura
22/100
Non è possibile effettuare una programmazione mandrino durante la fase di maschiatura.
Mandrino senza trasduttore
22/102 L’operazione richiesta necessita di un mandrino con trasduttore. Vedere le specifiche della
funzione richiesta e la configurazione ODM per il mandrino interessato.
Lunghezza filettatura errata
La lunghezza dell’operazione di filettatura non consente l’esecuzione corretta
22/103
dell’operazione di filettatura. Vedere descrizione del ciclo di filettatura e sue modalità di
programmazione.
Valore di incremento del passo di filettatura errato
Il valore di incremento del passo di filettatura non consente una corretta esecuzione della
22/104
filettatura a passo variabile. Vedere descrizione del ciclo di filettatura e sue modalità di
programmazione.
Comando di gestione volantino errato
Errore interno:
È stata richiesta l’esecuzione di una movimentazione manuale con volantino, viene richiesto
22/105
un comando non previsto. Non viene evidenziato a fronte di operazioni richieste da part
program o a fronte di operazioni svolte da un operatore. È una segnalazione interna relativa
alla programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Parametro di scala volantino errato
Errore interno:
È stata richiesta l’esecuzione di una movimentazione manuale con volantino; viene richiesta
22/106 una scalatura (distanza da eseguire per ogni impulso del volantino) negativa, ovvero un
valore non consentito. Non viene evidenziato a fronte di operazioni richieste da part program
o a fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Numero impulsi/giro volantino errato
Errore interno:
È stata richiesta l’esecuzione di una movimentazione manuale con volantino; viene
22/107 configurato un volantino con un numero di impulsi/giro inferiori o uguali a zero, ovvero un
valore non consentito. Non viene evidenziato a fronte di operazioni richieste da part program
o a fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Tempo di aggiornamento volantino errato
Errore interno:
È stata richiesta l’esecuzione di una movimentazione manuale con volantino; viene
22/108 configurato un tempo di aggiornamento del volantino inferiore o uguale a zero, ovvero un
valore non consentito. Non viene evidenziato a fronte di operazioni richieste da part program
o a fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Comando di condivisione del mandrino errato
22/109 È stata richiesta la condivisione del mandrino in modalità errata. Vedere modalità di
condivisione del mandrino.
Richiesta di acquisizione mandrino negata
22/110 Viene richiesta l’acquisizione di un mandrino in modalità condivisa mentre il mandrino non è
stato definito condivisibile.

45004606R 326
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Richiesta di condivisione mandrino negata perché in uso
22/111 La richiesta di condivisione di un mandrino può essere fatta solamente quando il processo o
interpolatore richiedente non ha altre operazioni in corso (esempio in continuo).
Richiesta di condivisione mandrino negata perché in rotazione uso esclusivo
22/112 La richiesta di condivisione di un mandrino non può essere soddisfatta perché un altro
interpolatore o processo lo sta utilizzando in modalità esclusiva.
Comando di condivisione asse errato
22/113 È stata richiesta la condivisione di un asse in modalità errata. Vedere modalità di
condivisione asse.
Richiesta di rilascio condivisione asse negata per uso da PLC
Viene richiesto l’annullamento della condivisione di un asse, quindi riprendendone il possesso
22/114
esclusivo, mentre l’asse è correntemente in uso, in modalità condivisa, da parte di un altro
interpolatore PLC. Occorre attendere il termine dell’uso dell’asse da parte dell’altra entità.
Comando di condivisione asse negata per uso da parte di altro processo
Viene richiesto un comando di condivisione asse mentre l’asse è correntemente in uso, in
22/115
modalità condivisa, da parte di un altro processo. Occorre attendere il termine dell’uso
dell’asse da parte dell’altra entità.
Richiesta di condivisione asse negata perché in uso
22/116 La richiesta di condivisione di un asse può essere fatta solamente quando il processo o
interpolatore richiedente non ha altre operazioni in corso (esempio in continuo).
Richiesta di rilascio/acquisizione asse negata perché condiviso
22/117 La richiesta di acquisizione/rilascio di un asse non può essere fatta nel momento in cui l’asse
è in stato di condivisione.
Richiesta di uso in condivisione asse negata perché non condiviso
22/118 La richiesta di uso in condivisione di un asse può essere fatta solamente quando l’asse è stato
reso condivisibile da parte del processo o interpolatore proprietario dell’asse
Richiesta di movimento con jerk negativo
22/119 È stato richiesto un movimento da eseguire con un valore di jerk negativo. Sono ammessi solo
valori positivi.
Richiesta di movimento con accelerazione negativa
22/120 È stato richiesto un movimento da eseguire con un valore di accelerazione negativa. Sono
ammessi solo valori positivi.
Richiesta di movimento con decelerazione negativa
22/121 È stato richiesto un movimento da eseguire con un valore di decelerazione negativa. Sono
ammessi solo valori positivi.
Richiesta di movimento con velocità negativa
22/122 È stato richiesto un movimento da eseguire con un valore di velocità negativa. Sono ammessi
solo valori positivi.
Richiesta di movimento con dejerk negativo
22/123 È stato richiesto un movimento da eseguire con un valore di dejerk negativo. Sono ammessi
solo valori positivi.
Richiesta di movimento con tempo minimo di accelerazione negativo
22/124 È stato richiesto un movimento da eseguire con un valore di tempo minimo di accelerazione
negativo. Sono ammessi solo valori positivi.
Richiesta di movimento con tempo minimo di decelerazione negativa
22/125 È stato richiesto un movimento da eseguire con un valore di tempo minimo di decelerazione
negativo. Sono ammessi solo valori positivi.

45004606R 327
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Richiesta una tipologia di override dinamico errato
22/126 È stata richiesta l’applicazione di un override dinamico con modalità non previste; sono
possibili solo override in % ed override in velocità.
Troppe aree protette
22/127
È stato richiesto l’utilizzo di un numero di aree protette superiore al massimo consentito.
Area protetta non definita
22/128
È stato richiesto l’utilizzo di un’area protetta non definita.
Comando di utilizzo area protetta errato
22/129
È stato richiesto un comando non previsto di utilizzo dell’area protetta.
Comando di utilizzo area protetta non disponibile
22/130
È stato richiesto un comando di utilizzo dell’area protetta in un momento non consentito.
Troppi assi programmati nel blocco
22/131
È stato richiesto un movimento con un numero di assi superiore al massimo consentito.
22/132 Asse in uso da camma.
22/133 Timeout errato.
22/134 Modalità volantino errata.
22/135 Circolare errata per LTH.
22/136 Exit EMG KO.
22/137 Id assi errati per LTH
Termine movimento su limite operativo positivo
22/150
Il movimento in manuale è terminato sul limite operativo positivo.
Termine movimento su limite operativo negativo
22/151
Il movimento in manuale è terminato sul limite operativo negativo.
Termine movimento per raggiungimento limite area protetta
22/152
Il movimento è terminato sul limite definito da un’area protetta.
Riferimento incrociato asse Master/Slave
22/201 È stata richiesta una esecuzione in Master/Slave ove un asse richiesto come slave è già
master del suo stesso master. Verificare la sequenza Master/Slave.
Asse non di tipo slave
22/202 È stata richiesta una operazione tipica di un asse slave su un asse che non è ancora stato
definito come slave in una associazione Master/Slave..
Operazione non consentita su asse slave
22/203 L’operazione sullo slave non può essere fatta parchè ancora in fase di aggancio al suo
master. Per effettuare l’operazione occorre sganciarlo dal master.
Dissociazione non consentita su asse slave
22/204 L’operazione di dissociazione di uno slave dal suo master non può essere effettuata poiché
esistono delle operazioni in corso sullo slave stesso.
Modalità inseguimento Master/Slave errata
22/205 È stata richiesta una modalità di inseguimento di un asse master da parte di uno slave con
una modalità non prevista. Vedere modalità di programmazione assi Master/Slave.
Modalità di aggancio/sgancio Master/Slave errata
È stata richiesta una modalità di aggancio o sgancio (attivazione o disattivazione della fase di
22/206
inseguimento) di un asse master da parte di uno slave con una modalità non prevista. Vedere
modalità di programmazione assi Master/Slave.

45004606R 328
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Sincronizzazione Master/Slave su quota asse con origini diverse
Errore interno:
È stata richiesta l’esecuzione di una operazione di sincronizzazione Master/Slave in funzione
della posizione dell’asse master; si richiede che tutti gli slave abbiano associato la stessa
22/207
origine Master/Slave. Vedere modalità di programmazione assi Master/Slave. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Sincronizzazione Master/Slave su quota asse con origine associata
Errore interno:
È stata richiesta l’esecuzione di un’operazione di sincronizzazione Master/Slave in funzione
della posizione dell’asse master; si richiede che tutti gli slave non abbiano associata alcuna
22/208
origine Master/Slave. Vedere modalità di programmazione assi Master/Slave. Non viene
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
Uso asse slave negato
22/209 L’asse richiesto come slave non può essere usato in Master/Slave perché già in uso da parte
di associazione assi duali (UDA/SDA).
Uso asse master negato
22/210 L’asse richiesto come master non può essere usato perché non appartiene al processo che
richiede l’associazione.
Uso asse ad inseguire negato
L’errore appare nelle seguenti condizioni:
Si sta cercando di definire il mandrino come asse ad inseguire
Si sta cercando di eseguire una tastatura utilizzando un asse che è settato come asse ad
22/211 inseguire
Si sta cercando di eseguire un ciclo fisso utilizzando un asse che è settato come asse ad
inseguire
Almeno uno degli assi interessati da un’interpolazione circolare (planare o spaziale) è
definito come asse ad inseguire
Posizione iniziale spline errato
Il punto iniziale di una spline deve coincidere con il punto finale della spline precedente. È
22/212
una segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Richiesta TCP errata
22/213 Comando associato al TCP non riconosciuto. Se segnalata a video occorre contattare il
servizio di assistenza.
Numero assi TCP richiesti differenti da quelli della cinematica
Al TCP è giunta una richiesta di attivazione con un numero di assi diverso rispetto a quello
22/214
definito nella cinematica attiva. Se segnalata a video occorre contattare il servizio di
assistenza.
Id assi TCP richiesti differenti da quelli della cinematica
22/215 Al TCP è giunta una richiesta di attivazione con un ID assi diverso rispetto a quello definito
nella cinematica attiva. Se segnalata a video occorre contattare il servizio di assistenza.
Asse direzione utensile TCP deve essere un asse virtuale
22/216 Al TCP è giunta una richiesta di attivazione con assi di direzione utensile non virtuali. Se
segnalata a video occorre contattare il servizio di assistenza.

45004606R 329
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


Homing non disponibile per assi associati al TCP
22/217
Non è possibile azzerare assi con TCP attivo.
Homing non disponibile per assi virtuali
22/218
Non è possibile azzerare assi virtuali.
Asse virtuale non disponibile
E’ stata richiesta l’acquisizione di un asse virtuale all’interno di un Interpolatore, l’asse
22/219
passato e da acquisire non è però un asse virtuale. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
TCP in continuo non disponibile nella modalità Realtime Tool Compensation
22/220 Non è possibile programmare (tcp,.. in continuo se è attiva la compensazione realtime della
lunghezza e diametro utensile.
Assi direzione utensile e rotativi (TCP) non disponibili contemporaneamente
22/221 Non è possibile programmare movimentazione degli assi relativi alla direzione utensile TCP e
rotativi TCP contemporaneamente. Sono previsti solo movimenti manuali.
Un asse Virtuale NON può essere usato come asse Slave
22/222
Non è possibile utilizzare come Slave un asse virtuale.
22/223 Asse slave di una camma
22/224 Asse slave di un master/slave
22/225 Homing non eseguibile con camma
Assi direzione utensile e lineari (TCP) non disponibili contemporaneamente se
aggiornamento quote virtuali attivo.
22/226
Con TCP,5 e modalità utensile 11, 12 oppure 13 non è possibile programmare
contemporaneamente movimentazione degli assi relativi alla direzione utensile e lineari TCP.
22/227 Richiesti filtri su tutti gli assi reali del TCP
Processo non esistente
Errore interno:
È stato richiesto lo stato di un processo inesistente. Non viene evidenziato a fronte di
22/300
operazioni richieste da part program o a fronte di operazioni svolte da un operatore. È una
segnalazione interna relativa alla programmazione PLC, se segnalata a video occorre
contattare il servizio di assistenza.
Attivazione lookahead non consentita
Errore interno:
È stata richiesta l’attivazione della lookahead nel momento in cui questa è già attiva. Non
22/301
viene evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni
svolte da un operatore. È una segnalazione interna relativa alla programmazione PLC, se
segnalata a video occorre contattare il servizio di assistenza.
Comando di lookahead non consentito
Errore interno:
È stato richiesto un comando di lookahead nel momento in cui questa non è attiva. Non viene
22/302
evidenziato a fronte di operazioni richieste da part program o a fronte di operazioni svolte da
un operatore. È una segnalazione interna relativa alla programmazione PLC, se segnalata a
video occorre contattare il servizio di assistenza.
CycleStart rifiutato
Errore interno:
È stato richiesto un comando di CycleStart in uno stato di sistema che non consente l’avvio di
22/303
un movimento. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.

45004606R 330
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio ed azione di recupero


CycleStop rifiutato
Errore interno:
È stato richiesto un comando di CycleStop in uno stato di sistema che non consente l’arresto
22/304 di un movimento (o movimento non presente). Non viene evidenziato a fronte di operazioni
richieste da part program o a fronte di operazioni svolte da un operatore. È una segnalazione
interna relativa alla programmazione PLC, se segnalata a video occorre contattare il servizio
di assistenza.
Comando dinamico non congruente
Errore interno:
È stato chiesto un movimento in punto-punto (G29) durante un continuo senza aver terminato
22/305
il continuo stesso. Non viene evidenziato a fronte di operazioni richieste da part program o a
fronte di operazioni svolte da un operatore. È una segnalazione interna relativa alla
programmazione PLC, se segnalata a video occorre contattare il servizio di assistenza.
Richiesta per Processo PLC non disponibile
Errore interno:
È stato richiesto un comando su un processo PLC, il comando non è disponibile per processi
22/306
PLC. Non viene evidenziato a fronte di operazioni richieste da part program o a fronte di
operazioni svolte da un operatore. È una segnalazione interna relativa alla programmazione
PLC, se segnalata a video occorre contattare il servizio di assistenza.
Disallineamento su numero assi
Errore interno:
22/307
Viene segnalato un errore di disallineamento tra informazioni interne (numero assi) durante
operazioni in UPR. Occorre contattare il servizio di assistenza.
Disallineamento su ID assi
Errore interno:
22/308
Viene segnalato un errore di disallineamento tra informazioni interne (Id assi) durante
operazioni in UPR. Occorre contattare il servizio di assistenza.
Funzione non disponibile durante UPR
22/309
Viene richiesta una operazione non disponibile mente esiste un comando UPR attivo.
22/320 Errore durante l'apertura del file di camma
22/321 Non trovato LF a fine file di camma
22/322 File di camma non esistente
22/323 Tabella di camma non strettamente monotona
22/324 Errore formato della prima riga del file di camma
22/325 Errore formato righe del file di camma
22/326 Raggiunto massimo numero di camme
22/327 Raggiunto massimo numero di action
22/328 Id camma non valido
22/329 Id action non valido
22/330 Camma non definita
22/331 Modulo della camma ciclica non valido
22/332 Camma impegnata in una action
22/333 Posizione di sgancio maggiore del modulo della camma ciclica
Azzeramento asse terminato
Viene segnalata la fine di una operazione di azzeramento di un asse segnalando la distanza
22/6001
tra micro-marker (qualora il ciclo di azzeramento eseguito utilizzi l’algoritmo di ricerca
micro-marker).

45004606R 331
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13.1.2 Errori generati dalla libreria Processo


Codice Descrizione del messaggio e azione di recupero
Errore di sintassi sul blocco:
23/001
Errore di sintassi rilevato nel blocco di programma o nel blocco MDI.
Errore su apertura file NMC_BINARY.DAT
23/002 Il file di configurazione della macchina generato dall’ODM non è stato trovato. Ricompilare
l’ODM ed eseguire il reboot.
Errore su apertura file LDIRDATA.DAT
23/003 Il file di configurazione dei direttori di default generato dall’ODM non è stato trovato.
Ricompilare l’ODM ed eseguire il reboot.
Memoria per processo insufficiente
23/004 È stato raggiunto il limite massimo di occupazione in memoria. Ridurre il numero di
variabili configurate in ODM oppure aumentare la memoria RAM disponibile.
Processo non definito o numero processo fuori range
23/005 Il processo destinatario del comando non è stato configurato oppure è il numero di
processo richiesto è inferiore ad 1 o superiore a 24.
Errore di formato
Questo errore viene visualizzato nei casi seguenti:
Formato di variabile errato
Valore di IBSIZE non valido (diverso da 0,3,4 o 5)
Indice o indici della variabile errati
Velocità di avanzamento (F) con valore 0 o negativo
Numero di ripetizione non ammesso (deve essere compreso tra 1 e 65535)
23/006 Errore di formato in assegnazione (esempio: tra stringhe di lunghezza differente)
Errore di lettura/scrittura di variabili WinPLUS
Errore di formato di una variabile carattere nel triletterale DIS (variabile non
specificata come CHAR)
Variabile non configurata
Valore del parametro T per GTA errato
Parametro di un comando errato
Identificativo di aree protetta errato (deve essere compreso tra 1 e 4)
Identificativo variabile errato
23/007 L’indice che identifica la variabile nei comandi di lettura/scrittura o assegnazione non è
corretto.

45004606R 332
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Nome asse errato
Il nome asse specificato nel comando non è corretto.
Questo errore è visualizzato nei seguenti casi:
l’asse specificato nelle funzioni di richiesta informazioni sugli assi non è stato
configurato
errore di lettura quote asse, perché l'asse specificato non esiste
l'asse specificato nelle chiamate di libreria CncGetAxQuote, CncCalcAxOfs,
CncAxOfsAct, CncCalcToolOfs, CncToolOfsAct, CncUip, CncSelAxi non esiste
l’asse programmato nella gestione delle origini (presetting, UIO, UAO RQO ecc) o
23/008 correttore (presetting), non è stato configurato
l'asse specificato nei triletterali SCF, MIR non è configurato
la definizione del piano di lavoro con G17, G18, G19, G16 è errata perché il numero di
assi configurati è inferiore a 2 oppure l'asse specificato non è configurato
il nome dell'asse da selezionare, da riferire, da condividere con il PLC o da bloccare
non è stato trovato nella tabella degli assi relativa a quel processo: non è stato
configurato
l'asse specificato nei triletterali SOL, DPA, AXO, UVW, FLT non è configurato o è
duplicato.
l'asse specificato nei comandi G92, G98, non è configurato
Troppe variabili in RD/WR
23/009
Il numero di variabili nei comandi di lettura/scrittura è superiore a quello consentito.
Numero assi errato nel comando
Il numero di assi specificato nel comando non è corretto.
23/010
Errore visualizzato per indicare che il numero di assi nel comando di libreria CncPutDinaAx
/CncSetAxShare/CncRelAxShare è superiore a quello consentito.
Errore in lettura/scrittura variabile
23/011 Il nome della variabile, specificato nei comandi di lettura/scrittura da libreria, non è
corretto o la variabile non è stata configurata.
Configurazione ODM con dati errati
23/012
Errore di dati errati
Errore in attivazione file per ripristino TCP
Errore Interno:
Indica che non è stato possibile attivare in scrittura il file utilizzato per il ripristino della
23/013
configurazione TCP.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Errore in generazione file per ripristino TCP
Errore Interno:
Indica che non è stato possibile generare il file utilizzato per il ripristino della
23/014
configurazione TCP.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Valore non valido per variabile
23/015 È stato specificato un valore fuori dall’intervallo di validità della variabile, verificare che il
valore che si vuole assegnare sia corretto.

45004606R 333
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Comando sconosciuto
Errore visualizzato se:
23/016
Comando da eseguire non corretto
Modalità richiesta errata in comando GTS
Comando incongruente con stato del sistema
Errore visualizzato se:
23/017 Comando non ammesso nello stato attuale del sistema
Esecuzione di un blocco in MDI con il sistema nello stato di WAIT
Modifica da PLC della Feed programmata non nello stato corretto
Parametro del comando errato
Errore visualizzato se:
Tipo quota in lettura errato
23/018 Numero di origine errato durante il presetting dell’origine
Numero assi o tipo di selezione errato durante una selezione assi
Errore nella definizione del versore per compensazione spessore utensile
Errore su comando di Multi Block Retrace o Ricerca Memorizzata
Risposta dal sistema non prevista
23/19
Spegnere e riaccendere il controllo: se l'errore permane, contattare l'assistenza tecnica.
RCM non abilitata
23/20 La ricerca memorizzata non è disponibile.
Per poterla utilizzare è necessario attivarla tramite AMP.
Richiesti troppi assi virtuali
Errore Interno:
23/21 Indica che sono stati attivati/disattivati troppi assi virtuali nel processo attivo.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
23/22 Comando al task di Sincronismo non accettato
Numero assi errato per il codice G
Errore visualizzato per indicare che:
si deve programmare almeno un asse in G04, G05 o G06
23/050 si deve programmare un solo asse nel blocco con cicli fissi (da G81 a G89)
non sono stati programmati assi o ne sono stati programmati troppi per G72-G74
si devono programmare entrambi gli assi sul punto iniziale di un profilo di area
protetta
Parametri mancanti per cicli fissi
23/051
Errore visualizzato se sono stati omessi i parametri del ciclo fisso (esempio K, I, ...)
Parametri mancanti per G di movimento
23/052
I parametri per il codice G richiesto sono stati omessi (esempio G33 ... K).
Parametro K e/o J mancante per G83
23/053
I parametri K o J sono stati omessi nella programmazione del ciclo fisso G83.
Parametro I e/o J mancante per i codici G2/G3/G12/G13/G14
23/054 I parametri I e/o J sono stati omessi nella programmazione dei codici G2/G3/G12/G13/G14
(cerchi).
Parametri mancanti per ciclo di misura
23/055
I parametri del ciclo di tastatura sono stati omessi.
Variabile non definita
23/056
Viene visualizzato nel caso una variabile non sia configurata.

45004606R 334
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Espressione troppo lunga
23/057
L’espressione matematica supera il limite massimo di 40 caratteri.
Funzione non permessa
Errore visualizzato per indicare che:
è stata richiesta l'attivazione di una M di tipo blocco al calcolo con il blocco al calcolo
già attivo, oppure con il sistema nello stato di HOLD.
23/058
è stata richiesta una M paramacro configurata come M prefetch
richiesta di bypass di avanzamento con blocco attivo non lineare.
è richiesta una modifica dei parametri Master-Slave, ma non ci sono assi Master-Slave
attivi
Uso errato di asse Slave
23/059
Un comando XDA/UDA/SDA cerca di definire come Slave un asse già Slave
Operando non permesso nel ciclo fisso
23/060
Operando non ammesso dai cicli fissi G72 G73 G74.
Parametro K non permesso in G84
23/061 Parametro K non ammesso durante la programmazione di G84 con mandrino senza
trasduttore.
Programmazione errata cerchio (G2/G3)
23/062 Sono stati specificati sia il centro, che il raggio (R) del cerchio da programmare
Eliminare o il raggio (R) o gli operandi (I e J) che specificano il centro.
Numero illegale di operandi
23/063
Numero illegale di operandi nel triletterale LOA
Numero illegale di pseudo assi
23/064
Troppi pseudo assi programmati nel blocco: ne sono ammessi al massimo sei.
Numero illegale di assi in G33
23/065
Programmati più di due assi in G33.
Programmato T multiutensile con PMT attivo
23/66 Non è possibile programmare un codice T multiutensile se è attiva l’esecuzione dei codici T
come paramacro
G non permessa
23/067
G non consentita nel ciclo di sgrossatura.
Operandi non permessi con le G attive
23/068
Almeno un operando incompatibile con il tipo di movimento.
Blocco non congruente con stato del sistema
Blocco programmato o digitato non compatibile con lo stato del sistema:
Sincronizzazione con blocchi sospesi in esecuzione (cioè sincronizzazione con
compensazione diametro utensile attiva oppure all’interno di una sessione G61/G60).
Se è stata programmata una M prelude non ammessa in continuo anteporre G0 su riga
23/069 precedente
Movimento circolare nello spazio durante una sgrossatura
Richiesta di migrazione assi (GTA) con ciclo fisso, correzione utensile, TCP, UPR,
virtualizzazioni, assi duali o assi master-slave attivi.
Richiesta di attivazione/cambio correttore utensile con rotazione piani (UPR) attiva
Programmati operandi di logica in un’area protetta

45004606R 335
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


G attive e stato del programma non congruenti
Funzione G non congruente con lo stato del programma attivo. Per esempio:
con compensazione diametro utensile attiva (G41,G42) non possono essere
programmati gli operatori G di ciclo fisso.
23/070
le filettature non possono essere programmate durante una compensazione diametro
utensile, o durante un ciclo fisso.
le funzioni del piano di interpolazione (G17, G18, G19) non possono essere
programmate durante una compensazione diametro utensile (G41, G42).
Ente geometrico incongruente
Stato di programma attuale ed ente geometrico impostato incongruenti. Per esempio:
Durante una sessione in spline non può essere aperta o chiusa la compensazione raggio
utensiele (G41,G42) oppure non possono essere programmati gli operatori G di ciclo
23/071
fisso.
Il blocco di movimento successivo a una G41, G42 non può essere una circolare
Non si possono programmare cerchi nello spazio in compensazione raggio utensile o nei
cicli fissi
Tipo programmazione incongruente
Tipo di programmazione assoluta, incrementale o in G79 non congruente con lo stato
23/072 di programma attuale.
Programmazione in incrementale di un asse su di un blocco nel quale è presente il
codice G79
Programmazione attuale incongruente
23/073
Programmazione attuale incongruente con quella precedente
G e modalità dinamica non congruenti
Funzione G non compatibile con la modalità dinamica corrente:
23/074 Le funzioni G72, G73, G74 non vengono accettate nelle modalità di avanzamento
continuo (G26, G27, G28).
Passaggio da G27 a G28 o viceversa con rampe non lineari attive (RAMP>1)
G41/G42 non congruenti con lo stato di programmazione
23/075 Incongruenza tra lo stato attuale del part program e la programmazione della
compensazione utensile (G41/G42).
G necessita mandrino con trasduttore
23/076
G33 e il macrociclo FIL di filettatura richiedono mandrino con trasduttore.
G non congruente con il modo feedrate
23/077
G72, G73, G74 devono essere eseguiti con G94 attivo
Operandi e stato programma non congruenti
Operando incongruente con lo stato attuale del part program.
23/078
Per esempio:
gli operandi r, b non sono consentiti nello stato ISO standard (G40)
Operandi PLC e stato di programmazione incongruenti
23/079
Gli operandi di PLC programmati non sono congruenti con lo stato del programma
Operandi PLC e modo dinamico incongruenti
Operandi PLC incongruenti con la modalità dinamica corrente.
23/080 Per esempio:
M di inizio/fine movimento non compatibile con i codici G26/G27/G28.
programmazione T con compensazione diametro utensile attiva (G41, G42).

45004606R 336
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Operandi PLC e tipo di movimento incongruenti
Operandi PLC incongruenti con il tipo di movimento.
23/081
Per esempio:
G33 + funzione M di fine movimento
Operando non permesso nel ciclo di tastatura
Operandi inibiti per il ciclo di tastatura attivo
23/082 Per esempio:
con G73 attivo è inibita la programmazione degli operandi I,J,K,R,u,v,w,b,t
con G72 attivo è inibita la programmazione degli operandi I,J,K,R,u,v,w,b,t,r
Terzo asse non programmato per elica
23/083
Manca la programmazione del terzo asse dell'elica.
Funzione Expedite senza movimento
23/084 Una M "expedite" è presente nel blocco in esecuzione ma non c'è movimento associato. La
funzione M "expedite" deve essere associata ad un movimento.
Feed non programmata
23/085
Non è stata programmata la velocità di avanzamento nell'esecuzione di cicli fissi.
Speed non programmata
23/086
Velocità rotazione mandrino non programmata nell'esecuzione di cicli fissi.
Scrittura non permessa su variabile di sola lettura
23/087 Si è cercato di scrivere una variabile in lettura sola (ISOCOMP, LINENO, RCNEAR, STE, STA,
TCPACT, TIM, XMLMAP, $A, CURPROC )
Operando non permesso con comando G77
È stato programmato un operando non permesso insieme al codice G77.
Gli operandi non permessi sono:
23/088  funzione M
 funzione T
 funzione S
 attributi del movimento
Livello di annidamento "IF" maggiore di 32
23/091
Superato il massimo livello di annidamento di comandi (IF)
ELSE non permesso
23/092
Programmato un comando (ELSE) senza che sia stato preceduto da un comando (IF)
ENDIF non permesso
23/093
Programmato un comando (ENDIF) non preceduto da un comando (IF).
Blocco Part Program troppo lungo
23/094
È stato programmato un blocco troppo lungo (>127 caratteri).
Accesso negato al Part Program
23/095 Il file di part program specificato accanto a questo errore non è accessibile in lettura in
quanto già aperto da un altro utilizzatore.
Programma già selezionato
23/096 Questo errore si verifica in modalità MDI quando si cerca di attivare più volte la stessa
paramacro.
Nome part program troppo lungo
23/097 Il nome, comprensivo del suo indirizzo nel sistema, supera il limite massimo dei 127
caratteri.
DRIVE logico non trovato
23/098
L’indirizzo logico specificato nel comando non è stato configurato in ODM o file browser.

45004606R 337
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Percorso Part Program non trovato
23/099
Il percorso specificato per il Part Program non esiste
File non trovato
23/100
Il Part Program/routine/paramacro specificato non è stato trovato nei percorsi definiti.
Nome file illegale
23/101
L’errore appare se il nome file di una tabella da caricare con LOA non è corretto
Errore da accesso a file
23/102
L’errore appare se il controllo non riesce a caricare un tabella
23/103 Errore durante manipolazione file di Part Program
SPG rifiutato
23/104
Il comando SPG è fallito
Rilascio Part Program rifiutato
23/105
Il PLC non ha autorizzato la disattivazione del Part Program
Part Program non selezionato
L’errore appare se:
23/106 si è scelto “Modifica Blocco” in MDI, ma non è stato attivato nessun Part Program
è stato premuto il tasto di Cycle Start, il controllo è in modalità AUTO oppure
BLK/BLK, ma non è stato attivato nessun Part Program
Direzione utensile non congruente con il piano di compensazione
23/107 L’errore appare, con la compensazione spessore utensile attiva, quando il movimento
programmato e la direzione utensile non sono congruenti
Assi ripetuti nel comando UDA/SDA
23/108
L’errore appare se un asse appare più volte all’interno di un comando di assi duali
Asse diverso da X o Y in descrizione area protetta
23/109
Il Part Program che descrive l’area protetta contiene riferimenti ad assi diversi da X e da Y
Programmazione del triletterale non permessa
Esecuzione del triletterale non permessa.
L’errore appare se si cerca di:
eseguire un triletterale all’interno del Part Program che descrive l’area protetta
eseguire uno dei comandi seguenti mentre sono in esecuzione le SPLINE:
 attivazione TCP
23/110
 comando DAN
 condivisione assi con il PLC
 migrazione assi (GTA)
 definizione di assi ad inseguire (AXF)
 definizioni assi alta velocità (SPL)
 rototraslazione della terna cartesiana (UPR, G53, G54, G57)
Funzione M non permessa
23/111
È stata programmata una M di blocco al calcolo in continuo
Diametro o lunghezza ripetuti in RQT/RQP
In un blocco contenente un triletterale RQT o RQP sono state specificate lunghezze (o
23/112
diametri) con lo stesso indice.
Verificare che in tale blocco non esistano lunghezze (o diametri) con lo stesso indice.
G non congruente con stato Spline
23/113
Il codice G programmato non è compatibile con la programmazione di Spline.
Operandi PLC non congruenti con stato spline
23/114
Gli operandi PLC programmati non sono compatibili con la programmazione di Spline.

45004606R 338
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Asse parametro non asse di calcolo Spline
23/116 Un asse specificato per il calcolo parametro Spline non appartiene alla lista degli assi per i
quali vengono calcolate le Spline
Programmato asse non appartenente alla Spline
23/117
Programmato un asse non appartenente alla Spline mentre le Spline sono attive.
Errore di accesso a paramacro salvata
23/118 Errore Interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Errore di caricamento della tabella $PTECH alla linea
23/119
Il file che si sta cercando di caricare nella tabella $PTECH contiene un errore.
23/120 Errata configurazione TCP per trasformazione Spline
Punti teorici e/o misurati mancanti per G39
23/121 Non sono stati specificati i punti teorici o quelli misurati necessari per eseguire la
rototraslazione G39. Specificare i punti teorici con G37 o quelli misurati con G38
Punti non coerenti tra G37 e G38
23/122 Le coordinate dei punti misurati e quelli teorici non sono coerenti, verificare che la terna
di riferimento sia la stessa per i punti teorici (G37) e per quelli misurati (G38)
Specificato numero record per R/W su file ASCII
23/123 È stato specificato il campo record per la scrittura o lettura di un file ASCII. I file ASCII non
utilizzano il concetto di record.
Errore di dimensione nel terminatore
23/124 Il terminatore utilizzato nella trasmissione o ricezione da porta seriale è più lungo del
previsto
Dati mancanti o troppi dati per caricamento $PTECH
23/125 Il caricamento della tabella tecnologica estesa non è riuscito. Il file che si sta cercando di
caricare ha un numero di righe diverso dalla dimensione della tabella tecnologica estesa.
Dato o formato riga non corretto per caricamento $PTECH
23/126 La riga del file che si sta cercando di caricare nella tabella tecnologica estesa non è
corretta
Accesso in scrittura su variabili di tabella Pocket non abilitato
23/127 Si cerca di scrivere una variabile della tabella Pocket senza aver abilitato la scrittura
mettendo a 1 la variabile POCKACC
Comando S10-8600 non compatibile su OPEN
23/128
I seguenti comandi 8600 non sono più supportati: ASC, DSA e DSC
Blocco non ammesso durante il calcolo tempo del programma
In fase di calcolo tempo ciclo di un programma non è possibile:
23/129
Programmare G59
Ricevere dati da linea seriale
Argomento illegale per TAN
23/150 L'argomento dell'operatore TAN è 90° o un suo multiplo dispari (il risultato sarebbe
infinito).
Radice quadrata di numero negativo
23/151
L'argomento dell'operatore SQR è un numero negativo.
Troppi assi programmati
L’errore appare se:
23/152
sono stati programmati più di dodici assi in un blocco.
non è stato possibile assegnare un asse extra-processo durante UDA/SDA/XDA

45004606R 339
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Divisione per zero
23/153
È stata programmata una divisione per zero (ad esempio X 10/0).
Stringa troppo lunga
23/154
La lunghezza di una stringa non può eccedere i 127 caratteri.
Etichetta duplicata
23/155 Questo errore viene visualizzato in fase di attivazione del Part Program e indica che sono
state programmate due etichette identiche.
Etichetta non definita
23/156 L'etichetta programmata in un'istruzione di salto (GTO) o in una istruzione di esecuzione di
subroutine (EPP) non esiste.
Etichetta troppo lunga
23/157 Questo errore, che viene visualizzato in fase di attivazione del Part Program, indica che è
stata programmata un'etichetta con più di quaranta caratteri.
Troppi sottoprogrammi in Part Program
Questo errore, che viene visualizzato in fase di attivazione di un Part Program, indica che
il numero di subroutine chiamate tramite CLS nel Part Program è maggiore del massimo
23/158
configurato in AMP.
Se possibile modificare tramite ODM questo valore nella sezione o modificare le chiamate
utilizzato CLD.
Troppe etichette in Part Program
Questo errore, che viene visualizzato in fase di attivazione di un Part Program indica che il
23/159 numero di etichette programmate nel Part Program è maggiore del massimo configurato in
AMP.
Se possibile modificare tramite ODM questo valore.
Fine file (FINITO_FILE)
Segnalazione di fine programma per operazioni di:
Skip
23/160
Modifica
Ricerca stringa
Esecuzione programma
Non trovato LF (0x0a) a fine file
23/161 Il codice di fine file (LF) non è stato trovato. Modificare il programma, aggiungendo un
ritorno a capo dopo l’ultima linea.
Inizio programma
23/162
Segnalazione di inizio programma.
Annidamento di RPT maggiore di 5
23/163
Superato il massimo livello di annidamento per ripetizioni (5).
Annidamento di subroutine maggiore di 7
23/164
Superato il massimo livello di annidamento per subroutine (7).
Annidamento di EPP maggiore di 5
23/165
Superato il massimo livello di annidamento di triletterali EPP(5).
RPT/EPP/IF/ELSE aperto a fine programma
L’errore appare se è stata raggiunta la fine del file, della paramacro o della routine in
esecuzione:
23/166 senza trovare il blocco ERP che chiude il ciclo RPT programmato.
senza completare la parte di part program definita con EPP.
senza trovare il blocco ENDIF che chiude il blocco IF oppure ELSE attualmente in
esecuzione.

45004606R 340
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


ERP senza RPT
23/167
Il triletterale ERP è stato programmato senza essere preceduto dal triletterale RPT.
Paramacro modale già attiva
23/168 È stata programmata una paramacro G modale quando una paramacro G modale era già
attiva.
Logaritmo di numero negativo
23/170
L’argomento di una funzione logaritmo è minore o uguale a zero.
Troppi enti in definizione area protetta
23/173 Le aree protette devono essere definite al massimo tramite 10 enti geometrici se chiuse,
oppure 9 enti se aperte.
Impossibile aggiungere ente chiusura area protetta
23/174 Un’area protetta aperta è stata definita con 10 enti geometrici, il controllo non può
chiuderla.
Impossibile ridefinire area protetta attiva
23/175 Si sta cercando di ridefinire un’area protetta attiva. Disattivare l’area protetta prima di
ridefinirla
Errore in definizioni limite 3D dell'area protetta
23/176 Il limite inferiore e superiore dell’estensione tridimensionale dell’area protetta non
appartengono allo stesso asse
XMLrules.txt non caricato. Impossibile eseguire comandi XML
23/177 Non è stato fornito un file delle corrispondenze XML-paramacro, ma si cerca di eseguire
comandi XML.
Errore di sintassi in XMLrules.txt
23/178
Il file delle corrispondenze XML-paramacro ha un errore di sintassi
Opzione High Speed Machining non installata
23/179
Le funzioni di High Speed Machining (Spline) non sono disponibili sulla macchina.
23/180 Tipo interpolazione non ammessa in lavorazione HSM
Funzioni High Speed Machining non abilitate da ODM
23/181 Le funzioni High Speed Machining non sono abilitate nell’AMP attivo. Modificare il valore
del flag di abilitazione in AMP.
Tabella corrispondenze XML in aggiornamento
Errore di condivisione tabella corrispondenze XML: il part program ha cercato di accedere
23/182
alla tabella delle corrispondenze XML mentre questa era in caricamento.
Verificare la temporizzazione delle operazioni.
Alias globale duplicato
23/186
Modificare il file AliasTable.txt alla linea indicata nel commento e correggere l’errore.
Alias globale troppo lungo o non valido
23/187
Modificare il file AliasTable.txt alla linea indicata nel commento e correggere l’errore.
Troppi alias globali
23/188 Modificare il file AliasTable.txt e rimuovere tutti gli alias globali a partire dalla linea
indicata nel commento.
Alias locale duplicato
23/189
Correggere la linea errata del programma o della macro.
Alias locale non valido
23/190
Correggere la linea errata del programma o della macro.
Overflow tabella alias locali
23/191 Ridurre il numero di alias locali utilizzati dal programma e/o dalle macro da esso
chiamate.

45004606R 341
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Alias non definito
23/192 Verificare il nome dell’alias utilizzato nel programma o nella macro; eventualmente
aggiungere l’alias tra gli alias locali o tra gli alias globali, nel file AliasTable.txt.
Ente nullo in defizione aree protette
23/194 Nel file di defizione dell’area protetta è presente un ente lineare più corto della soglia di
movimento nullo oppure è presente un cerchio completo connesso ad altri enti.
Parametro XML non riconosciuto
23/195 In un comando XML di tipo Inline è stato trovato un parametro che non appartiene al
blocco come definito nel mapping file.
Mancano uno o più parametri del blocco XML
23/196 Uno o più parametri definiti nel mapping file non appaiono nella chiamata corrente di un
blocco XML di tipo Inline
Asse non riferito
L'asse programmato non è stato azzerato.
23/250
Tentativo di riqualifica di un correttore associato ad un asse non azzerato.
Tentativo di presetting di un correttore associato ad un asse non azzerato.
DPP non definito per ciclo di misura
23/251 Parametri del ciclo di tastatura (quota di accostamento, quota di sicurezza, velocità) non
definiti con il triletterale DPP.
Troppe M expedite programmate
23/252
Nel blocco è stato programmato più di un codice M "Expedite".
Codice M non definito
23/253 È stato programmato un codice "M" non configurato in AMP.
Configurare tramite ODM il codice M richiesto.
Cerchio non congruente
23/254
Cerchio non congruente: il raggio o i punti finali del cerchio non sono corretti.
Parametri di filettatura errati
Parametri di filettatura incongruenti.
23/255 Calcolare il parametro I in base alla seguente formula:
16 k
2(distanza filettatura)

Passo elica non congruente


23/256
Passo dell'elica incongruente.
SCF diverso tra assi del piano di interpolazione
Gli assi del piano, nella programmazione di G02/G03 (cerchio), devono avere lo stesso
23/257
fattore di scala.
Modificare il fattore di scala tramite il triletterale SCF.
Geometria incongruente
23/258
Programmazione errata di un profilo ISO.
Profilo compensato incongruente
23/259
Il profilo programmato, dopo compensazione, non è più continuo.
Verso di percorrenza profilo errato
23/260 Il valore della compensazione utensile da applicare in G41/G42 provoca un inversione della
direzione sul profilo.
Errore in chiusura compensazione utensile
23/261
Uscita errata dalla modalità compensazione diametro utensile (G40).

45004606R 342
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Buffer di transito pieno
L’errore appare se:
durante la programmazione con compensazione utensile attiva, (G41 - G42) sono
23/262
stati programmati troppi movimenti fuori dal piano di interpolazione.
con correzione interferenze attiva (IBSIZE diverso da 0) vengono scartati troppi
enti generatori di interferenze
Troppi blocchi da risolvere
23/263 Buffer degli enti in ingresso pieno. Segnalato a video occorre contattare il servizio di
assistenza.
Ingresso in zona protetta
23/264
Il movimento programmato entra in una delle zone protette attive.
Ciclo fisso nel piano ruotato
23/265 Programmazione di un ciclo fisso su un piano ruotato.
Disabilitare la rotazione sul piano.
Parametri lunghezza ciclo fisso errati
23/266 Parametri di profondità foratura, quota d’avvicinamento e quota di ritorno non congruenti
durante un ciclo fisso
Parametri errati per ciclo fisso
23/267 Parametri associati a cicli fissi incongruenti (I, J, K, R)
Per esempio: K = 0.
23/268 Ciclo fisso non previsto
Programmazione ciclo di tastatura errato
23/269 La distanza di accostamento è nulla.
Misura di un foro con raggio nullo (per esempio G73r0E5).
Assi non sul profilo
Questo messaggio viene visualizzato quando si cerca di uscire dallo stato di CYCLE STOP
23/272 (HOLD) dopo aver aver effettuato spostamenti manuali su uno o più assi senza riportarli sul
profilo.
Selezionare "JOG RETURN" ed eseguire il "ritorno al profilo".
Errore in uscita da HOLD: modo cambiato
Si tenta di uscire dallo stato di HOLD con una modalità operativa diversa da quella attiva
23/273
quando è avvenuto l'ingresso nello stato di HOLD.
Selezionare la stessa modalità operativa e ripetere l'uscita da HOLD.
Blocco non permesso in HOLD
23/274
In stato di HOLD è stato programmato un blocco di MDI che non può essere eseguito.
Active reset non permesso
23/275
Non è possibile attivare l’active reset su cicli fissi
Errata programmazione assi rollover in G90
23/276
È stato programmato, con G90 attivo, una quota per l'asse rollover maggiore del suo passo.
Programmazione assi virtuali non permessa
È stata programmata un’origine un asse virtuale o temporanea su di un asse virtuale
23/277
oppure si è cercato di definire un asse virtuale come asse lineare per una configurazione
TCP.
Programmati assi reali o movimenti manuali non ammessi con tool direction attiva
23/278
Si è cercato di eseguire il micro di zero per un asse virtuale.
Comando non ammesso in RCM
23/279
Comando non permesso durante la ricerca memorizzata.

45004606R 343
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Buffer di enti output pieno
23/280 Troppi enti nel buffer di output con correzione interferenze attiva. Il profilo programmato
e la dimensione utensile generano troppe interferenze sul profilo.
Asse condiviso con il PLC
23/281
Si è cercato di muovere in manuale o di far tornare sul profilo un asse condiviso con il PLC.
Area protetta non convessa
23/282
L’area protetta deve essere una superficie convessa.
Area protetta non definita. Impossibile attivare
23/283 Si è cercato di attivare un’area protetta che non era stata precedentemente definita
tramite il triletterale DPA.
Richiesta traslazione su asse non presente in area protetta
23/284 Durante l’attivazione di un’area protetta si chiede di effettuare una traslazione lungo un
asse diverso da quelli lungo cui è definita l’area.
Tipo asse errati per controllo assi tangenziale o virtualizzazione
23/285 Il tipo (lineare/rotativo) di almeno uno degli assi specificati per il controllo asse
tangenziale o per una virtualizzazione di tipo UVP, UVC, UVA non è corretto.
Ritorno automatico sul profilo non permesso
23/286 Dopo l’esecuzione di un comando MDI in HOLD non è permesso utilizzare il ritorno
automatico sul profilo
Programmato un raccordo su di un angolo concavo tra enti
23/287 Non è permesso programmare esplicitamente un raccordo tra due enti geometrici che
formano tra loro un angolo concavo
Funzioni Tool Center Point non abilitate da ODM
23/288 Le funzioni Tool Center Point non sono abilitate nell’AMP attivo. Modificare il valore del
flag di abilitazione in AMP.
Impossibile assegnare più correttori ad un asse
In un blocco contenente un triletterale di tipo AXO è stato programmato più volte lo stesso
23/289
asse.
Correggere tale blocco.
Richiesto XDA senza master / slave definiti
Si cerca di eseguire un comando XDA-xda senza che sia sia prima stata definita
23/290
un’associazione master/slave.
Effettuare prima l’associazione usando il comando (XDA,1 .
Programmato assi reali durante virtualizzazione
Sono stati programmati assi reali appartenenti a una virtualizzazione (UVA, UVP, UVC)
23/291
attiva.
Disattivare la virtualizzazione prima di programmare l’asse.
Accesso ad una linea non abilitata della tabella $PTECH
23/292 Si è cercato di leggere un valore della tabella $PTECH in una riga non abilitata.
È necessario abilitare la riga ponendo a 1 il primo valore della riga.
Stato della camma non coerente con la richiesta
23/293 Lo stato attuale della camma non permette l’esecuzione del comando richiesto.
Verificare la coerenza tra richiesta e stato della camma.
Configurazione di processo incoerente in uscita da HOLD
Si tenta di uscire dallo stato di HOLD con una configurazione di Processo diversa da quella
23/294
attiva quando è avvenuto l'ingresso nello stato di HOLD.
L’errore appare se si sono modificate le condivisioni degli assi

45004606R 344
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Asse rollover con modulo diverso da 360° in virtualizzazione
L’asse rotativo rollover scelto per una virtualizzazione (UVP, UVA, UVC) ha modulo diverso
23/295
da 360°. È necessario che il modulo di un asse rollover coinvolto in una virtualizzazione sia
di 360°.
Comando non congruente con stato TCP
L’errore appare in due casi:
23/296
Si sta eseguendo il Preset del correttore con TCP attivo
Si sta eseguendo la funzione CncTcpCalcRot() con TCP disattivo
Comando non coerente con la cinematica attiva
23/297 Si sta eseguendo la funzione CncTcpCalcRot() con un numero di rotativi del TCP superiore a
2 oppure con tipo cinematica uguale a 2
Modo di selezione errato
Si è cercato di selezionare un modo operativo non ammesso.
I modi operativi vanno da 1 a 8 e sono i seguenti:
1. MDI
2. AUTO
23/350
3. BLOCK by BLOCK
4. CONTINUOUS JOG
5. INCREMENTAL JOG
6. RETURN ON PROFILE
7. HOMING FILE
8. HPG (Hand Wheel)
Numero assi selezionati fuori range
L’errore appare in due casi:
Il numero di assi selezionati per il mirroring (triletterale MIR) è maggiore del
23/351
numero di assi disponibili
Il numero di assi selezionati per spostamenti manuali con la chiamata di libreria è
errato. L'intervallo ammesso va da 1 al numero di assi configurato per il processo.
Troppi assi selezionati per movimento manuale
Nel blocco di part program sono stati inseriti troppi nomi di assi rispetto a quelli che sono
23/352
accettati.
Modificare il blocco di part program
Cycle non permesso per modo selezionato
Questo errore viene visualizzato quando viene premuto un CYCLE START nelle seguenti
condizioni del sistema:
stato HRUN con MBR attivo e modo selezionato diverso da AUTO o BLK/BLK
selezionata una modalità diversa da MDI durante l'esecuzione di movimenti assi
23/353
sistema.
stato IDLE con MBR attivo e modo diverso da AUTO o BLK/BLK
stato HOLD e modo AUTO o BLK/BLK con MBR non configurato in AMP
stato HOLD con MBR attivo e modo selezionato diverso da AUTO o BLK/BLK
NB: Per maggiori informazioni sugli stati macchina consultare il Manuale d'Uso.
Lunghezza dati fuori range
L’errore appare se:
23/354
La lunghezza di un blocco in MDI è fuori intervallo
Errore su chiamata del comando di libreria per attivare lo sharing degli assi
Errore nella definizione dei limiti operativi
23/355
Errore durante la definizione dei limiti operativi software con il triletterale SOL.
Correttore non definito per l’asse
23/356
Si è cercato di pre-impostare un correttore non associato all'asse specificato.

45004606R 345
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Codice di orientamento utensile errato
23/357
Codice di orientamento dell'utensile errato.
Errore restituito da chiamata Axis
23/358 Errore Interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Movimento manuale non eseguito: nessun asse configurato
23/359 I movimenti manuali, di homing e di ritorno sul profilo non possono essere eseguiti, poiché
non è stato selezionato nessun asse per i movimenti in manuale.
Asse non configurato per GTA/GTS/TCP
23/360 L'id programmato nel triletterale GTA, GTS o TCP non è configurato oppure nel triletterale
GTS è stato programmato un asse non mandrino
Programmato asse PLC in GTA
L’identificativo dell’asse programmato nel triletterale GTA corrisponde a un asse PLC non
23/361
condiviso.
Verificare la chiamata GTA e/o condividere l’asse.
Asse o mandrino non disponibile
23/362 L’asse programmato per la condivisione con il PLC non è disponibile.
L’asse che si sta cercando di acquisire non è disponibile
ID asse duplicato
23/363 Lo stesso identificativo asse è ripetuto più volte nella programmazione del triletterale
GTA.
ID asse non compatibile
23/364 L’identificativo asse specificato nel comando GTA corrisponde ad un mandrino; non potrà
perciò essere utilizzato.
Richiesti troppi tool
23/365
Sono stati settati più di 64 utensili in programmazione multitutensile
Indice di inizio ricerca utensili sbagliato
23/366 L’indice di ricerca utensili in modalità multi utensile è fuori dall’intervallo dei valori
consentiti (valori validi: 164).
Range di ricerca utensili sbagliato
23/367 L’intervallo di ricerca utensili in modalità multi utensile è fuori dall’intervallo dei valori
consentiti.
ID asse fuori range
23/368 L’identificativo dell’asse che si sta cercando di acquisire/rilasciare non appartiene al range
valido (valori validi: 164)
Correttore assegnato a più assi
23/369
Si sta cercando di assegnare lo stesso correttore a due assi differenti
Correttore lunghezza fuori range
23/370
L’indice del correttore specificato non è valido (valori validi: 1  5)
Nome asse duplicato
23/371
Lo stesso identificativo asse è ripetuto più volte nel comando PLC AxisGet
Comando CAM non riconosciuto
Errore Interno.
23/372
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Programmato PSEUDO asse in GTA
23/373
Il nome dell’asse programmato nel triletterale GTA non può essere uno pseudoasse.

45004606R 346
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Set rotazione mandrino fallita
23/400
Il PLC non accetta la variazione della velocità mandrino.
Richiesta nuovo utensile fallita
23/401
Il PLC non accetta la programmazione del codice T.
Esecuzione M fallita
23/402 Il PLC non accetta la programmazione del codice M o l’esecuzione del codice non è andata
a buon fine.
Richiesta movimentazione pseudo-assi fallita
23/403
Il PLC non accetta la programmazione dello pseudo asse.
Consenso al movimento rifiutato
23/404
Consenso al movimento negato dal PLC.
Richiesta fine movimento fallita
23/405
Il PLC risponde con errore sulla segnalazione di fine movimento.
Troppi blocchi senza movimento in inizio continuo
23/406
Sono stati programmati troppi blocchi senza movimento in modalità dinamica continua.
Asse sul profilo
23/450 Segnala che l'asse è sul profilo e che l’operazione di ritorno sul profilo è terminata
correttamente.
Fine ritorno automatico sul profilo
23/451 L'operazione di ritorno automatico sul profilo è terminata correttamente e tutti gli assi
sono sul profilo.
Fine del block retrace
23/452 L'esecuzione all'indietro dei blocchi con MBR è terminata. Per eseguire all'indietro un
maggior numero di blocchi è necessario modificare la configurazione.
Fine ricerca memorizzata
23/453
L’esecuzione della ricerca memorizzata è terminata con successo.
Programmato numero di processo corrente
23/500 Il numero di processo specificato per i comandi di sincronizzazione identifica il processo
corrente.
Opzione ASSET non abilitata
23/501
Il linguaggio ASSET non è implementato sul controllo
23/502 Ente Geometrico non definito
Ciclo fisso non possibile con mandrino condiviso
23/503 È stata effettuata la programmazione di un ciclo G84 o G86 con il mandrino impostato in
modalità non esclusiva.
Le G programmate richiedono un mandrino
G84 o G86 utilizza direttamente il mandrino, ma questo non è disponibile per il
23/504
processo corrente.
G95 e G01 non possono essere eseguite a mandrino disattivo
Dry Run già attivo
23/505
È stato richiesto l’inizio di un Dry Run quando questo era già attivo.
Processo richiesto inesistente
23/506
È stato eseguito un comando multi processo con destinatario un processo non definito.
Coda piena per processo destinazione
23/508
La coda del processo al quale è stato inviato un messaggio è piena.
Invio dati troppo lungo
23/509
I dati che si vogliono trasmettere con il comando SND superano i 576 caratteri.

45004606R 347
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Caricamento dati fallito
23/510
Il tipo o il numero di dati trasmessi col comando SND non è congruente con quello atteso.
Messaggio ancora in coda
23/511 Si è eseguito un comando SND verso un processo in un momento in cui quest'ultimo non
aveva ancora utilizzato il messaggio che gli era stato inviato precedentemente.
Comando EXE o ECM fallito
Il processo a cui è rivolto il comando (EXE o ECM), è in uno stato non congruente
23/512 per l'esecuzione automatica di un part program (es. RUN, HRUN, RUNH, HOLD) o
del comando impostato in MDI.
Il programma a cui è rivolto il comando “EXE” ha un errore di sintassi.
Canale già in uso
23/513 Il canale specificato nel triletterale OPN ha già un file associato.
Modificare il numero di canale o chiudere il canale già in uso.
File già aperto
23/515
Il comando OPN è fallito poiché il file è già stato aperto da qualcun altro.
File non trovato
23/516
Il file che si sta cercando aprire o cancellare non esiste.
Errore logico in accesso a file
23/517
Errore accedendo al file, verificare che il file non sia stato rimosso o non sia corrotto.
Tipo di accesso errato al file
23/518 Si sta cercando di leggere da un file aperto in scrittura o si sta cercando di scrivere in un
file aperto in lettura.
Raggiunto la fine del file
23/519
È stata raggiunta la fine del file senza riuscire a leggere i dati richiesti.
Manca path per file in apertura
23/521
Si è chiesto di aprire un file in lettura tramite il comando OPN senza specificarne il path.
Errore in trasmissione dati
23/522
È stato rilevato un errore durante la trasmissione dati su porta seriale.
File binario corrotto
23/525 Non è stato possibile leggere l’header di un file binario o una riga letta da un file binario
non rispetta il formato definito nel suo header.
Accesso al file binario con record errato
23/526 Il numero e formato di dati che si sta cercando di scrivere o di leggere da un file binario
non è congruente con i dati contenuti nel file.
Record troppo lungo in scrittura file
23/527
Il record che si sta cercando di scrivere nel file è troppo lungo.
Riga del data entry fuori dai limiti
23/530
Il data entry contiene troppe righe (max. 64)
Colonna del data entry fuori dai limiti
23/531
Una riga del data entry contiene troppe colonne (max. 256)
Data entry non definito
23/532
Si è cercato di utilizzare un data entry non definito per l’inserimento dati da utente
Tabella già bloccata in scrittura
23/537
Si sta tentando di bloccare una tabella che risulta già bloccata.
Porta seriale non connessa
23/539 Si sta cercando di leggere o scrivere su di una porta seriale che non è stata aperta dal
processo.

45004606R 348
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Timeout in Tx dati
23/540
È scattato il timeout per la trasmissione dati sulla porta seriale.
Timeout in Rx dati
23/541
È scattato il timeout per la ricezione dati sulla porta seriale.
Ricevuti meno dati del previsto
23/543 Il numero di dati ricevuti in una ricezione dati da seriale con terminatore non corrisponde
al numero di dati attesi.
Errore nella programmazione UPR
Programmati offset per i rotativi con UPR 0 o UPR 1
Incoerenza tra gli assi della virtualizzazione global attiva e gli assi specificati per
l’aggiornamento UPR
Si sta cercando di modificare gli assi della virtualizzazione in “continuo”
Si sta cercando di modificare il tipo di virtualizzazione in “continuo”
23/553
Si è cercato di modificare in continuo i parametri della virtualizzazione senza che
vi sia una virtualizzazione attiva
Si è cercato di attivare una virtualizzazione incrementale con assi differenti dagli
assi della virtualizzazione assoluta attiva
Si è cercato di attivare un altro tipo di virtualizzazione non compatibile con UPR
(virtualizzazioni UVC, UVP, UVA)
UPR incrementale non ammessa
Si sta cercando di programmare una rotazione della terna cartesiana (UPR) di tipo
23/554 incrementale senza che sia stata prima definita una rotazione assoluta.
Definire una rotazione della terna cartesiana assoluta prima di programmare la rotazione
incrementale.
Assi duali e virtualizzazione polare non compatibili
Le funzioni assi duali (UDA) e virtualizzazione polare (UVP) non si possono applicare
23/555
contemporaneamente agli stessi assi: un asse master o slave duale non può
contemporaneamente fare parte di una virtualizzazione.
Assi duali e virtualizzazione UVA non compatibili
Le funzioni assi duali (UDA) e virtualizzazione assi non ortogonali (UVA) non si possono
23/556
applicare contemporaneamente agli stessi assi: un asse master o slave duale non può
contemporaneamente fare parte di una virtualizzazione.
Valore raggio minimo non valido
Nella programmazione di una virtualizzazione cilindrica (UVC) è stato richiesto un raggio
23/557
minimo superiore alla posizione attuale dell’asse lineare della virtualizzazione.
Verificare il valore del raggio programmato o spostare l’asse lineare.
Assi duali e virtualizzazione cilindrica non compatibili
Le funzioni assi duali (UDA) e virtualizzazione cilindrica (UVC) non si possono applicare
23/558
contemporaneamente agli stessi assi: un asse master o slave duale non può
contemporaneamente fare parte di una virtualizzazione.
Indice della cinematica non valido
23/559
L’indice della cinematica richiesto non è valido (valori validi: 14).
Funzione non disponibile per il tipo di TCP corrente
23/560
Il parametro modalità non è disponibile per il TCP di tipo 5.
Assi slave in configurazione TCP
23/561 Uno più assi dichiarati nella configurazione è un asse slave.
Gli assi slave non possono essere assi TCP.

45004606R 349
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Errore nei parametri di configurazione del TCP
Il tipo di cinematica è inesistente.
Il verso dei rotativi è nullo
23/562 Rotativi non configurati nel TCP
Assi del TCP non di processo
Gestione rotativi in coordinate sferiche con rotativi fisici non presenti oppure con
cinematica tipo 2
Errore in acquisizione/rilascio asse
23/563
Non è possibile attivare il comando GTA in presenza di: Offset, Cicli fissi.
UPR non compatibile con configurazione TCP
23/564 È stato programmato un UPR con gestione dei rotativi, ma il TCP non è attivo oppure la
configurazione cinematica attiva non è coerente con la richiesta UPR.
Modulo nullo per i versori richiesti
Nel caso di cinematica dei soli versori (cinematica di tipo 2), non sono stati
23/565 specificati i versori i,j,k o il modulo risultante è nullo.
Nel caso di compensazione raggio tramite versori, non sono stati specificati i
versori normali al piano di interpolazione.
Errore nella programmazione dei versori
23/566 È stato programmato un blocco di soli versori, senza alcun movimento per gli assi
Sono stati programmati i versori su di un movimento di lunghezza nulla
Virtualizzazione richiesta non compatibile con virt. attiva
23/567 La virtualizzazione che si vuole attivare non è compatibile con la virtualizzazione attiva.
Non è possibile attivare contemporaneamente virtualizzazioni UVA, UVC, UVP e UPR
Specificati versori p,q,d senza i versori m,n,o
23/568 Sono stati programmati sul blocco i versori p,q,d, ma non sono stati programmati i versori
m,n,o.
Id di cinematica richiesto per attivazione TCP
Non è stato specificato l’identificativo della cinematica da attivare.
23/569
Specificare il valore della cinematica che si desidera attivare nel triletterale TCP o con la
variabile TCPDEF.
Nome asse già in uso
Il nome scelto per l’asse direzione utensile del TCP corrisponde al nome di un asse
23/570 già in uso dal processo.
Il nome scelto per l’asse virtuale corrisponde al nome di un asse già in uso dal
processo.
Funzione non disponibile
23/571 La funzione richiesta non è implementata dal controllo. Contattare il servizio di assistenza
per ulteriori informazioni.
Richiesto cambio parametri TCP con tipo TCP non coerente
È stato richiesto un cambio di parametri del TCP in continuo con tipo TCP richiesto
23/572
differente dal tipo di TCP attivo.
Effettuare la chiamata con un tipo di TCP coerente con il tipo attivo.
Impossibile aggiungere asse virtuale
Il processo corrente controlla già il numero massimo di assi, non è possibile attivare l’asse
23/573
virtuale.
Se possibile ridurre il numero di assi controllati dal processo corrente.

45004606R 350
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Gli assi dichiarati nel triletterale LTH sono utilizzati
23/574 La funzione LTH e le virtualizzazioni (UVP, UVA, UVC) o gli assi duali non si possono
applicare contemporaneamente agli stessi assi.
Comando TCP Restore non permesso con TCP già attivo
23/575 Non è possibile effettuare l’operazione di TCP Restore se è già attiva una configurazione
TCP.
Id cinematica mancante
Errore Interno:
23/600 Nel file di configurazione del TCP creato dall’ODM manca l’identificativo della cinematica.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Indice per parametro TCP mancante
Errore Interno:
Manca un indice per uno o più parametri di configurazione TCP nel file di configurazione
23/601
generato dall’ODM.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Nome parametro TCP mancante
Errore Interno:
Manca il nome di uno o più parametri di configurazione TCP nel file di configurazione
23/602
generato dall’ODM.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Parametro TCP sconosciuto
Errore Interno:
Uno o più parametri nel file di configurazione generato dall’ODM non sono stati
23/603
riconosciuti.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Nome asse direzione utensile errato
Errore Interno:
23/604 Il nome di uno degli assi legati alla direzione utensile è errato.
È una segnalazione interna, se segnalata a video occorre contattare il servizio di
assistenza.
Asse di ciclo sgrossatura / filettatura non in piano interpolazione
L’asse che è stato selezionato per effettuare la sgrossatura o la filettatura non è un asse
23/610
appartenente al piano di interpolazione. Verificare il nome asse o il piano di interpolazione
attivo
Punti allineati in sgrossatura
23/611 Durante la fase di sgrossatura del profilo è stata raggiunta una zona non sgrossabile.
Verificare la coerenza del profilo e i parametri dell’istruzione di sgrossatura
Attacco errato sul profilo
Posizione del punto di attacco non valida per ciclo di sgrossatura SPA o SPF. Il punto di
23/612 attacco deve sempre essere esterno al campo di sgrossatura dell’asse X per sgrossature
parallele all’asse X e esterno al campo di sgrossatura dell’asse Z per sgrossature parallele
all’asse Z.

45004606R 351
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Attacco al profilo e direzione profilo non congruenti
23/613 Il punto di attacco e la direzione di sviluppo del profilo non permettono di proseguire la
sgrossatura.
Troppi blocchi di movimento per sgrossatura
È stato raggiunto il numero massimo di blocchi di movimento permessi all’interno di un
23/614
profilo richiamato da una macro di sgrossatura. Verificare il valore configurato nell’AMP
attivo
Passo errato in ciclo di filettatura
23/615 Nel caso di filettatura non standard è necessario che il valore del passo programmato
rispetti i criteri richiesti (fare riferimento alla descrizione del triletterale FIL)
Angolo filetto maggiore di 180°
23/616 L’angolo di filetto programmato nel ciclo di filettatura è maggiore di 180°. Verificare il
valore dell’angolo di filetto.
Lunghezza della filettatura nulla
23/617
La lunghezza programmata per filetto lungo l’asse mandrino è nulla.
Angolo cono errato
23/618 Valore della conicità per filettatura conica errato. Nel caso di filettature coniche la
massima conicità ammessa è pari alla metà dell’angolo del filetto.
Piano di rotazione non permesso
23/619 Non è permesso eseguire un ciclo filettatura nel caso in cui ci sia una rotazione del piano
di interpolazione attiva.
Parametro 'r' necessario per uscita con raccordo
23/620 È stata richiesta una filettatura con raccordo di uscita, ma non è stato specificato il valore
del raggio del raccordo.
Errata posizione iniziale per taglio gole
23/621 La posizione di attacco per la macro di taglio gola non è coerente con i parametri
dichiarati nel blocco.
Parametri R o B non permessi per taglio gola
23/622 Sono stati programmati i raccordi / smussi esterni alla gola o a fondo gola, senza che sia
stata specificata la quota esterna per la gola.
Utensile più grande della gola
23/623
La larghezza dichiarata dell’utensile è maggiore della larghezza della gola.
Utensile non congruente con parametri R / B
23/624 La larghezza dichiarata dell’utensile è nulla oppure è minore della somma dei raccordi o
smussi programmati.
Coda sgrossatura non definita
23/625 È stato richiesta l’esecuzione di un ciclo di sgrossatura, ma non è stata definita in AMP la
dimensione della coda enti di sgrossatura.
Tipo di caricamento $PTECH non riconosciuto
23/700
Il tipo di caricamento dati per la variabile $PTECH non appartiene ai tipi validi.
Numero dati inviati a $PTECH errato
23/701 Non è stato possibile caricare la variabile $PTECH con i dati richiesti, il numero di dati
inviati non corrisponde al numero di dati attesi dal controllo per la modalità di invio scelta.
Errore utente –
23/800
Errore generato esplicitamente dall’utente tramite il comando DER
Warning utente –
23/801
Warning generato esplicitamente dall’utente tramite il comando DEw

45004606R 352
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13.1.3 Errori della libreria tabelle


Codice Descrizione del messaggio e azione di recupero
Indice magazzino non valido
25/101 Il valore di indice del magazzino non è corretto.
Verificare che il valore sia compreso tra 1 e 10 inclusi.
Magazzino non disponibile
25/102 Il magazzino non è configurato e quindi non è utilizzabile.
Configurare il magazzino prima di utilizzarlo.
Utensile già a magazzino
25/104
Si sta cercando di caricare a magazzino un utensile che è già in un magazzino.
Campo random non coerente tra utensile e pocket
25/105 I campi random dell’utensile e della pocket sono non coerenti.
Verificare che il campo random dell’utensile e della pocket siano corretti.
Dimensione diversa tra pocket e utensile
25/106 La dimensione della pocket e dell’utensile sono diverse, non si può effettuare
l’operazione richiesta.
Tipo utensile non compatibile con magazzino
25/108 La forma dell’utensile non è compatibile con il magazzino.
Verificare il tipo dell’utensile e il tipo di magazzino.
Utensile e pocket di tipo fisso non compatibili
L’utensile e la pocket prescelta sono entrambi di tipo fisso, ma non sono
25/109
compatibili (l’utensile dovrebbe essere caricato in un’altra pocket o la pocket è
riservata per un altro utensile)
Utensile non a magazzino
L’utensile che si vuole spostare dal magazzino non è nel magazzino o nella pocket
25/110
specificati.
Verificare la posizione dell’utensile.
Utensile non trovato
25/111 Non è stato trovato l’utensile specificato.
Verificare che l’utensile sia presente.
La pocket richiesta non appartiene al magazzino
25/112 L’indice della pocket è al di fuori dell’intervallo di validità.
Verificare la correttezza del valore di indice e la dimensione del magazzino.
Pocket già caricata
25/113 Si cercando di caricare un utensile in una pocket di magazzino che contiene già un
utensile.
Ingombro non appartiene al magazzino
25/114 Una pocket ingombro necessaria all’utensile si troverebbe fuori dal magazzino.
Verificare la configurazione del magazzino, è possibile che sia corrotta.
Ingombro sx già in uso
La pocket ingombro che dovrebbe essere utilizzata dall’utensile corrente è già in
25/115
uso.
Verificare la configurazione del magazzino, è possibile che sia corrotta.
Ingombro dx già in uso
La pocket ingombro che dovrebbe essere utilizzata dall’utensile corrente è già in
25/116
uso.
Verificare la configurazione del magazzino, è possibile che sia corrotta.

45004606R 353
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Codice Descrizione del messaggio e azione di recupero


Pocket non caricata
Si sta cercando di togliere un utensile da una pocket che non contiene nessun
25/117
utensile.
Verificare il valore di pocket specificato.
Pocket non di tipo master
25/118 La pocket non può diventare master per l’utensile corrente.
Verificare l’indice pocket, la configurazione del magazzino o il tipo utensile
Vita utensile inferiore al previsto
Non è stato possibile trovare un utensile con vita residua maggiore o uguale al
25/120
valore richiesto, ma è stato trovato un utensile con valore di vita residua inferiore
a quanto richiesto.
Direzione di ricerca sconosciuta
Si sta cercando di cercare una pocket o un utensile in una direzione che il
25/125
controllo non riconosce.
Verificare che il parametro di direzione di ricerca sia corretto.
Direzione di ricerca non compatibile con magazzino
25/126 La direzione di ricerca non è compatibile con il magazzino.
Modificare il valore di direzione di ricerca.
Configurazione pocket del magazzino corrotta
La configurazione delle pocket del magazzino non è più coerente, non è possibile
25/131
effettuare l’operazione richiesta.
Verificare la configurazione delle pocket del magazzino.
Non é stato possibile caricare alcuni utensili
25/138 Non è stato possibile caricare alcuni utensili presenti in tabella poiché il
magazzino cui appartengono non è configurato.

45004606R 354
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13.1.4 Errori generati dalla libreria geometrica


Codice Descrizione del messaggio e azione di recupero
Gli enti non si intersecano
Non è stato possibile calcolare le intersezioni tra un movimento circolare ed un
26/001
altro movimento. Verificare che il punto iniziale, il punto finale ed il raggio o
centro del movimento circolare siano corretti.
Rette parallele
Non è stato possibile inserire un raccordo tra due enti. Il raccordo può essere di
26/005
tipo programmato o generato dall’ottimizzazione percorso utensile in
compensazione utensile (TPO = 33)
Ente non definito correttamente
26/006
Errore interno, se segnalato a video occorre contattare il servizio di assistenza.
Punti allineati
26/007 I punti misurati durante un misura dei parametri di un foro (G73) non definiscono
un cerchio.
Raggi differenti tra pto iniziale e punto finale
Il raggio del movimento circolare programmato calcolato sul punto iniziale è
26/010
differente dal raggio calcolato rispetto al punto finale. Verificare le coordinate
del centro del movimento circolare ed i punti iniziale e finale
Cerchio non congruente
Non è stato possibile normalizzare un movimento circolare. Verificare il punto
26/011 iniziale, il punto finale ed il raggio o centro del movimento. Definire
correttamente la tolleranza di precisione per l’interpolazione circolare e la
modalità di normalizzazione dell’arco
Vettore perpendicolare non definito
È stato programmato una circonferenza o una semicirconferenza nello spazio
26/012 usando il codice G12 (G13), ma non è stato definito il vettore perpendicolare al
piano su cui giace la circonferenza.
Definire tale vettore tramite le componenti x, y, e z.

45004606R 355
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13.1.5 Errori della libreria security

Codice Descrizione del messaggio ed azione di recupero


Opzione non abilitata (A30 UPR Enable)
50/059
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A31 TCP Enable)
50/060
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A32 Extended TCP Enable)
50/061
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A33 High Speed Enable)
50/062
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A34 Axis and Spindles Migration)
50/063
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A35 Dual Axes UDA/SDA)
50/064
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A36 Extended Dual Axes XDA)
50/065
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A37 Following Axes AXF)
50/066
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A38 Splines(G61) Enable)
50/067
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A39 Workpiece setting error compensation)
50/068
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A40 Extended Workpiece setting error compensation)
50/069
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A41 Electronic CAM)
50/070
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A42 XML from Part Program)
50/075
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A43 Access to Table from ASSET)
50/077
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A44 Multi-process synchronization from ASSET)
50/078
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A45 TCP/IP Communication)
50/079
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A46 XML file access from Asset)
50/080
La PAK installata non permette l’esecuzione del comando.
Opzione non abilitata (A47 RS232from Asset)
50/081
La PAK installata non permette l’esecuzione del comando.

45004606R 356
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

13.1.6 Errori della libreria trasformazioni tridimensionali


Codice Descrizione del messaggio e azione di recupero
Matrice A non invertibile
59/001 Errore interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Id cinematica non esistente
59/002 Errore interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Troppi Tcp configurati
59/003 Errore interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Troppi Upr configurati
59/004 Errore interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Errore Interno
59/005
Se segnalato a video occorre contattare il servizio di assistenza.
Troppe Virtualizzazioni configurate
59/006 Errore interno.
Se segnalato a video occorre contattare il servizio di assistenza.
Posizione sotto il raggio minimo
Durante una virtualizzazione UVP è stato programmato un movimento che
59/007 porterebbe l’asse lineare della virtualizzazione in una posizione inferiore al raggio
minimo definito per la virtualizzazione.
Verificare il movimento programmato o ricalcolare il valore di raggio minimo
Tipo di rotazione di Eulero non riconosciuta
59/008 Errore Interno.
Se segnalato a video occorre contattare il servizio di assistenza.
59/009 Errore calcolando gli angoli di Eulero
59/010 Errore in calcolo norma di un vettore

45004606R 357
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione

Contacts
PRIMA ELECTRO S.p.A.
OSAI Business Unit
Strada Carignano, 48/2
Moncalieri (TO) - ITALY
Tel. +39.011.9899800
web: www.osaicnc.com
e-mail: sales@primaelectro.com

Copyright © 2018 by PRIMA ELECTRO S.p.A.

45004606R 358

Potrebbero piacerti anche