Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Manuale di Programmazione
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.
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
45004606R 3
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 4
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 5
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
4.7 RQP – Riqualifica dei correttori utensili (valori di presetting) ................................................................................... 179
5.8 TPT – Soglia di scostamento dallo spigolo (Tool Path Threshold) ............................................................................ 216
5.12 CURDIAM / CURDIAM2 – Modifica del raggio utensile / raggio utensile toroidale ............................................ 223
45004606R 6
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
6.2 SSL – Limite della velocità di rotazione del mandrino .................................................................................................. 227
6.3 M19 – Arresto della rotazione mandrino con orientamento ..................................................................................... 228
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.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
11.3 EVM – Stima del tempo di esecuzione di un movimento lineare ............................................................................... 295
45004606R 8
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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:
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.
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! 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.
45004606R 11
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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.
45004606R 13
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
G, X, Y, F
Word
Una word (parola) è un indirizzo seguito da un valore numerico. Per esempio, le seguenti sono word:
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:
TUTTI I CARATTERI
/ ETICHETTA NUMERO #o&
CONSENTITI
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.
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
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.
Esempio:
G1 X100 Y50 ; Blocco di movimento
E1=10 // Variabile locale E
(ROT,45) (* Comando di rotazione
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:
G1 X500 Y20 F200
Per esempio:
(ROT,45)
(DIS,"message text")
45004606R 18
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Esempio:
I seguenti blocchi sono equivalenti
G1X100 G1X=100
G2X10Y10R200 G2X=10Y10R=200
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:
NOTA:
Non è possibile programmare i valori nell'intervallo +0.00001, perché 0.00001 è il valore minimo
accettato dal controllo.
45004606R 19
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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
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
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:
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.
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:
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
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
45004606R 27
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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
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.
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
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
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.
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
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.
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.
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
45004606R 33
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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:
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
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
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.
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.
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:
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):
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.
Sintassi
dove:
codici-G Altri codici G compatibili con G00 (consultare "Codici G compatibili" nel Cap. 2).
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.
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
Sintassi
dove:
codici-G Altri codici G compatibili con G01 (consultare "Codici G compatibili" nel Cap. 2).
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.
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:
10
x
0
90
10
0
45004606R 38
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
dove:
codici-G Altri codici G compatibili con G10 (consultare "Codici G compatibili" nel Cap. 2).
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
Il movimento circolare viene eseguito alla velocità di lavoro programmata ed è coordinato e simultaneo
su tutti gli assi programmati nel blocco.
Sintassi
dove:
codici-G Altri codici G compatibili con G02 e G03 (consultare "Codici G compatibili" nel Cap. 2).
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.
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.
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
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
45004606R 42
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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).
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 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
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
Sintassi:
dove:
codici-G Altri codici G compatibili con G14 (consultare "Codici G compatibili" nel Cap. 2).
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).
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
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.
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
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
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).
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
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
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.
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.
retta mediana
45004606R 53
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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:
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).
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
dove:
codici-G Altri codici G compatibili con G02 e G03 (consultare "Codici G compatibili" nel Cap. 2)
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
Sintassi
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.
45004606R 57
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Le figure seguenti illustrano alcuni esempi di filettatura a passo costante. Si noti che l'asse U è un asse
diametrale.
Z
U
Blocco di part program: G33 Z-100 K2
K2
Z-100
Z
U Blocco di part program: G33 U40 Z-80 K3
K3
Z-80
U40
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
U
4
5
10
7
6
5
4
45004606R 59
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
45004606R 60
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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
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
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.
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
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.
Sintassi
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
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
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.
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
È 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.
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)
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 "/".
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
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.
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)
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
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 "/".
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
È 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
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 :
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
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 :
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 :
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
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 :
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 :
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:
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:
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
Sintassi
(XDA)
Sintassi
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
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
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:
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
45004606R 81
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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.
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’.
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.
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
Sintassi
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
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
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.
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
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 RigaTipoFile; NumRighe;TipoPosizMaster;TipoPosizSlave
100;10 Altre RigheMaster;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 RigaTipoFile; NumRighe;TipoPosizMaster;TipoPosizSlave
100;1;0.2;3.3;4;5 Altre RigheMaster;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 RigaTipoFile; NumRighe;TipoPosizMaster
100;OW(12,0xF000,0xFF00) Altre RigheMaster;Output
200;OF(0x01,0x03)
300;MW(1000,0xF000,0xFF00)
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.
Sintassi
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 le
posizioni dello slave.
out Identificativo della camma appena creata.
45004606R 90
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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.
Sintassi
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
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
Sintassi
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
Con tale istruzione viene interrotta l’esecuzione di una o più camme elettroniche e le stesse vengono
diasabilitate.
Sintassi
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.
Sintassi
(CAM, 0 {,CamId})
dove:
CamId Identificativo della camma precedentemente creata.
45004606R 94
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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)
45004606R 96
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
Sintassi
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
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
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
45004606R 100
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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
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
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
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
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".
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
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
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
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.
Caratteristiche:
Il valore di default di questa variabile è caratterizzabile tramite ODM.
45004606R 108
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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.
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
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).
45004606R 110
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 111
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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
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.
45004606R 115
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
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
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
Caratteristiche:
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
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.
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
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
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
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
Sintassi:
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:
45004606R 127
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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
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)
Sintassi:
REM = valore
dove:
valore: 0 ritorno sul punto di ingresso in hold
1 ritorno automatico a fine movimento
45004606R 131
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
dove:
codici-G Altri codici G compatibili con G70 e G71 (consultare "Codici G compatibili" nel Cap. 2).
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.
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
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.
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
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.
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
Sintassi
dove:
codici-G Altri codici G compatibili con G4, G9 (consultare "Codici G compatibili" nel Cap. 2).
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
Sintassi
dove:
codici-G Altri codici G compatibili con G05, G09 (consultare "Codici G compatibili" nel Cap. 2).
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).
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.
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
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
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
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.
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
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
45004606R 141
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
Sintassi
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)
.
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
Sintassi
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.
45004606R 145
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
(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
(UAO, 1)
(ROT, 30, 1)
(UIO, X100, Y50)
… 30
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
Sintassi
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".
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.
.
45004606R 149
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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.
45004606R 151
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
Sintassi
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
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
Sintassi
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
Sintassi
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
45004606R 157
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Esempio:
Y
150
100
area protetta
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
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.
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
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
10
X
0
0 35 55 75 95
45004606R 160
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
Esempio:
(PAD,3)
Questa istruzione disabilita il controllo sull'area 3.
45004606R 161
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
COMANDO FUNZIONE
Sintassi
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:
45004606R 167
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
Questo capitolo tratta la programmazione di utensili e correttori; ricordiamo che le funzioni descritte
devono essere gestite dalla logica di macchina.
Ulteriori informazioni correlate si possono trovare nel capitolo 6 (Funzioni Ausiliarie M).
45004606R 170
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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.
45004606R 171
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
varname È una variabile locale o di sistema contenente il primo di una sequenza di utensili.
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
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
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
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
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" .
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:
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
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
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
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.
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
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.
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
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
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.
Le figure illustrano come viene applicata la compensazione utensile nei due casi descritti.
Percorso programmato
Percorso compensato
Percorso programmato
Percorso compensato
45004606R 181
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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)
45004606R 182
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
45004606R 183
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
45004606R 184
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.....
45004606R 185
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Direzione utensile
Verso di percorrenza
dell’ente
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
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
45004606R 187
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
- 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
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
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
Y Programma:
N88 G1 G40 X50 Y15
N100 G X.. Y..
G41
G42
15
0
x
50
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
Esempi:
L'ultimo movimento del profilo è di tipo rettilineo (TPO attivo)
Programma:
N87 G1 X20 Y40
N88 G40 X50 Y15
N100 G X.. Y..
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
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..
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
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
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
punto 2
45004606R 193
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Punti 1 e 2
Compensato
r
r r
Percorso N10
Compensato
N11
Percorso
Programmato N12
G41
G42
r r
punto 1
punto 2
45004606R 194
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
45004606R 196
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
r valore
dove:
valore Il valore del raccordo da programmare: negativo per spostamenti in verso orario, positivo
per spostamenti in verso antiorario.
Esempio:
2 2
1 1
45004606R 197
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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:
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
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
BLOCCO 1
tangente al punto
finale del blocco 1
tangente al punto
iniziale del blocco 2
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
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.
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).
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.
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
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.
D
b
a
B
B ’
A
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
45004606R 205
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
Qualora sia attivo anche il bit 6 (TPO= 1+32+64=97) le stesse considerazioni appena descritte vengono
applicate agli spigoli interni.
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
r r
BLOCCO r
r r
G42
r GENERATO
r
G42
r
r=raggio utensile
r=raggio utensile
45004606R 207
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
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
con TPO = 33
con TPO = 33
con TPO = 33
con TPO = 1
con TPO = 33
45004606R 210
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
.
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
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
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
45004606R 213
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
45004606R 214
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
45004606R 215
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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
45004606R 216
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Questi fattori di compensazione vengono utilizzati per profili molto semplici (contorniture parallele agli
assi) o per fresare superfici tridimensionali.
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.
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
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)
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
Sintassi
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
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:
Nel caso in cui venga cambiata l’unità di misura tramite codice G (passaggio G70G71 oppure
G70G71) 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:
45004606R 223
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 224
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
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
45004606R 226
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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
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.
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
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.
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
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
45004606R 232
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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)
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
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.
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.
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
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.
45004606R 236
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
*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.
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..)).
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:
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)
FE1
SE2
TE1.E2
45004606R 238
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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.
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
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.
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
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
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
45004606R 241
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
$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
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.
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à:
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)
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
45004606R 244
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
All'interno dei programmi queste variabili possono essere usate per leggere o scrivere dei valori o delle
stringhe nelle operazioni di assegnazione.
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.
45004606R 246
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
0 1 2 3 4 5 6 7 8 9 1011 99
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.
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.
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).
45004606R 248
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
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.
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
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
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(L15L1)
FL1
SL1
TL1.L3
45004606R 252
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
Sintassi
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
Sintassi
dove:
n È un numero intero compreso tra 100 e 998
Caratteristiche:
Esistono due gruppi di paramacro:
da 100 a G699 Paramacro non modali
da G700 a G998 Paramacro modali
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
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)
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.
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
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
Sintassi
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
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
45004606R 260
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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:
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.
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 H52H59
Primo codice M non paramacro H60
Paramatri associati al primo codice M non paramacro H6370
Secondo codice M non paramacro H61
Paramatri associati al secondo codice M non paramacro H7178
Terzo codice M non paramacro H62
Paramatri associati al terzo codice M non paramacro H7986
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
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]
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
45004606R 265
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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:
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.
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
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.
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.
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
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.
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
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
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
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
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
........... ........... ........... ...........
........... ...........
...........
...........
...........
...........
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
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
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
Sintassi
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,’ “LABEL” ’) : la label LABEL non verrà inserita nella tabella label
del part program.)
SC0.30= ” E1 =10”
(EPB, SC0.30) : equivale al blocco E1=10
SC40.30 = “# X10”
(EPB, SC40.30) : equivale al blocco #X10
45004606R 284
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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:
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
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
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.
Sintassi
DSB = valore
dove:
valore Il valore può essere:
0 i blocchi barrati vengono eseguiti
1 i blocchi barrati non vengono eseguiti
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
Sintassi
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.
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
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.
45004606R 293
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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.
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.
Il sistema mette a disposizione 10 variabili: da CTV(0) a CTV(9) nelle quali si troveranno i seguenti tempi
calcolati in secondi:
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
Sintassi
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:
45004606R 295
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
CODICE G FUNZIONE
G00 Posizionamento rapido dell'asse
G27 Operazione in sequenza continua con riduzione automatica di velocità sugli spigoli
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
45004606R 299
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
CODICE G FUNZIONE
G42 Correzione sul profilo con utensile a dx
G67 Spezza il profilo spline in due con velocità contratta sullo spigolo
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
G95 Programmazione della velocità di avanzamento in pollici per giro o millimetri per giro
45004606R 300
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
CODICE G FUNZIONE
G98 Pre-impostazione dell’asse con mirror
45004606R 301
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
Sì
rapido
TBV Precisione associata ai versori delle spline durante lavorazione Sì
TBVG0 Precisione associata ai versori delle spline durante spostamenti in
Sì
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 è
Sì
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 è
Sì
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
45004606R 305
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
DPA Definizione di area protetta 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
45004606R 307
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
CODICE
FUNZIONE SINCRONO MODIFICABILE
TRILETTERALE
SOL Limiti di fine corsa software 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.
CODICE
FUNZIONE OPZIONE OPEN-10 OPEN-20 OPEN-30
TRILETTERALE
AXF Assi a inseguire A37 —
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
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
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 —
UPR (2, 3, 6,
Attivazione di una rotazione piani su 5 assi A40 —
12, 16)
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 —
45004606R 313
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
45004606R 314
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER
141 8D ì 157 9D Y
T
173 AD ¡ 189 BD
DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER DEC HEX CHARACTER
45004606R 315
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 316
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 317
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 318
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 319
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 320
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 321
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 322
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 323
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 324
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 325
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 326
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 327
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 328
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 329
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 330
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 331
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 332
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 333
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 334
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 335
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 336
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 337
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 338
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 339
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 340
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 341
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 342
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 343
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 344
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 345
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 346
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 347
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 348
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 349
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 350
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 351
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 352
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 353
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 354
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 355
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
45004606R 356
Prima Electro S.p.A. OPENcontrol – Manuale di Programmazione
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
45004606R 358