SINUMERIK 840D sl/ 5 SINUMERIK 828D 6 Preparazione del ... · NCU software di sistema per 840D...

954
SINUMERIK SINUMERIK 840D sl/SINUMERIK 828D Preparazione del lavoro Premessa Programmazione NC flessibile 1 Gestione dei file e dei programmi 2 Settori di protezioni 3 Istruzioni di percorso speciali 4 Trasformazioni delle coordinate (FRAME) 5 Trasformazioni 6 Correzioni utensile 7 Comportamento sulla traiettoria 8 Accoppiamenti assi 9 Azioni sincrone al movimento 10 Pendolamento 11 Punzonatura e roditura 12 Rettifiche 13 Ulteriori funzioni 14 Programmi di sgrossatura personalizzati 15 Tabelle 16 Appendice A SINUMERIK SINUMERIK 840D sl/ SINUMERIK 828D Preparazione del lavoro Manuale di programmazione 06/2009 6FC5398-2BP20-0CA0 Valido per Controllo numerico SINUMERIK 840D sl/840DE sl SINUMERIK 828D Software Versione NCU software di sistema per 840D sl/840DE sl 2.6 Software di sistema NCU per 828D 2.6

Transcript of SINUMERIK 840D sl/ 5 SINUMERIK 828D 6 Preparazione del ... · NCU software di sistema per 840D...

SINUMERIK SINUMERIK 840D sl/SINUMERIK 828D Preparazione del lavoro

Premessa Programmazione NC flessibile

1Gestione dei file e dei programmi

2

Settori di protezioni

3

Istruzioni di percorso speciali

4Trasformazioni delle coordinate (FRAME)

5

Trasformazioni

6

Correzioni utensile

7Comportamento sulla traiettoria

8

Accoppiamenti assi

9Azioni sincrone al movimento

10

Pendolamento

11

Punzonatura e roditura

12

Rettifiche

13

Ulteriori funzioni

14Programmi di sgrossatura personalizzati

15

Tabelle

16

Appendice

A

SINUMERIK

SINUMERIK 840D sl/ SINUMERIK 828D Preparazione del lavoro

Manuale di programmazione

06/2009 6FC5398-2BP20-0CA0

Valido per Controllo numerico SINUMERIK 840D sl/840DE sl SINUMERIK 828D Software VersioneNCU software di sistema per 840D sl/840DE sl 2.6 Software di sistema NCU per 828D 2.6

Avvertenze di legge Avvertenze di legge Concetto di segnaletica di avvertimento

Questo manuale contiene delle norme di sicurezza che devono essere rispettate per salvaguardare l'incolumità personale e per evitare danni materiali. Le indicazioni da rispettare per garantire la sicurezza personale sono evidenziate da un simbolo a forma di triangolo mentre quelle per evitare danni materiali non sono precedute dal triangolo. Gli avvisi di pericolo sono rappresentati come segue e segnalano in ordine descrescente i diversi livelli di rischio.

PERICOLO questo simbolo indica che la mancata osservanza delle opportune misure di sicurezza provoca la morte o gravi lesioni fisiche.

AVVERTENZA il simbolo indica che la mancata osservanza delle relative misure di sicurezza può causare la morte o gravi lesioni fisiche.

CAUTELA con il triangolo di pericolo indica che la mancata osservanza delle relative misure di sicurezza può causare lesioni fisiche non gravi.

CAUTELA senza triangolo di pericolo indica che la mancata osservanza delle relative misure di sicurezza può causare danni materiali.

ATTENZIONE indica che, se non vengono rispettate le relative misure di sicurezza, possono subentrare condizioni o conseguenze indesiderate.

Nel caso in cui ci siano più livelli di rischio l'avviso di pericolo segnala sempre quello più elevato. Se in un avviso di pericolo si richiama l'attenzione con il triangolo sul rischio di lesioni alle persone, può anche essere contemporaneamente segnalato il rischio di possibili danni materiali.

Personale qualificato L'apparecchio/sistema in questione deve essere installato e messo in servizio solo rispettando le indicazioni contenute in questa documentazione. La messa in servizio e l'esercizio di un apparecchio/sistema devono essere eseguiti solo da personale qualificato. Con riferimento alle indicazioni contenute in questa documentazione in merito alla sicurezza, come personale qualificato si intende quello autorizzato a mettere in servizio, eseguire la relativa messa a terra e contrassegnare le apparecchiature, i sistemi e i circuiti elettrici rispettando gli standard della tecnica di sicurezza.

Uso conforme alle prescrizioni di prodotti Siemens Si prega di tener presente quanto segue:

AVVERTENZA I prodotti Siemens devono essere utilizzati solo per i casi d’impiego previsti nel catalogo e nella rispettiva documentazione tecnica. Qualora vengano impiegati prodotti o componenti di terzi, questi devono essere consigliati oppure approvati da Siemens. Il funzionamento corretto e sicuro dei prodotti presuppone un trasporto, un magazzinaggio, un’installazione, un montaggio, una messa in servizio, un utilizzo e una manutenzione appropriati e a regola d’arte. Devono essere rispettate le condizioni ambientali consentite. Devono essere osservate le avvertenze contenute nella rispettiva documentazione.

Marchio di prodotto Tutti i nomi di prodotto contrassegnati con ® sono marchi registrati della Siemens AG. Gli altri nomi di prodotto citati in questo manuale possono essere dei marchi il cui utilizzo da parte di terzi per i propri scopi può violare i diritti dei proprietari.

Esclusione di responsabilità Abbiamo controllato che il contenuto di questa documentazione corrisponda all'hardware e al software descritti. Non potendo comunque escludere eventuali differenze, non possiamo garantire una concordanza perfetta. Il contenuto di questa documentazione viene tuttavia verificato periodicamente e le eventuali correzioni o modifiche vengono inserite nelle successive edizioni.

Siemens AG Industry Sector Postfach 48 48 90026 NÜRNBERG GERMANIA

N. di ordinazione documentazione: 6FC5398-2BP20-0CA0 Ⓟ 06/2009

Copyright © Siemens AG 2009. Con riserva di eventuali modifiche tecniche

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 3

Premessa

Documentazione SINUMERIK La documentazione SINUMERIK è suddivisa in 3 categorie: ● Documentazione generale ● Documentazione per l'utente ● Documentazione per il costruttore / per il service All'indirizzo http://www.siemens.com/motioncontrol/docu sono riportate informazioni sui seguenti argomenti: ● Ordinazione della documentazione

In questa sezione si trova una panoramica attuale delle pubblicazioni. ● Download della documentazione

Altri link per il download di file dal Service & Support. ● Ricerca online della documentazione

Informazioni su DOConCD e accesso diretto alle pubblicazioni nel DOConWEB. ● Per strutturare individualmente la documentazione sulla base di contenuti Siemens con il

tool My Documentation Manager (MDM), vedere http://www.siemens.com/mdm My Documentation Manager offre una serie di funzionalità per la creazione della propria documentazione di macchina.

● Formazione e FAQ Per informazioni sull'offerta di corsi di formazione e sulle FAQ (Frequently Asked Questions), selezionare il relativo link indicato nella colonna laterale.

Destinatari La presente documentazione è rivolta a: ● programmatori ● progettisti

Vantaggi Con l'ausilio del manuale di programmazione i destinatari hanno la possibilità di progettare, scrivere e testare programmi e interfacce software e di eliminare gli eventuali errori.

Premessa

Preparazione del lavoro 4 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Configurazione standard Nel presente Manuale di programmazione è descritta la funzionalità delle prestazioni standard. Per le funzionalità aggiuntive o sostitutive apportate dal costruttore della macchina si veda la documentazione del costruttore della macchina. Il controllo numerico può contenere altre funzioni oltre a quelle descritte in questo manuale. Ciò non costituisce però obbligo di implementazione di tali funzioni in caso di nuove forniture o di assistenza tecnica. Inoltre, per motivi di chiarezza, questa documentazione non riporta tutte le informazioni dettagliate relative alle varie esecuzioni del prodotto e non può nemmeno prendere in considerazione e trattare ogni possibile caso di montaggio, funzionamento e manutenzione.

Supporto tecnico Per chiarimenti rivolgersi alla seguente hotline: Europa/Africa Telefono +49 180 5050 - 222 Fax +49 180 5050 - 223 0,14 €/min. dalla rete fissa tedesca, per la telefonia mobile sono possibili differenze di prezzo Internet http://www.siemens.de/automation/support-request

America Telefono +1 423 262 2522 Fax +1 423 262 2200 E-mail mailto:[email protected]

Asia/Pacifico Telefono +86 1064 757575 Fax +86 1064 747474 E-mail mailto:[email protected]

Nota Per i numeri telefonici dell'assistenza tecnica specifica dei vari Paesi, vedere il sito Internet:http://www.automation.siemens.com/partner

Premessa

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 5

Domande sulla documentazione Per domande relative alla documentazione (suggerimenti, correzioni) inviare un fax o una E–Mail al seguente indirizzo: Fax: +49 9131- 98 2176 E-mail: mailto:[email protected]

In appendice al presente documento è disponibile un modello fax.

Indirizzo Internet per SINUMERIK http://www.siemens.com/sinumerik

Manuale di programmazione "Nozioni di base" e "Preparazione del lavoro" Le descrizioni della programmazione NC sono suddivise in due manuali: 1. Nozioni di base

Il manuale di programmazione "Nozioni di base" serve all'operaio specializzato addetto alla macchina e presuppone adeguate conoscenze nell'ambito della foratura, fresatura e tornitura. Sulla base di semplici esempi di programmazione vengono spiegati i comandi e le istruzioni note anche dalla norma DIN 66025

2. Preparazione del lavoro Il manuale di programmazione "Preparazione del lavoro" informa il tecnico su tutte le possibilità di programmazione esistenti. Grazie ad un linguaggio di programmazione speciale, il controllo numerico SINUMERIK consente la programmazione di un programma pezzo complesso (ad es. superfici a forma libera, coordinamento dei canali,...) e rende meno impegnative le programmazioni per il tecnico.

Disponibilità degli elementi di linguaggio NC descritti Tutti gli elementi del linguaggio NC descritti nel presente manuale sono disponibili per SINUMERIK 840D sl. La disponibilità per SINUMERIK 828D si può ricavare dalla colonna "828D" di " Lista istruzioni (Pagina 821)".

Premessa

Preparazione del lavoro 6 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 7

Indice generale

Premessa .................................................................................................................................................. 3 1 Programmazione NC flessibile................................................................................................................. 15

1.1 Variabili ........................................................................................................................................15 1.1.1 Informazioni generali sulle variabili ..............................................................................................15 1.1.2 Variabili di sistema .......................................................................................................................16 1.1.3 Variabili utente predefinite: Parametri di calcolo (R)....................................................................19 1.1.4 Variabili utente predefinite: variabili link.......................................................................................21 1.1.5 Definizione di variabili utente (DEF) ............................................................................................24 1.1.6 Ridefinizione delle variabili di sistema, variabili utente e istruzioni NC (REDEF)........................31 1.1.7 Attributo: valore di inizializzazione...............................................................................................34 1.1.8 Attributo: valori limite (LLI, ULI)....................................................................................................38 1.1.9 Attributo: unità fisica (PHU)..........................................................................................................39 1.1.10 Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB)......................................41 1.1.11 Panoramica degli attributi definibili e ridefinibili ...........................................................................47 1.1.12 Definizione e inizializzazione delle variabili di campo (DEF, SET, REP) ....................................48 1.1.13 Tipi di dati.....................................................................................................................................57 1.2 Programmazione indiretta............................................................................................................58 1.2.1 Programmazione indiretta di codici G..........................................................................................62 1.2.2 Programmazione indiretta di attributi di posizione (GP) ..............................................................63 1.2.3 Programmazione indiretta di righe di partprogram (EXECSTRING) ...........................................66 1.3 Funzioni di calcolo .......................................................................................................................67 1.4 Operazioni logiche e di confronto ................................................................................................70 1.5 Correttore di precisione in caso di errori di confronto (TRUNC)..................................................73 1.6 Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) .................................75 1.7 Priorità delle operazioni ...............................................................................................................77 1.8 Possibili conversioni di tipi ...........................................................................................................78 1.9 Operazioni su stringhe .................................................................................................................79 1.9.1 Conversione di tipi in STRING (AXSTRING) ...............................................................................80 1.9.2 Conversione di tipi da STRING (NUMBER, ISNUMBER, AXNAME) ..........................................81 1.9.3 Concatenamento di stringhe (<<) ................................................................................................83 1.9.4 Conversione in lettere minuscole/maiuscole (TOLOWER, TOUPPER) ......................................85 1.9.5 Determinazione della lunghezza di una stringa (STRLEN) .........................................................86 1.9.6 Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) .........87 1.9.7 Selezione di una stringa parziale (SUBSTR)...............................................................................89 1.9.8 Selezione di una singola stringa (STRINGVAR, STRINGFELD).................................................90 1.10 Salti e diramazioni nel programma ..............................................................................................92 1.10.1 Ritorno all'inizio del programma (GOTOS) ..................................................................................92 1.10.2 Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC) .........................93 1.10.3 Diramazione del programma(CASE ... OF ... DEFAULT ...)........................................................97 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)..........................99 1.12 Strutture di controllo...................................................................................................................107 1.12.1 Loop di programma con alternativa (IF, ELSE, ENDIF).............................................................109

Indice generale

Preparazione del lavoro 8 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.12.2 Loop di programma permanente (LOOP, ENDLOOP) ............................................................. 111 1.12.3 Loop con conteggio (FOR ... TO ..., ENDFOR) ........................................................................ 112 1.12.4 Loop di programma con condizione all'inizio del loop (WHILE, ENDWHILE)........................... 114 1.12.5 Loop di programma con condizione alla fine del loop (REPEAT, UNTIL) ................................ 115 1.12.6 Esempio di programmazione con strutture di controllo annidate.............................................. 116 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM,

CLEARM) .................................................................................................................................. 117 1.14 Routine di interrupt (ASUP)....................................................................................................... 124 1.14.1 Funzione di una routine di interrupt .......................................................................................... 124 1.14.2 Creazione di una routine di interrupt......................................................................................... 125 1.14.3 Assegnazione e avvio di routine di interrupt (SETINT, PRIO, BLSYNC) ................................. 126 1.14.4 Disattivazione/riattivazione dell'assegnazione di una routine di interrupt (DISABLE,

ENABLE)................................................................................................................................... 129 1.14.5 Cancellazione dell'assegnazione di una routine di interrupt (CLRINT) .................................... 130 1.14.6 Svincolo rapido dal profilo (SETINT LIFTFAST, ALF) .............................................................. 131 1.14.7 Direzione di movimento durante lo svincolo rapido dal profilo.................................................. 134 1.14.8 Sequenza di movimento nelle routine di interrupt..................................................................... 137 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)..................................................... 138 1.16 Spostamento di un asse in un altro canale (AXTOCHAN) ....................................................... 144 1.17 Attivazione dei dati macchina (NEWCONF) ............................................................................. 146 1.18 Scrittura del file (WRITE) .......................................................................................................... 147 1.19 Cancellazione del file (DELETE)............................................................................................... 151 1.20 Lettura di righe nel file (READ) ................................................................................................. 153 1.21 Verifica della presenza di un file (ISFILE)................................................................................. 157 1.22 Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT,

FILEINFO)................................................................................................................................. 159 1.23 Calcolo del checksum mediante un campo (CHECKSUM) ...................................................... 162 1.24 Arrotondamento (ROUNDUP)................................................................................................... 164 1.25 Tecnica dei sottoprogrammi...................................................................................................... 165 1.25.1 Generalità.................................................................................................................................. 165 1.25.1.1 Sottoprogramma ....................................................................................................................... 165 1.25.1.2 Nomi dei sottoprogrammi.......................................................................................................... 166 1.25.1.3 Annidamento dei sottoprogrammi ............................................................................................. 167 1.25.1.4 Percorso di ricerca .................................................................................................................... 169 1.25.1.5 Parametri formali e attuali ......................................................................................................... 169 1.25.1.6 Trasferimento di parametri ........................................................................................................ 170 1.25.2 Definizione di un sottoprogramma ............................................................................................ 173 1.25.2.1 Sottoprogramma senza trasferimento di parametri .................................................................. 173 1.25.2.2 Sottoprogramma con trasferimento di parametri Call-by-Value (PROC).................................. 174 1.25.2.3 Sottoprogramma con trasferimento di parametri Call-by-Reference (PROC, VAR)................. 176 1.25.2.4 Salvataggio delle funzioni G modali (SAVE)............................................................................. 178 1.25.2.5 Soppressione esecuzione blocco singolo (SBLOF, SBLON) ................................................... 180 1.25.2.6 Disattivazione della visualizzazione del blocco attuale (DISPLOF, DISPLON,

ACTBLOCNO)........................................................................................................................... 187 1.25.2.7 Identificazione di sottoprogrammi con preparazione (PREPRO).............................................. 192 1.25.2.8 Ritorno al sottoprogramma M17 ............................................................................................... 193 1.25.2.9 Ritorno al sottoprogramma RET ............................................................................................... 194 1.25.2.10 Ritorno al sottoprogramma parametrizzabile (RET ...) ............................................................. 195

Indice generale

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 9

1.25.3 Richiamo di un sottoprogramma................................................................................................203 1.25.3.1 Richiamo del sottoprogramma senza assegnazione di parametri.............................................203 1.25.3.2 Richiamo del sottoprogramma con assegnazione di parametri (EXTERN) ..............................205 1.25.3.3 Numero di ripetizioni del programma (P) ...................................................................................208 1.25.3.4 Richiamo sottoprogramma modale (MCALL) ............................................................................210 1.25.3.5 Richiamo indiretto di sottoprogramma (CALL)...........................................................................212 1.25.3.6 Richiamo indiretto del sottoprogramma con indicazione della parte di programma da

eseguire (CALL BLOCK ... TO ...)..............................................................................................214 1.25.3.7 Richiamo indiretto di un programma programmato in linguaggio ISO (ISOCALL) ....................216 1.25.3.8 Richiamo sottoprogramma con indicazione del percorso e parametri (PCALL)........................217 1.25.3.9 Estensione del percorso di ricerca nei richiami di sottoprogrammi (CALLPATH) .....................218 1.25.3.10 Esecuzione di un sottoprogramma esterno (EXTCALL)............................................................220 1.25.4 Cicli ............................................................................................................................................225 1.25.4.1 Cicli: Parametrizzazione dei cicli utente ....................................................................................225 1.26 Tecnica delle macro (DEFINE ... AS) ........................................................................................229

2 Gestione dei file e dei programmi .......................................................................................................... 233 2.1 Memoria dei programmi .............................................................................................................233 2.2 Memoria di lavoro (CHANDATA, COMPLETE, INITIAL)...........................................................239 2.3 Istruzione di strutturazione nell'editor Step (SEFORM) .............................................................242

3 Settori di protezioni ................................................................................................................................ 243 3.1 Definizione dei settori di protezione (CPROTDEF, NPROTDEF)..............................................243 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT) .....................................247 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e

finecorsa software (CALCPOSI) ................................................................................................252 4 Istruzioni di percorso speciali................................................................................................................. 261

4.1 Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) ................................261 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO,

ENAT, ETAN, PW, SD, PL) .......................................................................................................263 4.3 Raggruppamento spline (SPLINEPATH)...................................................................................276 4.4 Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF).........................278 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL) ..........................................................281 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)...............................................................288 4.7 Misura con tastatore a commutazione (MEAS, MEAW)............................................................292 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)..........................................295 4.9 Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829) .............................307 4.10 Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621) ........308 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA,

ADISPOSA)................................................................................................................................309 4.12 Blocco parametri servo programmabile (SCPARA)...................................................................313

5 Trasformazioni delle coordinate (FRAME) ............................................................................................. 315 5.1 Trasformazione di coordinate con variabili Frame.....................................................................315 5.1.1 Variabili frame predefinite ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) ........317

Indice generale

Preparazione del lavoro 10 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

5.2 Variabili frame/assegnazione di valori frame ............................................................................ 323 5.2.1 Assegnazione di valori diretti (valore asse, angolo, scala) ....................................................... 323 5.2.2 Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) ............................................. 326 5.2.3 Combinazione di frame completi............................................................................................... 328 5.2.4 Definizione di nuovi frame (DEF FRAME) ................................................................................ 329 5.3 Traslazione grossolana e fine (CFINE, CTRANS).................................................................... 330 5.4 Spostamento origine esterno .................................................................................................... 332 5.5 Traslazione del preset (PRESETON) ....................................................................................... 333 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)............................... 335 5.7 Frame NCU globali.................................................................................................................... 339 5.7.1 Frame specifici per canali ($P_CHBFR, $P_UBFR) ................................................................. 340 5.7.2 Frame attivi nel canale .............................................................................................................. 341

6 Trasformazioni ....................................................................................................................................... 347 6.1 Programmazione generale dei tipi di trasformazione ............................................................... 347 6.1.1 Movimenti di orientamento nelle trasformazioni........................................................................ 350 6.1.2 Panoramica della trasformazione dell'orientamento TRAORI .................................................. 354 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI) ............................................................ 356 6.2.1 Relazioni generali della testa portautensili cardanica............................................................... 356 6.2.2 Trasformazione a tre, quattro e cinque assi (TRAORI) ............................................................ 359 6.2.3 Varianti della programmazione dell'orientamento e della posizione base (ORIRESET) .......... 361 6.2.4 Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) ................................ 364 6.2.5 Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) ........................................................ 372 6.2.6 Riferimento degli assi di orientamento (ORIWKS, ORIMKS) ................................................... 374 6.2.7 Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY,

ORIRPY2, ORIVIRT1, ORIVIRT2)............................................................................................ 377 6.2.8 Programmazione dell'orientamento lungo una superficie conica (ORIPLANE,

ORICONCW, ORICONCCW, ORICONTO, ORICONIO).......................................................... 380 6.2.9 Impostazione dell'orientamento di due punti di contatto (ORICURVE, PO[XH]=, PO[YH]=,

PO[ZH]=) ................................................................................................................................... 385 6.3 Polinomi di orientamento (PO[angolo], PO[coordinate])........................................................... 387 6.4 Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC,

THETA) ..................................................................................................................................... 390 6.5 Orientamenti relativi al percorso ............................................................................................... 393 6.5.1 Tipi di orientamento relativi al percorso .................................................................................... 393 6.5.2 Rotazione relativa al percorso dell'orientamento dell'utensile (ORIPATH, ORIPATHS,

angolo di rotazione)................................................................................................................... 395 6.5.3 Interpolazione relativa al percorso della rotazione dell'utensile (ORIROTC, THETA).............. 397 6.5.4 Spianamento del percorso di orientamento (ORIPATHS A8=, B8=, C8=) ............................... 400 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD) ............................... 402 6.7 Spianamento del percorso di orientamento (ORISON, ORISOF)............................................. 406 6.8 Trasformazione cinematica....................................................................................................... 409 6.8.1 Fresatura su pezzi torniti (TRANSMIT)..................................................................................... 409 6.8.2 Trasformazione della superficie esterna del cilindro (TRACYL) ............................................... 412 6.8.3 Asse inclinato (TRAANG).......................................................................................................... 422 6.8.4 Programmazione dell’asse inclinato (G05, G07) ...................................................................... 426 6.9 Movimento cartesiano PTP....................................................................................................... 428 6.9.1 PTP con TRANSMIT ................................................................................................................. 435

Indice generale

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 11

6.10 Condizioni marginali per l’attivazione di una trasformazione.....................................................440 6.11 Disattivazione della trasformazione (TRAFOOF) ......................................................................442 6.12 Trasformazioni concatenate (TRACON, TRAFOOF).................................................................443

7 Correzioni utensile ................................................................................................................................. 447 7.1 Memoria di correzione ...............................................................................................................447 7.2 Correzioni addizionali.................................................................................................................451 7.2.1 Selezione di correzioni addizionali (DL).....................................................................................451 7.2.2 Definizione dei valori di usura e di messa a punto ($TC_SCPxy[t,d], $TC_ECPxy[t,d]) ...........453 7.2.3 Cancellazione delle correzioni supplementari (DELDL) ............................................................454 7.3 Correzione utensile - casi speciali .............................................................................................455 7.3.1 Specularità delle lunghezze utensili...........................................................................................457 7.3.2 Valutazione dei segni dei componenti di usura .........................................................................458 7.3.3 Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS,

TOWBCS, TOWTCS, TOWKCS)...............................................................................................460 7.3.4 Lunghezza utensile e cambio del piano.....................................................................................463 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) .............465 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)..............................................471 7.5.1 Attivazione delle correzioni utensile 3D (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF, ISD) .....471 7.5.2 Correzione utensile 3D: fresatura periferica e frontale ..............................................................474 7.5.3 Correzione utensile 3D: Forme dell'utensile e dati dell'utensile per fresatura frontale..............476 7.5.4 Correzione utensile 3D: Correzione sulla traiettoria, curvatura della traiettoria, profondità

di penetrazione (CUT3DC, ISD) ................................................................................................478 7.5.5 Correzione utensile 3D: Spigoli interni/Spigoli esterni e spostamento del punto di

intersezione (G450/G451)..........................................................................................................481 7.5.6 Correzione utensile 3D: Fresatura periferica 3D con superfici limite.........................................483 7.5.7 Correzione utensile 3D: Considerazione di una superficie limite (CUT3DCC, CUT3DCCD)....484 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)........489 7.7 Assegnazione di un numero D libero, numero del tagliente ......................................................497 7.7.1 Assegnazione di un numero D libero, numero del tagliente (indirizzo CE) ...............................497 7.7.2 Assegnazione libera dei numeri D: Controllo dei numeri D (CHKDNO)....................................498 7.7.3 Assegnazione libera dei numeri D: Modifica dei nomi dei numeri D (GETDNO, SETDNO) .....499 7.7.4 Assegnazione libera dei numeri D: Individuazione del numero T per il numero D

preimpostato (GETACTTD) .......................................................................................................501 7.7.5 Assegnazione libera dei numeri D: Impostazione non valida dei numeri D (DZERO) ..............502 7.8 Cinematica del portautensile......................................................................................................503 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS,

TCOFR, TCOFRX, TCOFRY, TCOFRZ) ...................................................................................510 7.10 Correzione della lunghezza utensile on line (TOFFON, TOFFOF) ...........................................514 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)...............................................517

8 Comportamento sulla traiettoria............................................................................................................. 525 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) ..................................525 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)....................................................534 8.3 Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO,

FIFOCTRL, STOPRE) ...............................................................................................................540 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF) ..........543

Indice generale

Preparazione del lavoro 12 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.5 Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK) ............................ 550 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH,

REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)................................................................. 553 8.7 Influenza della gestione dei movimenti ..................................................................................... 563 8.7.1 Correzione percentuale dello strappo (JERKLIM) .................................................................... 563 8.7.2 Correzione percentuale della velocità (VELOLIM).................................................................... 564 8.7.3 Esempio di programma per JERKLIM e VELOLIM................................................................... 565 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL) ............................... 566

9 Accoppiamenti assi................................................................................................................................ 571 9.1 Trascinamento (TRAILON, TRAILOF) ...................................................................................... 571 9.2 Tabelle di curve (CTAB)............................................................................................................ 576 9.2.1 Definizione delle tabelle delle curve (CTABDEF, CATBEND) .................................................. 577 9.2.2 Verifica della presenza di una tabella delle curve (CTABEXISTS)........................................... 585 9.2.3 Eliminazione di tabelle delle curve (CTABDEL)........................................................................ 585 9.2.4 Inibizione dell'eliminazione e della sovrascrittura delle tabelle delle curve (CTABLOCK,

CTABUNLOCK) ........................................................................................................................ 587 9.2.5 Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK,

CTABMEMTYP, CTABPERIOD) .............................................................................................. 589 9.2.6 Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP,

CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX)...................................... 591 9.2.7 Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM,

CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) ..................................................................................... 597

9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF) ....................................... 599 9.4 Cambio elettronico (EG)............................................................................................................ 606 9.4.1 Definizione del cambio elettronico (EGDEF) ............................................................................ 606 9.4.2 Attivazione del cambio elettronico (EGON, EGONSYN, EGONSYNE).................................... 608 9.4.3 Disattivazione del cambio elettronico (EGOFS, EGOFC)......................................................... 611 9.4.4 Cancellazione della definizione di un cambio elettronico (EGDEL).......................................... 613 9.4.5 Avanzamento del giro (G95)/Cambio elettronico (FPR) ........................................................... 613 9.5 Mandrino sincrono..................................................................................................................... 614 9.5.1 Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC,

COUPOF, COUPOFS, COUPRES, WAITC) ............................................................................ 615 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS).... 629

10 Azioni sincrone al movimento ................................................................................................................ 635 10.1 Nozioni di base.......................................................................................................................... 635 10.1.1 Campo di validità e sequenza di lavorazione (ID, IDS) ............................................................ 638 10.1.2 Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY) ................................ 640 10.1.3 Azioni (DO)................................................................................................................................ 643 10.2 Operatori per condizioni e azioni .............................................................................................. 644 10.3 Variabili di esecuzione per le azioni sincrone ........................................................................... 646 10.3.1 Variabili di sistema .................................................................................................................... 646 10.3.2 Conversione implicita del tipo ................................................................................................... 648 10.3.3 Variabili GUD ............................................................................................................................ 649 10.3.4 Identificatore asse di default (NO_AXIS) .................................................................................. 651 10.3.5 Marker per azioni sincrone ($AC_MARKER[n]) ........................................................................ 652 10.3.6 Parametri per azioni sincrone ($AC_PARAM[n]) ...................................................................... 653 10.3.7 Parametri di calcolo ($R[n])....................................................................................................... 654

Indice generale

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 13

10.3.8 Lettura/scrittura dei dati macchina NC e dei dati setting NC.....................................................655 10.3.9 Variabili del timer ($AC_Timer[n]) ..............................................................................................657 10.3.10 Variabili FIFO ($AC_FIFO1[n] ... $AC_FIFO10[n]) ....................................................................658 10.3.11 Informazioni sui tipi di blocco nell'interpolatore ($AC_BLOCKTYPE,

$AC_BLOCKTYPEINFO, $AC_SPLITBLOCK)..........................................................................660 10.4 Azioni nelle azioni sincrone........................................................................................................663 10.4.1 Panoramica delle possibili azioni nelle azioni sincrone .............................................................663 10.4.2 Emissione di funzioni ausiliarie ..................................................................................................666 10.4.3 Impostazione del blocco lettura (RDISABLE) ............................................................................667 10.4.4 Disattivazione stop preelaborazione (STOPREOF)...................................................................668 10.4.5 Cancellazione percorso residuo (DELDTG) ..............................................................................669 10.4.6 Definizione dei polinomi (FCTDEF) ...........................................................................................671 10.4.7 Funzione sincrona (SYNFCT)....................................................................................................674 10.4.8 Regolazione della distanza con correzione limitata ($AA_OFF_MODE)...................................677 10.4.9 Correzione utensile on-line (FTOC)...........................................................................................680 10.4.10 Correzione online della lunghezza utensile ($AA_TOFF)..........................................................683 10.4.11 Movimenti di posizionamento.....................................................................................................685 10.4.12 Posizionamento dell’asse (POS) ...............................................................................................686 10.4.13 Posizione nell'intervallo di riferimento predefinito (POSRANGE)..............................................688 10.4.14 Start/stop asse (MOV) ...............................................................................................................689 10.4.15 Scambio assi (RELEASE, GET) ................................................................................................690 10.4.16 Avanzamento assiale (FA).........................................................................................................695 10.4.17 Finecorsa SW.............................................................................................................................695 10.4.18 Coordinamento assi ...................................................................................................................696 10.4.19 Impostazione del valore reale (PRESETON).............................................................................697 10.4.20 Movimenti del mandrino.............................................................................................................698 10.4.21 Trascinamento (TRAILON, TRAILOF).......................................................................................699 10.4.22 Accoppiamento al valore master (LEADON, LEADOF).............................................................701 10.4.23 Misura (MEAWA, MEAC)...........................................................................................................704 10.4.24 Inizializzazione delle variabili di campo (SET, REP) .................................................................705 10.4.25 Impostazione/cancellazione di label di attesa (SETM, CLEARM).............................................706 10.4.26 Reazioni agli errori (SETAL) ......................................................................................................707 10.4.27 Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF).................................708 10.4.28 Definizione dell'angolo della tangente vettoriale nella azioni sincrone......................................711 10.4.29 Determinazione dell’override attuale .........................................................................................711 10.4.30 Rilevazione del sovraccarico tramite il fabbisogno di tempo delle azioni sincrone ...................712 10.5 Cicli tecnologici ..........................................................................................................................714 10.5.1 Variabile di contesto ($P_TECCYCLE)......................................................................................718 10.5.2 Parametri Call-by-Value.............................................................................................................719 10.5.3 Inizializzazione dei parametri di default .....................................................................................719 10.5.4 Controllo ed esecuzione di cicli tecnologici (ICYCOF, ICYCON) ..............................................720 10.5.5 Strutturazioni in cascata dei cicli tecnologici..............................................................................721 10.5.6 Cicli tecnologici in azioni sincrone blocco per blocco ................................................................722 10.5.7 Costrutti di controllo (IF).............................................................................................................722 10.5.8 Istruzioni di salto (GOTO, GOTOF, GOTOB) ............................................................................723 10.5.9 Blocco, sblocco, reset (LOCK, UNLOCK, RESET)....................................................................724 10.6 Cancellazione dell'azione sincrona (CANCEL)..........................................................................726 10.7 Comportamento di controllo in determinati stati operativi..........................................................727

11 Pendolamento ....................................................................................................................................... 731 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE,

OSB) ..........................................................................................................................................731 11.2 Pendolamento controllato da azioni sincrone (OSCILL)............................................................738

Indice generale

Preparazione del lavoro 14 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

12 Punzonatura e roditura .......................................................................................................................... 747 12.1 Attivazione, disattivazione......................................................................................................... 747 12.1.1 Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS,

PDELAYON, PDELAYOF, PUNCHACC).................................................................................. 747 12.2 Preparazione automatica del percorso ..................................................................................... 754 12.2.1 Suddivisione del percorso per assi di contornitura ................................................................... 757 12.2.2 Suddivisione del percorso per singoli assi ................................................................................ 759

13 Rettifiche................................................................................................................................................ 761 13.1 Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF) ......................................... 761

14 Ulteriori funzioni ..................................................................................................................................... 765 14.1 Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL)....... 765 14.2 Assi geometrici commutabili (GEOAX) ..................................................................................... 768 14.3 Container assi (AXCTSWE, AXCTSWED) ............................................................................... 774 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS) ...................................... 778 14.5 Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array........................... 785 14.6 Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF) ........................... 788 14.7 Richiamo interattivo della finestra dal partprogram (MMC) ...................................................... 790 14.8 Tempo di esecuzione del programma/contapezzi .................................................................... 791 14.8.1 Tempo di esecuzione del programma/contapezzi (panoramica) .............................................. 791 14.8.2 Tempo di esecuzione del programma....................................................................................... 791 14.8.3 Funzione di conteggio dei pezzi................................................................................................ 796 14.9 Allarme (SETAL) ....................................................................................................................... 798

15 Programmi di sgrossatura personalizzati ............................................................................................... 801 15.1 Funzioni di supporto per l'asportazione .................................................................................... 801 15.2 Creazione della tabella dei profili (CONTPRON)...................................................................... 802 15.3 Creazione della tabella dei profili codificata (CONTDCON) ..................................................... 810 15.4 Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC).................. 815 15.5 Esecuzione blocco a blocco di elementi del profilo di una tabella (EXECTAB)........................ 817 15.6 Calcolo dei dati del cerchio (CALCDAT)................................................................................... 818 15.7 Disattivazione della preparazione del profilo (EXECUTE)........................................................ 820

16 Tabelle................................................................................................................................................... 821 16.1 Lista istruzioni ........................................................................................................................... 821

A Appendice.............................................................................................................................................. 905 A.1 Elenco delle abbreviazioni ........................................................................................................ 905 A.2 Feedback sulla documentazione .............................................................................................. 911 A.3 Panoramica della documentazione........................................................................................... 913

Glossario ............................................................................................................................................... 915 Indice analitico....................................................................................................................................... 941

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 15

Programmazione NC flessibile 11.1 1.1 Variabili

1.1.1 Informazioni generali sulle variabili Utilizzando le variabili, in particolare unitamente alle funzioni di calcolo e alle strutture di controllo, è possibile strutturare i programma pezzo e i cicli in modo estremamente flessibile. Alla scopo sono messe a disposizione dal sistema tre tipi diversi di variabili: ● Variabili di sistema

Le variabili di sistema sono variabili definite nel sistema e messe a disposizione dell'utente, aventi un significato prestabilito. Vengono lette e scritte anche dal software di sistema. Esempio: Dati macchina Il significato di una variabile di sistema è prefissato dal sistema e le loro proprietà sono predefinite al massimo. In minima misura, è tuttavia possibile che l'utente adatti le proprietà mediante una ridefinizione. Vedere "Ridefinizione delle variabili di sistema, variabili utente e istruzioni NC (REDEF) (Pagina 31)"

● Variabili utente Le variabili utente sono variabili il cui significato non è noto al sistema e che il sistema non analizza. Il significato è fissato esclusivamente dall'utente.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 16 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Le variabili utente si suddividono in: – Variabili utente predefinite

Le variabili utente predefinite sono variabili già definite nel sistema; è sufficiente che l'utente ne parametrizzi il numero tramite specifici dati macchina. Le proprietà di queste variabili possono essere adattate in massimo libertà dall'utente. Vedere "Ridefinizione delle variabili di sistema, variabili utente e istruzioni NC (REDEF) (Pagina 31)".

– Variabili definite dall'utente Le variabili definite dall'utente sono variabili che vengono definite esclusivamente dall'utente e create dal sistema soltanto al runtime. Il loro numero, tipo di dati, visibilità e tutte le altre proprietà vengono esclusivamente fissate dall'utente. Vedere "Definizione di variabili utente (DEF) (Pagina 24)"

Vedere anche Variabili di sistema (Pagina 16) Variabili utente predefinite: Parametri di calcolo (R) (Pagina 19) Variabili utente predefinite: variabili link (Pagina 21)

1.1.2 Variabili di sistema Le variabili di sistema sono variabili predefinite nel sistema che nei programmi pezzo e nei cicli consentono di accedere alla parametrizzazione attuale del controllore, come gli stati della macchina, del controllore e del processo.

Variabili di preelaborazione Per variabili di preelaborazione si intendono le variabili di sistema che vengono lette e scritte contestualmente alla preelaborazione blocchi, ossia al momento dell'interpretazione del blocco di programma pezzo in cui la variabile di sistema è programmata. Le variabili di preelaborazione non attivano uno stop di preelaborazione.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 17

Variabili di ciclo principale Per variabili di ciclo principale si intendono le variabili di sistema che vengono lette o scritte contestualmente al ciclo principale, ossia al momento dell'esecuzione del blocco di programma pezzo in cui la variabile di sistema è programmata. Variabili di ciclo principale sono: ● Variabili di sistema programmabili nelle azioni sincrone (lettura/scrittura) ● Variabili di sistema programmabili nel programma pezzo e che attivano uno stop di

preelaborazione (lettura/scrittura) ● Variabili di sistema programmabili nel programma pezzo e il cui valore viene determinato

nella preelaborazione blocchi ma scritto solo nel ciclo principale (con sincronismo rispetto al ciclo principale: soltanto scrittura)

Sistematica del prefisso Per contrassegnare le variabili di sistema il loro nome è normalmente preceduto da un prefisso, costituito dal carattere $ che è seguito da una o due lettere e da un underscore: $ + 1a lettera Significato: Tipo di dati Variabili di sistema che vengono lette/scritte nella preelaborazione blocchi $M Dati macchina1) $S Dati setting, settori di protezione 1) $T Dati di gestione utensili $P Valori programmati $C Variabili cicliche dei cicli shell ISO $O Dati opzionali R Parametri R (parametri di calcolo)2) Variabili di sistema che vengono lette/scritte nel ciclo principale $$M Dati macchina1) $$S Dati setting1) $A Dati attuali del ciclo principale $V Dati servo $R Parametri R (parametri di calcolo)2) 1) Utilizzando i dati macchina e i dati setting nel programma pezzo/ciclo come variabile di preelaborazione, il prefisso viene scritto con un carattere $. Se l'utilizzo avviene in azioni sincrone come variabile di ciclo principale, il prefisso viene scritto con due caratteri $. 2) Utilizzando un parametro R nel programma pezzo/ciclo come variabile di preelaborazione, non viene scritto alcun prefisso, ad es. R10. Se l'utilizzo avviene in un'azione sincrona come variabile di ciclo principale, il prefisso viene scritto come carattere $, ad es. $R10.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 18 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

2a lettera Significato: Visibilità N Variabile globale NCK (NCK) C Variabile specifica di canale (Channel) A Variabile specifica per asse (Axis)

Condizioni marginali Eccezioni nella sistematica del prefisso Le seguenti variabili di sistema si discostano dalla suddetta sistematica del prefisso: ● $TC_...: la 2a lettera C non rinvia qui a variabili di sistema specifiche di canale ma a

variabili di sistema specifiche per supporto utensile (TC = Tool Carrier) ● $P_ ...: variabili di sistema specifiche di canale Utilizzo di dati macchina e dati setting nelle azioni sincrone Utilizzando i dati macchina e i dati setting nelle azioni sincrone è possibile determinare mediante il prefisso se leggere/scrivere il dato macchina o dato setting in modo sincrono alla preelaborazione blocchi o all’elaborazione principale. Se durante l'elaborazione il dato rimane invariato, è possibile una lettura sincrona alla preelaborazione blocchi. Allo scopo, il prefisso del dato macchina o dato setting viene scritto con un carattere $:

Codice di programma

ID=1 WHENEVER G710 $AA_IM[z] < $SA_OSCILL_REVERSE_POS2[Z]–6 DO $AA_OVR[X]=0

Se durante l'elaborazione il dato viene variato, è necessaria una lettura/scrittura sincrona all’elaborazione principale. Allo scopo, il prefisso del dato macchina o dato setting viene scritto con due caratteri $:

Codice di programma

ID=1 WHENEVER $AA_IM[z] < $$SA_OSCILL_REVERSE_POS2[Z]–6 DO $AA_OVR[X]=0

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 19

Nota Scrittura di dati macchina Durante la scrittura di un dato macchina o dato setting è necessario sincerarsi che il livello attivo di accesso al momento dell'esecuzione del programma pezzo/ciclo consenta l'accessoin scrittura e che l'efficacia del dato sia "IMMEDIATE".

Bibliografia Un elenco delle proprietà di tutte le variabili di sistema si trova in: /PGA1/ Manuale delle liste Variabile di sistema

Vedere anche Tipi di dati (Pagina 57)

1.1.3 Variabili utente predefinite: Parametri di calcolo (R)

Funzione I parametri di calcolo, o parametri R, sono una variabile utente predefinita con la designazione R, definita come campo del tipo di dati REAL. A causa delle convenzioni usate in passato, per i parametri R è consentita, oltre alla scrittura con indice di campo, ad es. R[10], anche la scrittura senza indice di campo, ad es. R10. Utilizzando le azioni sincrone è necessario anteporre il carattere $, ad es. $R10.

Sintassi In caso di impiego come variabile di preelaborazione: R<n> R[<espressione>]

In caso di impiego come variabile di ciclo principale: $R<n> $R[<espressione>]

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 20 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato R: Identificatore dell'impiego come variabile di preelaborazione, ad es. nel

programma pezzo $R: Identificatore dell'impiego come variabile di ciclo principale, ad es.

nelle azioni sincrone Tipo: REAL Campo dei valori: Con scrittura non esponenziale:

± (0.000 0001 ... 9999 9999) Nota: sono consentite al massimo 8 cifre decimali

Con scrittura esponenziale: ± (1*10-300 ... 1*10+300) Nota: • Notazione: <mantissa>EX<esponente> ad es.

8.2EX-3 • Sono consentiti al massimo 10 caratteri,

incluso segno e punto decimale.

Numero del parametro R Tipo: INT

<n>:

Campo dei valori: 0 - MAX_INDEX Nota MAX_INDEX risulta dal numero parametrizzato di parametri R: MAX_INDEX = (MD28050 $MN_MM_NUM_R_PARAM) - 1

<espressione>: Indice di campo Si può specificare come indice di campo qualsiasi espressione, sempre che il risultato dell'espressione possa essere convertito nel tipo di dati INT (INT, REAL, BOOL, CHAR)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 21

Esempio Assegnazioni ai parametri R e uso dei parametri R nelle funzioni matematiche: Codice di programma Commento

R0=3.5678 ; Assegnazione nella preelaborazione blocchi

R[1]=-37.3 ; Assegnazione nella preelaborazione blocchi

R3=-7 ; Assegnazione nella preelaborazione blocchi

$R4=-0.1EX-5 ; Assegnazione nel ciclo principale: R4 = -0.1 * 10^-5

$R[6]=1.874EX8 ; Assegnazione nel ciclo principale: R6 = 1.874 * 10^8

R7=SIN(25.3) ; Assegnazione nella preelaborazione blocchi

R[R2]=R10 ; Indirizzamento indiretto tramite parametro R

R[(R1+R2)*R3]=5 ; Indirizzamento indiretto tramite espressione mat.

X=(R1+R2) ; Movimento dell'asse X sulla posizione che risulta dalla somma di R1 e R2

Z=SQRT(R1*R1+R2*R2) ; Movimento dell'asse Z sulla posizione radice quadrata(R1^2 + R2^2)

1.1.4 Variabili utente predefinite: variabili link

Funzione Tramite la variabili link è possibile scambiare ciclicamente, nell'ambito della funzione "NCU Link", dati tra NCU collegati tra loro in una rete. In questo modo esse consentono un accesso specifico per formato dati alla memoria delle variabili link. La memoria delle variabili link viene stabilita secondo le specificità dell'impianto - rispetto sia all'entità, sia alla struttura dei dati - dall'utente/dal costruttore della macchina. Le variabili link sono variabili utente globali a livello di sistema che possono essere lette e scritte durante la comunicazione link progettata di tutte le NCU del gruppo di link nei programmi pezzo e nei cicli. A differenza delle variabili utente globali (GUD), le variabili link possono essere utilizzate anche nelle azioni sincrone. Per gli impianti senza link NCU attivi, le variabili link possono essere utilizzate localmente, a livello di controllore, oltre alle variabili utente globali (GUD), in funzione di variabili utente globali aggiuntive.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 22 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi $A_DLB[<indice>] $A_DLW[<indice>] $A_DLD[<indice>] $A_DLR[<indice>]

Significato

Variabile link per formato dati BYTE (1 byte) Tipo di dati: UINT

$A_DLB:

Campo dei valori: 0 ... 255 Variabile link per formato dati WORD (2 byte) Tipo di dati: INT

$A_DLW:

Campo dei valori: -32768 ... 32767 Variabile link per formato dati DWORD (4 byte) Tipo di dati: INT

$A_DLD:

Campo dei valori: -2147483648 ... 2147483647 Variabile link per formato dati REAL (8 byte) Tipo di dati: REAL

$A_DLR:

Campo dei valori: ±(2,2*10-308 … 1,8*10+308) Indice d'indirizzamento in byte, calcolato dall'inizio della memoria delle variabili link Tipo di dati: INT

<indice>:

Campo dei valori: 0 - MAX_INDEX Nota • MAX_INDEX risulta dalla grandezza

parametrizzata della memoria delle variabili link: MAX_INDEX = (MD18700 $MN_MM_SIZEOF_LINKVAR_DATA) - 1

• È consentito programmare solo indici, in modo che i byte indirizzati nella memoria delle variabili link si trovino su un limite di formato dati ⇒ indice = n * byte, dove n = 0, 1, 2, ... – $A_DLB[i]: i = 0, 1, 2, ... – $A_DLW[i]: i = 0, 2, 4, ... – $A_DLD[i]: i = 0, 4, 8, ... – $A_DLR[i]: i = 0, 8, 16, ...

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 23

Esempio Nell'impianto di automazione sono presenti 2 NCU (NCU1 e NCU2). Alla NCU1 è collegato l'asse di macchina AX2, che viene mosso come asse link della NCU2. NCU1 scrive ciclicamente il valore attuale di corrente ($VA_CURR) dell'asse AX2 nella memoria delle variabili link. NCU2 legge ciclicamente il il valore attuale di corrente trasmesso mediante la comunicazione link e, al superamento del valore limite, emette l'allarme 61000. La struttura dei dati nella memoria delle variabili link è raffigurata nello schema seguente. Il valore attuale di corrente è trasferito tramite il valore REAL.

NCU1 NCU1 scrive ciclicamente in un'azione sincrona statica nel clock di interpolazione il valore attuale di corrente dell'asse AX2 tramite la variabile link $A_DLR[ 16 ] nella memoria delle variabili link. Codice di programma

N111 IDS=1 WHENEVER TRUE DO $A_DLR[16]=$VA_CURR[AX2]

NCU2 NCU1 legge ciclicamente in un'azione sincrona statica nel clock di interpolazione il valore attuale di corrente dell'asse AX2 tramite la variabile link $A_DLR[ 16 ] dalla memoria delle variabili link. Se il valore attuale di corrente è maggiore di 23.0 A, viene visualizzato l'allarme 61000. Codice di programma

N222 IDS=1 WHEN $A_DLR[16] > 23.0 DO SETAL(61000)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 24 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.1.5 Definizione di variabili utente (DEF)

Funzione Con il comando DEF si possono definire variabili personalizzate e assegnare loro dei valori. Per differenziarle dalle variabili di sistema, queste vengono denominate come variabili definite dall'utente o variabili utente (User Data). In rapporto al campo di validità, ossia l'area in cui la variabile è visibile, esistono le seguenti categorie di variabili utente: ● Variabili utente locali (LUD)

Le variabili utente locali (LUD) sono variabili definite in un programma pezzo, che al momento dell'elaborazione non è il programma principale. Vengono create al richiamo del programma pezzo e cancellate alla fine del programma pezzo e/o tramite NC-Reset. Le variabili LUD sono accessibili solo all'interno del programma pezzo nel quale sono definite.

● Variabili utente globali a livello di programma (PUD) Le variabili utente (PUD) globali a livello di programma sono variabili definite all'interno di un programma pezzo utilizzato come programma principale. Vengono create all'avvio del programma pezzo e cancellate alla fine del programma pezzo o tramite NC-Reset. Le variabili PUD sono accessibili nel programma principale e in tutti i sottoprogrammi.

● Variabili utente globali (GUD) Le variabili utente globali (GUD) sono variabili globali a livello di NC/canale, che sono definite in un blocco dati (SGUD, MGUD, UGUD, GUD4 ... GUD9) e restano attive anche in seguito a Power On. Le variabili GUD sono accessibili in tutti i programmi pezzo.

Le variabile utente devono essere definite prima del loro utilizzo (lettura/scrittura). Occorre osservare le seguenti regole: ● Le variabili GUD devono essere definite in un file di definizione z.B.

_N_DEF_DIR/_M_SGUD_DEF ● Le variabili PUD e LUD devono essere definite nel settore di definizione di un programma

pezzo ● La definizione dei dati deve avvenire in un blocco a sé stante ● Per ciascuna definizione dei dati è ammesso utilizzare un solo tipo di dati ● Per ciascuna definizione dei dati si possono definire più variabili dello stesso tipo di dati

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 25

Sintassi DEF <campo> <tipo> <stop_VL> <istante_init> <unità_fis> <valori_limite> <autorizzazioni_accesso> <nome>[<valore_1>,<valore_2>,<valore_3>]=<valore_init>

Significato DEF: Comando per la definizione delle variabili utente GUD, PUD, LUD

Campo di validità, riguardante solo le variabili GUD: NCK: Variabile utente globale a livello di NC

<campo>:

CHAN: Variabile utente globale a livello di canale Tipo di dati: INT: Valore intero con segno REAL: Numero reale (LONG REAL secondo IEEE) BOOL: Valore logico TRUE (1) / FALSE (0) CHAR: Carattere ASCII STRING [<lunghezza_max>]:

Stringa di caratteri di lunghezza definita

AXIS: Identificatore asse/mandrino FRAME: Dati geometrici per una trasformazione statica delle

coordinate

<tipo>:

vedere "Tipi di dati (Pagina 57) " Stop di preelaborazione, riguardante solo le variabili GUD (opzionale): SYNR: Stop preelaborazione in lettura SYNW: Stop preelaborazione in scrittura

<stop_VL>:

SYNRW: Stop preelaborazione in lettura/scrittura Istante in cui la variabile viene reinizializzata (opzionale) INIPO: PowerOn INIRE: Fine del programma principale, NC-Reset o

PowerOn INICF: NewConfig o fine del programma principale, NC-

Reset o PowerOn PRLOC: Fine del programma principale, NC-Reset dopo

modifica locale o PowerOn

<istante_init>:

vedere "Attributo: valore di inizializzazione (Pagina 34) "

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 26 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Unità fisica (opzionale) PHU <unità>:

<unità_fis>:

vedere "Attributo: unità fisica (PHU) (Pagina 39) " Valore limite inferiore e superiore (opzionale) LLI <valore_limite>: Valore limite inferiore (lower limit) ULI <valore_limite>: Valore limite superiore (upper limit)

<valori_limite>:

vedere "Attributo: valori limite (LLI, ULI) (Pagina 38) " Autorizzazioni di accesso per la lettura/scrittura di GUD tramite programma pezzo o interfaccia per pannello operativo (opzionale) APRP <livello_protezione>:

Lettura: programma pezzo

APWP <livello_protezione>:

Scrittura: programma pezzo

APRB <livello_protezione>:

Lettura: interfaccia per pannello operativo

APWB <livello_protezione>:

Scrittura: interfaccia per pannello operativo

Grado di protezione Campo dei valori: 0 ... 7

<autorizzazioni_accesso>:

vedere "Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41) "

<nome>: Nome delle variabili Nota • Max. 31 caratteri • I primi due caratteri devono essere una lettera e/o un underscore. • Il carattere "$" è riservato alle variabili di sistema e non deve

essere utilizzato. [<valore_1>, <valore_2>, <valore_3>]:

Definizione delle grandezze di campo per le variabili di campo da 1 a 3 dimensioni (opzionale)

<valore_init>: Valore di inizializzazione (opzionale) vedere "Attributo: valore di inizializzazione (Pagina 34) " Per l'inizializzazione delle variabili di campo: vedere "Definizione e inizializzazione delle variabili di campo (DEF, SET, REP) (Pagina 48) "

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 27

Esempi Esempio 1: definizione di variabili utente nel blocco dati per il costruttore della macchina

Codice di programma

%_N_MGUD_DEF ; Blocco GUD: costruttore della macchina

$PATH=/_N_DEF_DIR

DEF CHAN REAL PHU 24 LLI 0 ULI 10 STROM_1, STROM_2

; Descrizione

; Definizione di due GUD: STROM_1, STROM_2 (corrente 1, 2)

; Campo di validità: a livello di canale

; Tipo di dati: REAL

; Stop VL: non programmato => valore di default = nessuno stop VL

; Unità fis.: 24 = [A]

; Valori limite: Low = 0.0, High = 10.0

; Diritti di accesso: non programmati => valore di default = 7 = posizione 0 del selettore a chiave

; Valore di inizializzazione: non programmato => valore di default = 0.0

DEF NCK REAL PHU 13 LLI 10 APWP 3 APRP 3 APWB 0 APRB 2 ZEIT_1=12, ZEIT_2=45

; Descrizione

; Definizione di due GUD: ZEIT_1, ZEIT_2 (tempo 1, tempo 2)

; Campo di validità: per NCK

; Tipo di dati: REAL

; Stop VL: non programmato => valore di default = nessuno stop VL

; Unità fis.: 13 = [s]

; Valori limite: Low = 10.0, High = non programmato => limite superiore del campo di definizione

; Autorizzazioni di accesso:

; Programma pezzo: scrittura/lettura= 3 = utente finale

; Interfaccia per pannello operativo: scrittura = 0 = Siemens, lettura= 3 = utente finale

; Valore di inizializzazione: ZEIT_1 = 12.0, ZEIT_2 = 45.0

DEF NCK APWP 3 APRP 3 APWB 0 APRB 3 STRING[5] GUD5_NAME = "COUNTER"

; Descrizione

; Definizione di GUD: GUD5_NAME

; Campo di validità: per NCK

; Tipo di dati: STRING, max. 5 caratteri

; Stop VL: non programmato => valore di default = nessuno stop VL

; Unità fis.: non programmata => valore di default = 0 = nessuna unità fis.

; Valori limite: non programmati => limiti del campo di definizione: Low = 0, High = 255

; Autorizzazioni di accesso:

; Programma pezzo: scrittura/lettura= 3 = utente finale

; Interfaccia per pannello operativo: scrittura = 0 = Siemens, lettura= 3 = utente finale

; Valore di inizializzazione: "COUNTER"

M30

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 28 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: variabili utente globali e locali a livello di programma (PUD/LUD) Codice di programma Commento

PROC MAIN ; Programma principale

DEF INT VAR1 ; Definizione PUD

...

SUB2 ; Richiamo di sottoprogramma

...

M30

Codice di programma Commento

PROC SUB2 ; Sottoprogramma SUB2

DEF INT VAR2 ; DEFINIZIONE LUD

...

IF (VAR1==1) ; Lettura PUD

VAR1=VAR1+1 ; Lettura e scrittura PUD

VAR2=1 ; Scrittura LUD

ENDIF

SUB3 ; Richiamo di sottoprogramma

...

M17

Codice di programma Commento

PROC SUB3 ; Sottoprogramma SUB3

...

IF (VAR1==1) ; Lettura PUD

VAR1=VAR1+1 ; Lettura e scrittura PUD

VAR2=1 ; Errore: LUD in SUB2 non riconosciuta

ENDIF

...

M17

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 29

Esempio 3: definizione e uso delle variabili utente del tipo di dati AXIS Codice di programma Commento

DEF AXIS ASCISSE ; 1° asse geometrico

DEF AXIS SPINDLE ; Mandrino

...

IF ISAXIS(1)==FALSE GOTOF CONTINUA

ASCISSE = $P_AXN1

CONTINUA:

...

SPINDLE=(S1) 1° mandrino

OVRA[SPINDLE]=80 ; Override mandrino = 80%

SPINDLE=(S3) 3° mandrino

Condizioni marginali Variabili utente globali (GUD) Nell'ambito della definizione delle variabili utente globali (GUD) occorre considerare i seguenti dati macchina: N. Identificatore: $MN_ Significato 11140 GUD_AREA_ SAVE_TAB Protezione supplementare per i blocchi GUD 18118 MM_NUM_GUD_MODULES Numero dei file GUD nel file system attivo 18120 MM_NUM_GUD_NAMES_NCK Numero dei nomi GUD globali 18130 MM_NUM_GUD_NAMES_CHAN Numero dei nomi GUD spec. di canale 18140 MM_NUM_GUD_NAMES_AXIS Numero dei nomi GUD spec. per asse 18150 MM_GUD_VALUES_MEM Spazio di memoria per i valori GUD globali 18660 MM_NUM_SYNACT_GUD_REAL Numero GUD progettabili, tipo di dati REAL 18661 MM_NUM_SYNACT_GUD_INT Numero GUD progettabili, tipo di dati INT 18662 MM_NUM_SYNACT_GUD_BOOL Numero GUD progettabili, tipo di dati BOOL 18663 MM_NUM_SYNACT_GUD_AXIS Numero GUD progettabili, tipo di dati AXIS 18664 MM_NUM_SYNACT_GUD_CHAR Numero GUD progettabili, tipo di dati CHAR 18665 MM_NUM_SYNACT_GUD_STRING Numero GUD progettabili, tipo di dati STRING

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 30 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabili utente globali a livello di programma (PUD)

ATTENZIONE Visibilità delle variabili utente locali a livello di programma (PUD) Le variabili utente locali a livello di programma (PUD) definite nel programma principale sono visibili anche nei sottoprogrammi solo se è impostato il seguente dato macchina: MD11120 $MN_LUD_EXTENDED_SCOPE = 1 Con MD11120 = 0 le variabili utente locali a livello di programma definite nel programma principale sono visibili solo nel programma principale.

Utilizzo estese a più canali di una variabile utente globale a livello NCK del tipo di dati AXIS Una variabile utente globale a livello NCK del tipo di dati AXIS, inizializzata durante la definizione nel blocco dati con un identificatore dell'asse, può essere utilizzata in più canali NC solo se l'asse in questi canali ha lo stesso numero asse di canale. In caso contrario, la variabile deve essere caricata all'inizio del programma pezzo o, come nel seguente esempio, è necessario utilizzare la funzione AXNAME(...) (vedere "Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)"). Codice di programma Commento

DEF NCK STRING[5] ACHSE="X" ; Definizione nel blocco dati

N100 AX[AXNAME(ACHSE)]=111 G00 ; Utilizzo nel programma pezzo

Vedere anche Ridefinizione delle variabili di sistema, variabili utente e istruzioni NC (REDEF) (Pagina 31)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 31

1.1.6 Ridefinizione delle variabili di sistema, variabili utente e istruzioni NC (REDEF)

Funzione Con il comando REDEF è possibile modificare gli attributi delle variabili di sistema, variabili utente e istruzioni NC. Presupposto fondamentale della ridefinizione è che la stessa venga eseguita dopo la relativa definizione. Durante una ridefinizione non si possono modificare contemporaneamente più attributi. Per ogni attributo da modificare è necessario programmare un'istruzione REDEF a sé stante. Se si programmano più modifiche degli attributi in concomitanza, sarà sempre attiva solo l'ultima modifica. Attributi ridefinibili Vedere "Panoramica degli attributi definibili e ridefinibili (Pagina 47)" Variabili utente locali (PUD/LUD) Per le variabili utente locali (PUD/LUD) non si devono effettuare ridefinizioni.

Sintassi REDEF <nome> <stop_VL> REDEF <nome> <unità_fis> REDEF <nome> <valori_limite> REDEF <nome> <autorizzazioni_accesso> REDEF <nome> <istante_init> REDEF <nome> <istante_init> <valore_init>

Significato REDEF: Comando di ridefinizione di un determinato attributo delle variabili di

sistema, variabili utente e istruzioni NC <nome>: Nome di una variabile già definita o di un'istruzione NC

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 32 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Stop preelaborazione SYNR: Stop preelaborazione in lettura SYNW: Stop preelaborazione in scrittura

<stop_VL>:

SYNRW: Stop preelaborazione in lettura/scrittura unità fisica PHU <unità>:

<unità_fis>:

vedere "Attributo: unità fisica (PHU) (Pagina 39) " Nota Non ridefinibile per: • Variabili di sistema • Dati globali utente (GUD) • Tipi di dati: BOOL, AXIS, STRING, FRAME

Valore limite inferiore e/o superiore LLI <valore_limite>: Valore limite inferiore (lower limit) ULI <valore_limite>: Valore limite superiore (upper limit)

<valori_limite>:

vedere "Attributo: valori limite (LLI, ULI) (Pagina 38) " Nota Non ridefinibile per: • Variabili di sistema • Dati globali utente (GUD) • Tipi di dati: BOOL, AXIS, STRING, FRAME

Autorizzazioni di accesso per la lettura/scrittura tramite programma pezzo o interfaccia per pannello operativo APX <livello_protezione>:

Esecuzione: elemento del linguaggio NC

APRP <livello_protezione>:

Lettura: programma pezzo

APWP <livello_protezione>:

Scrittura: programma pezzo

APRB <livello_protezione>:

Lettura: BTSS

APWB <livello_protezione>:

Scrittura: interfaccia per pannello operativo

Grado di protezione Campo dei valori: 0 ... 7

<autorizzazioni_accesso>:

vedere "Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41) "

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 33

Istante in cui la variabile viene reinizializzata INIPO: PowerOn INIRE: Fine del programma principale, NC-Reset o

PowerOn INICF: NewConfig o fine del programma principale, NC-

Reset o PowerOn PRLOC: Fine del programma principale, NC-Reset dopo

modifica locale o PowerOn

<istante_init>:

vedere "Attributo: valore di inizializzazione (Pagina 34) " <valore_init>: Valore di inizializzazione

Per la ridefinizione del valore di inizializzazione è necessario definire sempre anche un istante di inizializzazione (vedere <istante_init>). vedere "Attributo: valore di inizializzazione (Pagina 34) " Per l'inizializzazione delle variabili di campo: vedere "Definizione e inizializzazione delle variabili di campo (DEF, SET, REP) (Pagina 48) " Nota Non ridefinibile per: • Variabili di sistema, eccetto i dati setting

Esempio Ridefinizione della variabile di sistema $TC_DPC1 nel blocco dati per il costruttore della macchina

Codice di programma

%_N_MGUD_DEF ; Blocco GUD: costruttore della macchina

$PATH=/_N_DEF_DIR

REDEF $TC_DPC1 APWB 2 APWP 3

REDEF $TC_DPC1 PHU 21

REDEF $TC_DPC1 LLI 0 ULI 200

REDEF $TC_DPC1 INIPO (100, 101, 102, 103)

; Descrizione

;

;

;

;

Scrittura autorizzazione di accesso: interfaccia per pannello operativo (BTSS) = livello di protezione 2, programma pezzo = livello di protezione 3

Nota

Utilizzando i file ACCESS, la ridefinizione delle autorizzazioni di accesso va spostata da

_N_MGUD_DEF a _N_MACCESS_DEF

; Unità fisica = [ % ]

; Valori limite: inferiore = 0, superiore = 200

; Al PowerOn la variabile di campo viene inizializzata con i quattro valori

M30

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 34 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Condizioni marginali Granularità Un ridefinizione si riferisce sempre all'intera variabile, contrassegnata univocamente dal suo nome. Non è possibile assegnare valori di attributo diversi, ad es. con le variabili di campo, per singoli elementi di campo.

Vedere anche Definizione di variabili utente (DEF) (Pagina 24)

1.1.7 Attributo: valore di inizializzazione

Definizione (DEF) di variabili utente Per la definizione è possibile preimpostare un valore di inizializzazione per le seguenti variabili utente: ● Variabili utente globali (GUD) ● Variabili utente globali a livello di programma (PUD) ● Variabili utente locali (LUD)

Ridefinizione (REDEF) di variabili di sistema e utente Per la ridefinizione è possibile preimpostare un valore di inizializzazione per le seguenti variabili: ● Dati di sistema

– Dati setting ● Dati utente

– Parametri R – Variabile sincrona ($AC_MARKER, $AC_PARAM, $AC_TIMER) – GUD di azione sincrona (SYG_xy[ ], con x=R, I, B, A, C, S e y=S, M, U, 4, ..., 9) – Parametri EPS – Dati utensile OEM – Dati magazzino OEM – Variabili utente globali (GUD)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 35

Istante di reinizializzazione Durante la ridefinizione è possibile specificare l'istante in cui la variabile va reinizializzata, ossia riportata nuovamente al valore di inizializzazione: ● INIPO (Power On)

La variabile viene reinizializzata al PowerOn. ● INIRE (Reset)

La variabile viene reinizializzata durante NC-Reset, BAG-Reset, fine del programma pezzo (M02/M30) o PowerOn.

● INICF (NewConfig) La variabile viene reinizializzata con la richiesta NewConf tramite l'HMI, il comando di programma pezzo NEWCONFIG o NC-Reset, BAG-Reset, la fine del programma pezzo (M02/M30) o un PowerOn.

● PRLOC (modifica locale a livello di programma) La variabile viene reinizializzata durante NC-Reset, BAG-Reset o la fine del programma pezzo (M02/M30) solo se è stata modificata nell'ambito del programma pezzo attuale. L'attributo PRLOC va utilizzato solo insieme con i dati setting programmabili (vedere la tabella seguente).

Tabella 1- 1 Dati setting programmabili

Numero Identificatore Comando G 1) 42000 $SC_THREAD_START_ANGLE SF

42010 $SC_THREAD_RAMP_DISP DITS/DITE 42400 $SA_PUNCH_DWELLTIME PDELAYON

42800 $SA_SPIND_ASSIGN_TAB SETMS

43210 $SA_SPIND_MIN_VELO_G25 G25

43220 $SA_SPIND_MAX_VELO_G26 G26

43230 $SA_SPIND_MAX_VELO_LIMS LIMS

43300 $SA_ASSIGN_FEED_PER_REV_SOURCE FPRAON

43420 $SA_WORKAREA_LIMIT_PLUS G26

43430 $SA_WORKAREA_LIMIT_MINUS G25

43510 $SA_FIXED_STOP_TORQUE FXST

43520 $SA_FIXED_STOP_WINDOW FXSW

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 36 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Numero Identificatore Comando G 1) 43700 $SA_OSCILL_REVERSE_POS1 OSP1

43710 $SA_OSCILL_REVERSE_POS2 OSP2

43720 $SA_OSCILL_DWELL_TIME1 OST1

43730 $SA_OSCILL_DWELL_TIME2 OST2

43740 $SA_OSCILL_VELO FA

43750 $SA_OSCILL_NUM_SPARK_CYCLES OSNSC

43760 $SA_OSCILL_END_POS OSE

43770 $SA_OSCILL_CTRL_MASK OSCTRL

43780 $SA_OSCILL_IS_ACTIVE OS

43790 $SA_OSCILL_START_POS OSB

1) Con questo comando G viene richiamato il dato setting

Condizioni marginali Valore di inizializzazione: variabili utente globali (GUD) ● Affinché una variabile utente globale (GUD) possa essere reimpostata tramiteINIRE

(Reset) o INICF (NewConfig) al proprio valore di inizializzazione assegnato durante le definizione o la ridefinizione, è necessario impostare il seguente dato macchina: MD11270 $MN_DEFAULT_VALUES_MEM_MASK, BIT0 = 1 Se il dato macchina non è impostato, le variabili utente globali (GUD) vengono impostate sul file di inizializzazione implicito del rispettivo tipo di dati.

● Per una variabile utente globale (GUD) con il campo di validità NCK è possibile preimpostare come istante di inizializzazione soltanto INIPO (Power On).

● Per le variabili utente globali (GUD) con il campo di validità CHAN è possibile preimpostare come istante di inizializzazione oltre INIPO (Power On) anche INIRE (Reset) o INICF (NewConfig).

● Per le variabili utente globali (GUD) con il campo di validità CHAN e istante di inizializzazione INIRE (Reset) o INICF (NewConfig) le variabili vengono reinizializzate con NC-Reset, BAG-Reset e NewConfig solo nei canali in cui si sono verificati gli eventi menzionati.

Valore di inizializzazione: tipo di dati FRAME Per le variabili del tipo di dati FRAME non si deve specificare un valore di inizializzazione. Le variabili del tipo di dati FRAME vengono inizializzate implicitamente sempre con il frame di default.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 37

Valore di inizializzazione: tipo di dati CHAR Per le variabili del tipo di dati CHAR è possibile programmare, in luogo del codice ASCII (0...255), anche il relativo carattere ASCII tra virgolette, ad es. "A" Valore di inizializzazione: tipo di dati STRING Per le variabili del tipo di dati STRING la stringa di caratteri deve essere posta tra virgolette, ad es.: ...= "MACCHINA_1" Valore di inizializzazione: tipo di dati AXIS Per le variabili del tipo di dati AXIS è necessario, in caso di scrittura ad indirizzo ampliato, porre tra parentesi l'identificatore dell'asse, ad es.: ...=(X3) Valore di inizializzazione: variabile di sistema Per una variabile di sistema non è possibile preimpostare mediante ridefinizione alcun valore di inizializzazione specifico per l'utente. I valori di inizializzazione delle variabili di sistema sono predefiniti in modo fisso dal sistema. Mediante la ridefinizione è tuttavia possibile modificare l'istante (INIRE, INICF) in cui la variabile di sistema viene reinizializzata. Valore di inizializzazione implicito: tipo di dati AXIS Per le variabili del tipo di dati AXIS si utilizza il seguente valore implicito di inizializzazione: ● Dati di sistema: "primo asse di geometria" ● GUD di azione sincrona (designazione: SYG_A*), PUD, LUD:

identificatore dal dato macchina: MD20082 $MC_AXCONF_CHANAX_DEFAULT_NAME Valore di inizializzazione implicito: dati utensili e magazzino Per i dati utensili e magazzino è possibile predefinire i valori di inizializzazione tramite il seguente dato macchina: MD17520 $MN_TOOL_DEFAULT_DATA_MASK

ATTENZIONE Sincronizzazione La sincronizzazione di eventi che provocano la reinizializzazione di una variabile globale con la lettura di questa variabile in un altro punto ricade nella responsabilità esclusiva dell'utente/del costruttore della macchina.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 38 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.1.8 Attributo: valori limite (LLI, ULI) Un valore limite superiore e inferiore del campo di definizione può essere predefinito solo per i seguenti tipi di dati: ● INT ● REAL ● CHAR

Definizione (DEF) di variabili utente: valori limite e valori impliciti di inizializzazione Se durante la definizione di una variabile utente di uno dei suddetti tipi di dati non si definisce un valore esplicito di inizializzazione, la variabile viene impostata sul valore implicito di inizializzazione del tipo di dati: ● INT: 0 ● REAL: 0.0 ● CHAR: 0 Se il valore implicito di inizializzazione non rientra nel campo di definizione definito dai valori limite programmati, la variabile viene inizializzata con il valore limite più approssimato al valore implicito di inizializzazione: ● valore implicito di inizializzazione < valore limite inferiore (LLI) ⇒

valore di inizializzazione = valore limite inferiore ● valore implicito di inizializzazione < valore limite superiore (ULI) ⇒

valore di inizializzazione = valore limite superiore Esempi: Codice di programma Commento

DEF REAL GUD1 ;

;

;

;

Valore limite inferiore = limite del campo di definizione

Valore limite superiore = limite del campo di definizione

Valore di inizializzazione =

Valore implicito di inizializzazione = 0.0

DEF REAL LLI 5.0 GUD2 ;

;

;

Valore limite inferiore = 10.0

Valore limite superiore = limite del campo di definizione

Valore di inizializzazione = 10.0

DEF REAL ULI –5 GUD3 ;

;

;

Valore limite inferiore = limite del campo di definizione

Valore limite superiore = -10.0

Valore di inizializzazione = -10.0

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 39

Ridefinizione (REDEF) di variabili utente: Valori limite e valori reali attuali Se durante la ridefinizione dei valori limite di una variabile utente i valori stessi vengono modificati e per effetto di tale modifica il valore reale attuale resta fuori del nuovo campo di definizione, si verifica un allarme e i valori limite non vengono applicati.

Nota Ridefinizione (REDEF) di variabili utente Durante la ridefinizione dei valori limite di una variabile utente occorre verificare che la modifica dei seguenti valori sia coerente: • Valori limite • Valore attuale • Valore di inizializzazione durante la ridefinizione e la reinizializzazione automatica su

base INIPO, INIRE o INICF

1.1.9 Attributo: unità fisica (PHU) Un'unità fisica può essere programmata solo per variabili dei seguenti tipi di dati: ● INT ● REAL

Unità fisiche programmabili (PHU) L'unità fisica viene preimpostata come numero a virgola fissa. Sono programmabili le seguenti unità fisiche:

<Unità> Significato Unità fisica 0 Nessuna unità fisica - 1 Posizione lineare o angolare 1) 2) [ mm ], [ inch ], [ gradi] 2 Posizione lineare 2) [ mm ], [ inch ] 3 Posizione angolare [ gradi ] 4 Velocità lineare o angolare 1) 2) [ mm/min ], [ inch/min ], [ giri/min ] 5 Velocità lineare 2) [mm/min] 6 Velocità angolare [giri/min] 7 Accelerazione lineare o angolare 1) 2) [ m/s2 ], [ inch/s2 ], [ giri/s2 ] 8 Accelerazione lineare 2) [ m/s2 ], [ inch/s2 ] 9 Accelerazione angolare [ giri/s2 ]

10 Strappo lineare o angolare 1) 2) [ m/s3 ], [ inch/s3 ], [ giri/s3 ] 11 Strappo lineare 2) [ m/s3 ], [ inch/s3 ] 12 Strappo angolare [ giri/s3 ] 13 Tempo [ s ] 14 Guadagno del regolatore di posizione [ 16.667/s ]

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 40 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

<Unità> Significato Unità fisica 15 Avanzamento al giro 2) [ mm/giro ], [ inch/giro ] 16 Compensazione della temperatura 1) 2) [ mm ], [ inch ] 18 Forza [ N ] 19 Massa [ kg ] 20 Momento d'inerzia 3) [ kgm2 ] 21 Percentuale [ % ] 22 Frequenza [ Hz ] 23 Tensione [ V ] 24 Corrente [ A ] 25 Temperatura [ °C ] 26 Angolo [ gradi ] 27 KV [ 1000/min ] 28 Posizione lineare o angolare 3) [ mm ], [ inch ], [ gradi] 29 Velocità di taglio 2) [ m/min ], [ feet/min ] 30 Velocità periferica 2) [ m/s], [ feet/s ] 31 Resistenza [ Ohm ] 32 Induttanza [ mH ] 33 Coppia 3) [Nm] 34 Costante di coppia 3) [ Nm/A ] 35 Guadagno del regolatore di corrente [ V/A ] 36 Guadagno del regolatore di velocità 3) [ Nm/(rad*s) ] 37 Numero di giri [giri/min] 42 Potenza [kW] 43 Corrente bassa [ μA ] 46 Coppia bassa 3) [ μNm ] 48 Per mille - 49 - [ Hz/s ] 65 Portata [l/min] 66 Stampa [bar] 67 Volume 3) [ cm3 ] 68 Guadagno del circuito regolato 3) [ mm/(V*min) ] 69 Guadagno del circuito regolato, regolatore di

forza [ N/V ]

155 Passo del filetto 3) [ mm/giro ], [ inch/giro ] 156 Variazione del passo del filetto 3) [ mm/giro / giro ], [ inch/giro / giro ]

1) L'unità fisica è in funzione del tipo di asse: asse lineare o rotante 2) La variabile viene automaticamente convertita nel sistema di misura attuale dell'NC (in pollici/metrico) 3) La variabile non viene automaticamente convertita nel sistema di misura attuale dell'NC (in pollici/metrico). La conversione è responsabilità esclusiva dell'utente/del costruttore della macchina.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 41

Nota Overflow di livello dovuto a conversione del formato Il formato di archiviazione interno per tutte le variabili utente (GUD/PUD/LUD) con unità fisiche relative alle lunghezze è metrico. Un uso eccessivo di queste variabili nel ciclo principale dell'NCK, ad es. nelle azioni sincrone, può provocare, in caso di commutazione del sistema di misura, un overflow del tempo di calcolo del livello interpolatore (allarme 4240).

ATTENZIONE Compatibilità delle unità L'utilizzo di variabili (assegnazione, confronto, calcolo ecc.) non è soggetto a una verifica di compatibilità delle unità coinvolte. La conversione eventualmente necessaria ricade nella responsabilità esclusiva dell'utente/del costruttore della macchina.

1.1.10 Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) I diritti di accesso sono soggetti ai seguenti livelli di protezione, da specificare durante la programmazione: Diritto di accesso Livello di protezione Password di sistema 0 Password costruttore della macchina 1 Password di service 2 Password utente finale 3 Interruttore a chiave posizione 3 4 Interruttore a chiave posizione 2 5 Interruttore a chiave posizione 1 6 Interruttore a chiave posizione 0 7

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 42 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Definizione (DEF) di variabili utente I diritti di accesso(APR.../APW...) possono essere definiti per le seguenti variabili: ● Dati globali utente (GUD)

Ridefinizione (REDEF) di variabili di sistema e utente I diritti di accesso(APR.../APW...) possono essere ridefiniti per le seguenti variabili: ● Dati di sistema

– Dati macchina – Dati di setting – FRAME – Dati di processo – Compensazione dell'errore passo vite (EEC) – Compensazione della flessione (CEC) – Compensazione dell'errore di quadrante (QEC) – Dati magazzino – Dati dell'utensile – Aree di protezione – Portautensili orientabili – Catene cinematiche – Zone di protezione 3D – Limitazione del campo di lavoro – Dati dell'utensile ISO

● Dati utente – Parametri R – Variabile sincrona ($AC_MARKER, $AC_PARAM, $AC_TIMER) – GUD di azione sincrona (SYG_xy[ ], con x=R, I, B, A, C, S e y=S, M, U, 4, ..., 9) – Parametri EPS – Dati utensile OEM – Dati magazzino OEM – Variabili utente globali (GUD)

Nota Durante la ridefinizione è possibile assegnare liberamente il diritto di accesso a una variabile tra il livello più basso di protezione 7 e il proprio livello di protezione, ad es. 1 (costruttore della macchina).

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 43

Ridefinizione (REDEF) di istruzioni NC Il diritto di accesso o di esecuzione (APX) può essere ridefinito per le seguenti istruzioni NC: ● Funzioni G/condizioni di percorso

Bibliografia: /PG/ Manuale di programmazione, Concetti fondamentali; capitolo: Funzioni G/condizioni di percorso

● Funzioni predefinite Bibliografia: /PG/ Manuale di programmazione, Concetti fondamentali; capitolo: Funzioni predefinite

● Richiami di sottoprogrammi predefiniti Bibliografia: /PG/ Manuale di programmazione, Concetti fondamentali; capitolo: Richiami di sottoprogrammi predefiniti

● Istruzione DO per azioni sincrone ● Identificatori di programma dei cicli

Il ciclo deve essere archiviato in una directory dei cicli e contenere un'istruzione PROC.

Diritti di accesso relativi ai programmi pezzo e ai cicli (APRP, APWP) I diversi diritti di accesso hanno gli effetti seguenti accedendo a un programma pezzo o un ciclo: ● APRP 0/APWP 0

– durante l'esecuzione del programma pezzo, la password di sistema deve essere impostata

– il ciclo deve essere archiviato nella directory _N_CST_DIR (sistema) – per la directory _N_CST_DIR è necessario impostare in MD11160

$MN_ACCESS_EXEC_CST il diritto di esecuzione su sistema ● APRP 1/APWP 1 o APRP 2/APWP 2

– durante l'esecuzione del programma pezzo, deve essere impostata la password del costruttore o del service

– il ciclo deve essere archiviato nella directory _N_CMA_DIR (costruttore della macchina) o _N_CST_DIR

– per la directory _N_CMA_DIR o _N_CST_DIR, nel dato macchina MD11161 $MN_ACCESS_EXEC_CMA o MD11160 $MN_ACCESS_EXEC_CST i diritti di esecuzione devono essere impostati almeno a livello del costruttore della macchina

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 44 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

● APRP 3/APWP 3 – durante l'esecuzione del programma pezzo, la password utente finale deve essere

impostata – il ciclo deve essere archiviato nella directory _N_CUS_DIR (utente), _N_CMA_DIR o

_N_CST_DIR – per la directory _N_CUS_DIR, _N_CMA_DIR o _N_CST_DIR, nel dato macchina

MD11162 $MN_ACCESS_EXEC_CUS, MD11161 $MN_ACCESS_EXEC_CMA o MD11160 $MN_ACCESS_EXEC_CST i diritti di esecuzione devono essere impostati almeno a livello dell'utente finale

● APRP 4...7/APWP 4...7 – durante l'esecuzione del programma pezzo, deve essere impostato il codice del

selettore a chiave 3 ... 0 – il ciclo deve essere archiviato nella directory _N_CUS_DIR, _N_CMA_DIR o

_N_CST_DIR – per la directory _N_CUS_DIR, _N_CMA_DIR o _N_CST_DIR, nel dato macchina

MD11162 $MN_ACCESS_EXEC_CUS, MD11161 $MN_ACCESS_EXEC_CMA o MD11160 $MN_ACCESS_EXEC_CST i diritti di esecuzione devono essere impostati almeno a livello del relativo codice del selettore a chiave

Diritti di accesso relativi all'interfaccia per pannello operativo (APRB, APWB) I diritti di accesso (APRB, APWB) limitano l'accesso alle variabili di sistema e utente tramite l'interfaccia per pannello operativo e ciò in uguale misura per tutti i componenti di sistema (HMI, PLC, computer esterni, servizi di alimentazione dell'elettronica, ecc.).

Nota Diritti di accesso locali a livello di interfaccia uomo-macchina (HMI) Per la modifica dei diritti di accesso dei dati di sistema è necessario sincerarsi che la stessa avvenga in modo coerente rispetto ai diritti di accesso definiti dai meccanismi HMI.

Attributi di accesso APR/APW Gli attributi di accesso APR/APW hanno le seguenti corrispondenze: APR 0...7 ⇒ APRP 0...7 APW 0...7 ⇒ APWP 0...7 APR 10...17 ⇒ APRB 0...7 APW 10...17 ⇒ APWB 0...7

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 45

Nota Restrizione relative ad APR Nell’utilizzo di APR si devono rispettare le seguenti restrizioni: • Una restrizione dei diritti di accesso per la lettura di variabili di sistema e utente nei

programmi pezzo/cicli mediante APR 0...7 non ha alcun effetto. • Una restrizione dei diritti di accesso tramite l'interfaccia pannello operativo per la lettura di

variabili di sistema e utente mediante APR 10...17 viene considerata solo in caso di accesso da HMI. L'acceso a partire da altri componenti (PLC, computer esterni, servizi di alimentazione dell'elettronica, ecc.) non viene limitato.

Impostazione dei diritti di accesso tramite file ACCESS Utilizzando dei file ACCESs per l'assegnazione dei diritti di accesso, le ridefinizioni dei diritti di accesso per i dati di sistema, i dati utente e le istruzioni NC devono venire programmate esclusivamente in questi file ACCESS. Fanno eccezione i dati globali utente (GUD). Per questi dati la ridefinizione dei diritti di accesso, se ritenuta necessaria, deve continuare ad essere programmata nei relativi file di definizione. Per una protezione continua d'accesso, i dati macchina per i diritti di esecuzione e la protezione d'accesso delle relative directory vanno adattati in modo coerente. Il procedimento che ne consegue è, in linea di principio, il seguente: ● Creazione dei file di definizione richiesti:

– _N_DEF_DIR/_N_SACCESS_DEF – _N_DEF_DIR/_N_MACCESS_DEF – _N_DEF_DIR/_N_UACCESS_DEF

● Parametrizzazione del diritto di scrittura per i file di definizione sul valore necessario per la ridefinizione: – MD11170 $MN_ACCESS_WRITE_SACCESS – MD11171 $MN_ACCESS_WRITE_MACCESS – MD11172 $MN_ACCESS_WRITE_UACCESS

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 46 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

● Per gli accessi a elementi protetti a partire dai cicli è necessario adeguare i diritti di esecuzione e di scrittura delle directory dei cicli _N_CST_DIR, _N_CMA_DIR e _N_CST_DIR: Diritti di esecuzione – MD11160 $MN_ACCESS_EXEC_CST – MD11161 $MN_ACCESS_EXEC_CMA – MD11162 $MN_ACCESS_EXEC_CUS Diritti di scrittura – MD11165 $MN_ACCESS_WRITE_CST – MD11166 $MN_ACCESS_WRITE_CMA – MD11167 MN_ACCESS_WRITE_CUS Il diritto di esecuzione deve venire impostato perlomeno su un livello di protezione pari a quello più alto relativo all'elemento utilizzato. Il diritto di scrittura va impostato perlomeno su un livello di protezione pari a quello del diritto di esecuzione.

● I diritti di scrittura delle directory dei cicli locali a livello HMI devono essere impostati su un livello di protezione pari a quello delle directory locali NC dei cicli. Bibliografia /BAD/ Manuale d'uso HMI-Advanced capitolo: Settore operativo Servizi > Gestione dati > Modifica proprietà

Richiamo di sottoprogrammi nei file ACCESS Per strutturare ulteriormente la protezione d'accesso è anche possibile richiamare dei sottoprogrammi nei file ACCESS (codificazione SPF o MPF). I sottoprogrammi ereditano i diritti di esecuzione del file ACCESS chiamante.

Nota Nei file ACCESS è possibile ridefinire soltanto i diritti di accesso. Per tutti gli altri attributi occorre continuare la programmazione o la ridefinizione nei relativi file di definizione.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 47

1.1.11 Panoramica degli attributi definibili e ridefinibili Le tabelle seguenti riportano per quali tipi di dati quali attributi possono essere definiti (DEF) e/o ridefiniti (REDEF).

Dati di sistema Tipo di dati Valore init Valori limite Unità fis. Diritti di accesso Dati macchina --- --- --- REDEF

Dati di setting REDEF --- --- REDEF

Dati FRAME --- --- --- REDEF

Dati di processo --- --- --- REDEF

Comp. dell'errore passo vite (EEC) --- --- --- REDEF

Compensazione della flessione (CEC) --- --- --- REDEF

Compensazione dell'errore di quadrante (QEC)

--- --- --- REDEF

Dati magazzino --- --- --- REDEF

Dati dell'utensile --- --- --- REDEF

Aree di protezione --- --- --- REDEF

Portautensili orientabili --- --- --- REDEF

Catene cinematiche --- --- --- REDEF

Zone di protezione 3D --- --- --- REDEF

Limitazione del campo di lavoro --- --- --- REDEF

Dati dell'utensile ISO --- --- --- REDEF

Dati utente Tipo di dati Valore init Valori limite Unità fis. Diritti di accesso Parametri R REDEF REDEF REDEF REDEF

Variabile di sincronizzazione ($AC_...) REDEF REDEF REDEF REDEF

GUD di azione sincrona (SYG_...) REDEF REDEF REDEF REDEF

Parametri EPS REDEF REDEF REDEF REDEF

Dati utensile OEM REDEF REDEF REDEF REDEF

Dati magazzino OEM REDEF REDEF REDEF REDEF

Variabili utente globali (GUD) DEF/REDEF DEF DEF DEF/REDEF

Variabili utente locali (PUD/LUD) DEF DEF DEF ---

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 48 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.1.12 Definizione e inizializzazione delle variabili di campo (DEF, SET, REP)

Funzione Una variabile utente può essere definita come un campo (array) a 1 ... max. 3 dimensioni: ● Monodimensionale: DEF <Tipo dati> <Nome variabile>[<n>] ● Bidimensionale: DEF <Tipo dati> <Nome variabile>[<n>,<m>] ● Tridimensionale: DEF <Tipo dati> <Nome variabile>[<n>,<m>,<o>]

Nota Le variabili utente del tipo di dati STRING possono essere definite al massimo come campo bidimensionale.

Tipi di dati Le variabili utente possono essere definite come campi per i seguenti tipi di dati: BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME Assegnazione dei valori agli elementi di campo È possibile assegnare i valori agli elementi nei seguenti momenti: ● durante la definizione del campo (valori di inizializzazione) ● durante l'esecuzione del programma Le assegnazioni dei valori possono avvenire tramite: ● definizione esplicita di un elemento di campo ● definizione esplicita di un elemento di campo come elemento iniziale e definizione di una

lista di valori (SET) ● definizione esplicita di un elemento di campo come elemento iniziale e definizione di un

valore e della frequenza della sua ripetizione (REP)

Nota Alle variabili utente del tipo di dati FRAME non possono essere assegnati valori di inizializzazione.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 49

Sintassi (DEF) DEF <Tipo dati> <Nome variabile>[<n>,<m>,<o>] DEF STRING[<lunghezza_stringa>] <nome_variabile>[<n>,<m>]

Sintassi (DEF...=SET...) Utilizzo di una lista di valori: ● per la definizione:

DEF <tipo_dati> <nome_variabile>[<n>,<m>,<o>] = SET(<valore1>,<valore2>,...) con lo stesso significato di: DEF <tipo_dati> <nome_variabile>[<n>,<m>,<o>] = (<valore1>,<valore2>,...)

Nota Durante l'inizializzazione tramite una lista di valori, la definizione di SET è opzionale.

● per un'assegnazione di valori: <nome_variabile>[<n>,<m>,<o>]=SET(<valore1>,<valore2>,...)

Sintassi (DEF...= REP...) Utilizzo di un valore con ripetizione ● per la definizione:

DEF <tipo_dati> <nome_variabile>[<n>,<m>,<o>]=REP(<valore>) DEF <tipo_dati> <nome_variabile>[<n>,<m>,<o>]=REP(<valore>,<numero_elementi_campo>)

● per un'assegnazione di valori: <Nome variabile>[<n>,<m>,<o>]=REP(<Valore>) <Nome variabile>[<n>,<m>,<o>]=REP(<Valore>,<Numero_elementi campo>)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 50 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato DEF: Comando per la definizione di variabili

Tipo di dati della variabile <tipo_dati>: Campo dei valori: • con le variabili di sistema:

BOOL, CHAR, INT, REAL, STRING, AXIS • con le variabili GUD o LUD:

BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME

<lunghezza_stringa>: Numero massimo di caratteri per il tipo di dati STRING

<nome_variabile>: Nome della variabile [<n>,<m>,<o>]: Grandezze di campo o indici di campo

Grandezza di campo o indici di campo per la 1° dimensione Tipo: INT (per le variabili di sistema anche: AXIS)

<n>:

Campo dei valori: Grandezza max. di campo: 65535Indice di campo: 0 ≤ n ≤ 65534

Grandezza di campo o indici di campo per la 2° dimensione Tipo: INT (per le variabili di sistema anche: AXIS)

<m>:

Campo dei valori: Grandezza max. di campo: 65535Indice di campo: 0 ≤ m ≤ 65534

Grandezza di campo o indici di campo per la 3° dimensione Tipo: INT (per le variabili di sistema anche: AXIS)

<o>:

Campo dei valori: Grandezza max. di campo: 65535Indice di campo: 0 ≤ o ≤ 65534

SET: Assegnazioni di valori tramite la lista valori specificata

(<valore1>,<valore2>,...): Lista di valori REP: Assegnazioni di valori tramite il <valore>

specificato

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 51

<Valore>: Valore con il quale vengono definiti gli elementi di campo durante l'inizializzazione con REP.

<numero_elementi<-campo>: Numero degli elementi di campo che devono essere descritti con il <valore> specificato. Per i restanti elementi di campo vale quanto segue, in funzione dell'istante: • Inizializzazione durante la definizione del campo:

→ I restanti elementi di campo vengono descritti con zero

• Assegnazione durante l'esecuzione del programma: → I valori correnti degli elementi di campo restano invariati.

Se il parametro non è programmato, tutti gli elementi di campo vengono descritti con <valore>. Se il parametro è uguale a zero, vale quanto segue, in funzione dell'istante: • Inizializzazione durante la definizione del campo:

→ A tutti gli elementi viene preassegnato il valore zero

• Assegnazione durante l'esecuzione del programma: → I valori correnti degli elementi di campo restano invariati.

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 52 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Indice di campo La sequenza implicita degli elementi di campo, ad es. per un'assegnazione del valore tramite SET o REP, avviene mediante iterazione dell'indice di campo da destra a sinistra. Esempio: Inizializzazione di un campo tridimensionale con 24 elementi di campo: DEF INT FELD[2,3,4] = REP(1,24) FELD[0,0,0] = 1 1° elemento di campo FELD[0,0,1] = 1 2° elemento di campo FELD[0,0,2] = 1 3° elemento di campo FELD[0,0,3] = 1 4° elemento di campo ... FELD[0,1,0] = 1 5° elemento di campo FELD[0,1,1] = 1 6° elemento di campo ... FELD[0,2,3] = 1 12° elemento di campo FELD[1,0,0] = 1 13° elemento di campo FELD[1,0,1] = 1 14° elemento di campo ... FELD[1,2,3] = 1 24° elemento di campo

relativamente: FOR n=0 TO 1 FOR m=0 TO 2

FOR o=0 TO 3

FELD[n,m,o] = 1

ENDFOR

ENDFOR ENDFOR

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 53

Esempio: Inizializzazione di campi di variabili completi Per l'assegnazione corrente si rimanda alla figura.

Codice di programma

N10 DEF REAL FELD1[10,3]=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,)

N20 FELD1[0,0] = REP(100)

N30 FELD1[5,0] = REP(-100)

N40 FELD1[0,0]=SET(0,1,2,-10,-11,-12,-20,-20,-20,-30, , , ,-40,-40,-50,-60,-70)

N50 FELD1[8,1]=SET(8.1,8.2,9.0,9.1,9.2)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 54 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni (SET) Inizializzazione durante la definizione ● A iniziare dal 1° elemento di campo, vengono inizializzati tanti elementi di campo con i

valori della lista di valori quanti elementi sono programmati nella lista stessa. ● Gli elementi di campo senza valori definiti esplicitamente (lacune nella lista dei valori)

vengono assegnati a 0. ● Per le variabili del tipo di dati AXIS non sono consentite lacune nella lista dei valori. ● Se una lista dei valori contiene più valori degli elementi di campo definiti, viene

visualizzato un allarme. Assegnazione dei valori nell'esecuzione del programma Per l'assegnazione dei valori nell'esecuzione del programma valgono le regole descritte sopra per la definizione. Esistono inoltre le seguenti possibilità: ● Come elementi nella lista dei valori sono consentite anche espressioni. ● L'assegnazione dei valori inizia con l'indice di campo programmato. È possibile quindi

assegnare in modo mirato valori a campi parziali. Esempio: Codice di programma Commento

DEF INT FELD[5,5] ; Definizione del campo

FELD[0,0]=SET(1,2,3,4,5) ; Assegnazione dei valori ai primi 5 elementi di campo [0,0] - [0,4]

FELD[0,0]=SET(1,2, , ,5) ; Assegnazione dei valori con spazio vuoto ai primi 5 elementi di campo [0,0] - [0,4], elementi di campo [0,2] e [0,3] = 0

FELD[2,3]=SET(VARIABLE,4*5.6) ; Assegnazione dei valori con variabile ed espressione a partire dall'indice di campo [2,3]: [2,3] = VARIABILE [2,4] = 4 * 5.6 = 22.4

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 55

Ulteriori informazioni (REP) Inizializzazione durante la definizione ● Tutti gli elementi di campo, o il numero degli stessi opzionalmente definito, vengono

inizializzati con il valore specificato (costante). ● Le variabili del tipo di dati FRAME non possono essere inizializzate. Esempio: Codice di programma Commento

DEF REAL varName[10]=REP(3.5,4) ; Inizializzazione delle definizione del campo e degli elementi di campo [0] ... [3] con il valore 3,5

Assegnazione dei valori nell'esecuzione del programma Per l'assegnazione dei valori nell'esecuzione del programma valgono le regole descritte sopra per la definizione. Esistono inoltre le seguenti possibilità: ● Come elementi nella lista dei valori sono consentite anche espressioni. ● L'assegnazione dei valori inizia con l'indice di campo programmato. È possibile quindi

assegnare in modo mirato valori a campi parziali. Esempi: Codice di programma Commento

DEF REAL varName[10] ; Definizione del campo

varName[5]=REP(4.5,3) ; Elementi di campo [5] ... [7] = 4,5

R10=REP(2.4,3) ; Parametro R R10 ... R12 = 2,4

DEF FRAME FRM[10] ; Definizione del campo

FRM[5] = REP(CTRANS (X,5)) ; Elementi di campo [5] ... [9] = CTRANS(X,5)

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro 56 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni (in generale) Assegnazione dei valori ai dati macchina assiali I dati macchina assiali hanno in linea di principio un indice di campo del tipo di dati AXIS. Per le assegnazioni dei valori a un dato macchina assiale mediante SET o REP questo indice di campo viene ignorato o non eseguito. Esempio: assegnazione dei valori al dato macchina MD36200 $MA_AX_VELO_LIMIT $MA_AX_VELO_LIMIT[1,AX1]=SET(1.1, 2.2, 3.3) Corrisponde a: $MA_AX_VELO_LIMIT[1,AX1]=1.1

$MA_AX_VELO_LIMIT[2,AX1]=2.2

$MA_AX_VELO_LIMIT[3,AX1]=3.3

ATTENZIONE Assegnazione dei valori ai dati macchina assiali Per le assegnazioni dei valori a dati macchina assiali mediante SET o REP l'indice di campo del tipo di dati AXIS viene ignorato o non eseguito.

Memoria necessaria Tipo di dati Occupazione di memoria per ogni elemento BOOL 1 byte CHAR 1 byte INT 4 byte REAL 8 byte STRING (Lunghezza stringa + 1) byte FRAME ∼ 400 byte in funzione del numero di assi AXIS 4 byte

Programmazione NC flessibile 1.1 Variabili

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 57

1.1.13 Tipi di dati I seguenti tipi di dati sono disponibili nell'NC:

Tipo di dati Significato Campo di valori INT Valore intero con segno -2147483648 ... +2147483647 REAL Numero reale (LONG REAL secondo IEEE) ±(∼2,2*10-308 … ∼1,8*10+308) BOOL Valore logico TRUE (1) e FALSE (0) 1, 0 CHAR Carattere ASCII Codice ASCII 0 ... 255 STRING Stringa di caratteri di lunghezza definita 200 caratteri max (nessun carattere speciale) AXIS Identificatore asse/mandrino Identificatore dell'asse canale FRAME Dati geometrici per una trasformazione statica delle

coordinate (spostamento, rotazione, fattore di scala, specularità)

---

Conversioni implicite del tipo di dati Sono possibili le seguenti conversioni del tipo di dati, che vengono effettuate implicitamente durante le assegnazioni e i trasferimenti di parametri:

da ↓/ a → REAL INT BOOL REAL x a & INT x x & BOOL x x x x: Possibile senza restrizioni o: Possibile una perdita di dati per superamento del campo di valori ⇒ allarme; arrotondamento: valore decimale ≥ 0,5 ⇒ in eccesso, valore decimale < 0,5 ⇒ in difetto &: Valore ≠ 0 ⇒ TRUE, valore == 0 ⇒ FALSE

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro 58 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.2 1.2 Programmazione indiretta

Funzione Durante la programmazione indiretta di indirizzi, l'indirizzo ampliato (indice) viene sostituito da una variabile di tipo adatto.

Nota La programmazione indiretta di indirizzi non è possibile con: • N (numero blocco) • L (sottoprogramma) • Indirizzi impostabili

(ad es. X[1] al posto di X1 non è consentito)

Sintassi <INDIRIZZO>[<Indice>]

Significato <INDIRIZZO>[...]: Indirizzo fisso con ampliamento (indice) <Index>: Variabile ad esempio per n. mandrino, asse ...

Esempi Esempio 1: Programmazione indiretta di un numero mandrino Programmazione diretta: Codice di programma Commento

S1=300 ; Numero di giri: 300 giri/min per il mandrino con numero 1.

Programmazione indiretta: Codice di programma Commento

DEF INT SPINU=1 ; Definizione di variabili del tipo INT e assegnazione dei valori.

S[SPINU]=300 ; Numero di giri: 300 giri/min per i mandrini il cui numero è memorizzato nelle variabili SPINU (nell'esempio il mandrino con numero 1).

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 59

Esempio 2: Programmazione indiretta di un asse Programmazione diretta: Codice di programma Commento

FA[U]=300 ; Avanzamento 300 per l'asse "U".

Programmazione indiretta: Codice di programma Commento

DEF AXIS AXVAR2=U ; Definizione di una variabile del tipo AXIS e assegnazione dei valori.

FA[AXVAR2]=300 ; Avanzamento 300 per l'asse il cui nome di indirizzo è memorizzato nelle variabili con il nome AXVAR2.

Esempio 3: Programmazione indiretta di un asse Programmazione diretta: Programmazione Commento

$AA_MM[X] ; Lettura del valore di misura del tastatore (sist. coordinate macchina, SCM) dell'asse "X".

Programmazione indiretta: Codice di programma Commento

DEF AXIS AXVAR3=X ; Definizione di una variabile del tipo AXIS e assegnazione dei valori.

$AA_MM[AXVAR3] ; Lettura del valore di misura del tastatore (sist. coordinate macchina, SCM) per l'asse il cui nome è memorizzato nella variabile AXVAR3.

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro 60 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 4: Programmazione indiretta di un asse Programmazione diretta: Codice di programma

X1=100 X2=200

Programmazione indiretta: Codice di programma Commento

DEF AXIS AXVAR1 AXVAR2 ; Definizione di due variabili di tipo AXIS.

AXVAR1=(X1) AXVAR2=(X2) ; Assegnazione dei nomi degli assi.

AX[AXVAR1]=100 AX[AXVAR2]=200 ; Spostamento degli assi i cui nomi di indirizzo sono memorizzati nelle variabili con i nomi AXVAR1 e AXVAR2.

Esempio 5: Programmazione indiretta di un asse Programmazione diretta: Codice di programma

G2 X100 I20

Programmazione indiretta: Codice di programma Commento

DEF AXIS AXVAR1=X ; Definizione di una variabile del tipo AXIS e assegnazione dei valori.

G2 X100 IP[AXVAR1]=20 ; Programmazione indiretta dell'indicazione del centro per l'asse il cui nome di indirizzo è memorizzato nelle variabili con il nome AXVAR1.

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 61

Esempio 6: Programmazione indiretta di elementi di campo Programmazione diretta: Codice di programma Commento

DEF INT FELD1[4,5] ; Definizione del campo 1.

Programmazione indiretta: Codice di programma Commento

DEFINE DIM1 AS 4 ; Nelle dimensioni del campo, le grandezze vanno indicate come valori fissi.

DEFINE DIM2 AS 5

DEF INT FELD[DIM1,DIM2]

FELD[DIM1-1,DIM2-1]=5

Esempio 7: Richiamo indiretto di sottoprogrammi Codice di programma Commento

CALL "L" << R10 ; Richiamo del programma il cui numero è contenuto in R10 (concatenamento della stringa).

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro 62 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.2.1 Programmazione indiretta di codici G

Funzione La programmazione indiretta di codici G consente una programmazione efficace dei cicli.

Sintassi G[<Gruppo>]=<Numero>

Significato G[...]: Comando G con ampliamento (indice)

Parametro dell'indice: Gruppo funzioni G Tipo: INT

<gruppo>:

Nota: È possibile effettuare la programmazione indiretta dei soli gruppi funzione G ad azione modale. I gruppi funzione G efficaci blocco a blocco vengono rifiutati con un allarme. Variabile per il numero di codice G Tipo: INT o REAL

<Numero>:

Nota: Nella programmazione indiretta di codice G non è consentito l'uso di funzioni aritmetiche. Se vi è la necessità di calcolare i numeri di codici G, questo dovrà avvenire in una riga specifica del partprogram prima della programmazione indiretta dei codici G.

Esempi Esempio 1: Spostamento origine impostabile (gruppo funzione G 8) Codice di programma Commento

N1010 DEF INT INT_VAR

N1020 INT_VAR = 2

...

N1090 G[8]=INT_VAR G1 X0 Y0 ; G54

N1100 INT_VAR=INT_VAR+1 ; Calcolo del codice G

N1110 G[8]=INT_VAR G1 X0 Y0 ; G55

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 63

Esempio 2: Selezione del piano (gruppo funzione G 6) Codice di programma Commento

N2010 R10=$P_GG[6] ; Lettura della funzione G attiva del gruppo funzione G 6

...

N2090 G[6]=R10

Bibliografia Per informazioni sui gruppi funzione G si rimanda al: Manuale di programmazione, Nozioni di base; Capitolo "Elenco delle funzioni G/Condizioni di percorso".

1.2.2 Programmazione indiretta di attributi di posizione (GP)

Funzione Gli attributi di posizione, quali ad esempio la programmazione incrementale o assoluta della posizione dell'asse, possono essere programmati indirettamente come variabili unitamente alla parola chiave GP.

Applicazioni La programmazione indiretta di attributi di posizione viene utilizzata nei cicli di sostituzione, in quanto rispetto alla programmazione di attributi di posizione quale parola chiave (ad es. IC, AC, ...) si ha il seguente vantaggio: Attraverso la programmazione indiretta come variabili non è richiesta alcuna istruzione CASE, che si ramifica in tutti i possibili attributi di posizione.

Sintassi <COMANDO DI POSIZIONAMENTO>[<Asse/Mandrino>]= GP(<Posizione>,<Attributo di posizione) <Asse/Mandrino>=GP(<Posizione>,<Attributo di posizione)

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro 64 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato <COMANDO_POSIZIONAMENTO>[]:

I seguenti programmi di posizionamento possono essere programmati assieme alla parola chiave GP: POS, POSA,SPOS, SPOSA Altre possibilità: • tutti gli identificatori dell'asse/dei mandrini presenti

nel canale: <Asse/mandrino>

• Identificatore dell'asse/del mandrino variabile AX

<asse/mandrino>: Asse/mandrino da posizionare GP(): Parola chiave per il posizionamento <posizione>: Parametro 1

Posizione dell'asse/del mandrino come costante o variabile

<attributo_posizione>: Parametro 2 Attributo di posizione (ad esempio modalità di accostamento della posizione) quale variabile (ad es. $P_SUB_SPOSMODE) oppure quale parola chiave (IC, AC, ...)

I valori forniti dalle variabili hanno il seguente significato: Valore Significato Consentito per: 0 Nessuna modifica dell'attributo di

posizione

1 AC POS, POSA,SPOS, SPOSA,AX, Indirizzo dell'asse 2 IC POS, POSA,SPOS, SPOSA,AX, Indirizzo dell'asse 3 DC POS, POSA,SPOS, SPOSA,AX, Indirizzo dell'asse 4 ACP POS, POSA,SPOS, SPOSA,AX, Indirizzo dell'asse 5 ACN POS, POSA,SPOS, SPOSA,AX, Indirizzo dell'asse 6 OC - 7 PC - 8 DAC POS, POSA,AX, Indirizzo dell'asse 9 DIC POS, POSA,AX, Indirizzo dell'asse 10 RAC POS, POSA,AX, Indirizzo dell'asse 11 RIC POS, POSA,AX, Indirizzo dell'asse 12 CAC POS, POSA 13 CIC POS, POSA 14 CDC POS, POSA 15 CACP POS, POSA 16 CACN POS, POSA

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 65

Esempio Con accoppiamento sincrono mandrini attivo tra mandrino master S1 e mandrino slave S2, attraverso il comando SPOS nel programma principale viene richiamato il seguente ciclo di sostituzione per il posizionamento del mandrino. Il posizionamento viene effettuato attraverso l'istruzione in N2230: SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE) SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)

La posizione da raggiungere viene letta dalle variabili di sistema $P_SUB_SPOSIT, la modalità di accostamento della posizione viene letta dalle variabili di sistema $P_SUB_SPOSMODE.

Codice di programma Commento

N1000 PROC LANG_SUB DISPLOF SBLOF

...

N2100 IF($P_SUB_AXFCT==2)

N2110 ; Sostituzione del comando SPOS/SPOSA/M19 con accoppiamento sincrono mandrini attivo

N2185 DELAYFSTON ; Inizio del settore Stop-Delay

N2190 COUPOF(S2,S1) ; Disattivazione dell'accoppiamento sincrono mandrini

N2200 ; Posizionamento del mandrino master e slave

N2210 IF($P_SUB_SPOS==TRUE) OR ($P_SUB_SPOSA==TRUE)

N2220 ; Posizionamento del mandrino con SPOS:

N2230 SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)

SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)

N2250 ELSE

N2260 ; Posizionamento del mandrino con M19:

N2270 M1=19 M2=19 ; Posizionamento del mandrino master e slave

N2280 ENDIF

N2285 DELAYFSTOF ; Fine del settore Stop-Delay

N2290 COUPON(S2,S1) ; Attivazione dell'accoppiamento sincrono mandrini

N2410 ELSE

N2420 ; Interrogazione su ulteriori sostituzioni

...

N3300 ENDIF

...

N9999 RET

Condizioni marginali Nelle azioni sincrone non è possibile la programmazione indiretta di attributi di posizione.

Bibliografia Manuale di guida alle funzioni, Funzioni di base; BAG; canale, funzionamento del programma, comportamento di reset (K1), capitolo: Sostituzione di funzioni NC attraverso sottoprogrammi

Programmazione NC flessibile 1.2 Programmazione indiretta

Preparazione del lavoro 66 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.2.3 Programmazione indiretta di righe di partprogram (EXECSTRING)

Funzione Con l'istruzione di programma EXECSTRING, come parametro viene passata stringa che contiene la riga di partprogram da eseguire.

Sintassi EXECSTRING (<variabile_String>)

Parametri EXECSTRING: Trasmissione di una variabile String con la riga di

partprogram da eseguire <variabile_String>: Parametro con la riga effettiva di partprogram da eseguire

Nota Si possono trasferire tutti gli elementi di un programma che possono essere programmati all'interno di un partprogram. Vengono quindi escluse le istruzioni PROC e DEF nonché in linea generale l'utilizzo in file INI e DEF.

Esempio Riga di partprogram indiretta Codice di programma Commento

N100 DEF STRING[100] BLOCK ; Variabile String per l'acquisizione della riga di partprogram

N110 DEF STRING[10] MFCT1="M7"

N200 EXECSTRING(MFCT1 << "M4711") ; Esecuzione della riga di partprogram "M7 M4711"

N300 R10=1

N310 BLOCK="M3"

N320 IF(R10)

N330 BLOCK = BLOCK << MFCT1

N340 ENDIF

N350 EXECSTRING(BLOCK) ; Esecuzione della riga di partprogram "M3 M4711"

Programmazione NC flessibile 1.3 Funzioni di calcolo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 67

1.3 1.3 Funzioni di calcolo

Funzione Le funzioni di calcolo possono essere utilizzate in particolare per parametri R (oppure costanti e funzioni) del tipo REAL. Sono consentiti anche i tipi INT e CHAR. Operatori/funzioni di calcolo Significato + Addizione - Sottrazione * Moltiplicazione / Divisione

Attenzione: (Tipo INT)/(Tipo INT)=(Tipo REAL); Esempio: 3/4 = 0.75

DIV Divisione, solo per variabili di tipo INT e REAL Attenzione: (Tipo INT)DIV(Tipo INT)=(Tipo INT); Esempio: 3 DIV 4 = 0

MOD Divisione modulo (solo per tipo INT) dà il resto di una divisione INT Esempio: 3 MOD 4 = 3

: operatore di concatenamento (con variabili FRAME) Sin() Seno COS() Coseno TAN() Tangente ASIN() Arcoseno ACOS() Arcocoseno ATAN2(,) Arcotangente2 SQRT() Radice quadrata ABS() Valore assoluto POT() 2ª potenza (quadrato) TRUNC() Parte intera

Precisioni con istruzioni di confronto impostabili con TRUNC (vedere "Correttore di precisione in caso di errori di confronto (TRUNC) (Pagina 73)")

ROUND() Arrotondamento a intero LN() Logaritmo naturale EXP() Funzione esponenziale

Programmazione NC flessibile 1.3 Funzioni di calcolo

Preparazione del lavoro 68 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

MINVAL() Valore più piccolo di due variabili (vedere "Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)")

MAXVAL() Valore più grande di due variabili (vedere "Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)")

BOUND() Valore della variabile che rientra nel campo di valori definito (vedere "Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)")

CTRANS() Traslazione CROT() Rotazione CSCALE() Variazione del fattore di scala CMIRROR() Specularità

Programmazione Per le funzioni di calcolo vale la scrittura matematica tradizionale. Le priorità dell'elaborazione vengono impostate tramite parentesi rotonde. Per le funzioni trigonometriche e le relative funzioni inverse vale l'impostazione in gradi (angolo retto=90°).

Esempi Esempio 1: ATAN2

La funzione di calcolo ATAN2 calcola l'angolo del vettore somma di due vettori ortogonali. Il risultato è compreso nel campo dei quattro quadranti (-180° < 0 < +180°). La base per l'angolo di riferimento è sempre il 2° valore in direzione positiva.

Programmazione NC flessibile 1.3 Funzioni di calcolo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 69

Esempio 2: Inizializzazione di campi di variabili completi Codice di programma Commento

R1=R1+1 ; Nuovo R1 = vecchio R1 +1

R1=R2+R3 R4=R5-R6 R7=R8*R9

R10=R11/R12 R13=SIN(25.3)

R14=R1*R2+R3 ; La moltiplicazione viene eseguita prima dell'addizione.

R14=(R1+R2)*R3 ; Vengono eseguite per prime le parentesi.

R15=SQRT(POT(R1)+POT(R2)) ; Vengono eseguite per prime le parentesi interne:

R15 = radice quadrata calcolata da (R1+R2)

RESFRAME=FRAME1:FRAME2

FRAME3=CTRANS(…):CROT(…)

; Con l'operatore di concatenamento vengono collegati Frame ad un Frame risultante oppure assegnati valori ai componenti Frame.

Programmazione NC flessibile 1.4 Operazioni logiche e di confronto

Preparazione del lavoro 70 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.4 1.4 Operazioni logiche e di confronto

Funzioni Le operazioni di confronto possono essere utilizzate ad esempio per formulare delle condizioni di salto. In questo modo si possono confrontare anche espressioni complesse. Le operazioni di confronto possono essere utilizzate per le variabili del tipo CHAR,INT, REAL e BOOL. Per il tipo CHAR viene confrontato il valore del codice. Per i tipi STRING, AXIS e FRAME sono ammessi: == e <>, che possono essere applicati per le operazioni del tipo STRING anche nelle azioni sincrone. Il risultato delle operazioni confrontate è sempre del tipo BOOL. Operatori logici servono per operazioni con valori di verità. Le operazioni logiche sono applicabili solo alla variabile di tipo BOOL. Tramite conversione interna del tipo si possono applicare anche ai tipi di dati CHAR, INT e REAL. Nel caso delle operazioni logiche (booleane) per i tipi di dati BOOL, CHAR,INT e REAL vale quanto segue: ● 0 corrisponde a: FALSE ● diverso da 0 corrisponde a: TRUE Operatori logici a bit Con le variabili del tipo CHAR e INT si possono eseguire anche operazioni logiche a bit. Eventualmente avviene automaticamente una conversione di tipo.

Programmazione Operatore di confronto Significato == uguale <> diverso > maggiore < minore >= maggiore o uguale <= minore o uguale

Programmazione NC flessibile 1.4 Operazioni logiche e di confronto

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 71

Operatore logico Significato AND AND OR OR NOT Negazione XOR OR esclusivo

Operatori logici a bit Significato B_AND AND a bit B_OR OR a bit B_NOT negazione a bit B_XOR OR esclusivo a bit

Nota Nelle espressioni aritmetiche la sequenza di elaborazione di tutti gli operatori può essere determinata con parentesi tonde, scostandosi così dalle normali regole di priorità.

Nota Tra gli operandi BOOLEANI e gli operatori si devono lasciare degli spazi intermedi.

Nota L'operatore B_NOT si riferisce ad un solo operando. L'operando è posto dopo l'operatore.

Programmazione NC flessibile 1.4 Operazioni logiche e di confronto

Preparazione del lavoro 72 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: operatori di confronto IF R10>=100 GOTOF DESTINAZIONE

oppure R11=R10>=100 IF R11 GOTOF DESTINAZIONE

Il risultato del confronto R10>=100 viene memorizzato temporaneamente in R11. Esempio 2: Operatori logici IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF DESTINAZIONE

oppure IF NOT R10 GOTOB START

NOT si riferisce solo a un operando. Esempio 3: Operatori logici a bit IF $MC_RESET_MODE_MASK B_AND 'B10000' GOTOF ACT_PLANE

Programmazione NC flessibile 1.5 Correttore di precisione in caso di errori di confronto (TRUNC)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 73

1.5 1.5 Correttore di precisione in caso di errori di confronto (TRUNC)

Funzione L'istruzione TRUNC tronca le cifre decimali dell'operando moltiplicato con un fattore di precisione. Precisione impostabile in caso di istruzioni di confronto I dati del partprogram del tipo REAL vengono rappresentati internamente nel formato IEEE a 64 bit. Questo formato di rappresentazione può causare delle inesattezze nei numeri decimali e quindi, in un confronto con valori ideali, si possono verificare risultati errati. Uguaglianza relativa Per evitare che le inesattezze dovute al formato di rappresentazione incidano sullo svolgimento del programma, nelle istruzioni di confronto non si verifica l'uguaglianza assoluta ma soltanto quella relativa.

Sintassi Correttore di precisione in caso di errori di confronto TRUNC (R1*1000)

Significato TRUNC: Esclusione delle cifre decimali

Uguaglianza relativa considerata pari a 10-12 per ● uguale: (==) ● diverso: (<>) ● maggiore o uguale: (>=) ● minore o uguale: (<=) ● maggiore/minore: (><) con uguaglianza assoluta ● maggiore: (>) ● minore: (<)

Programmazione NC flessibile 1.5 Correttore di precisione in caso di errori di confronto (TRUNC)

Preparazione del lavoro 74 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Compatibilità Per motivi di compatibilità, è possibile disattivare la verifica dell'uguaglianza relativa per (>) e (<) impostando il dato macchina MD10280 $MN_ PROG_FUNCTION_MASK Bit0 = 1.

Nota Confronti con dati del tipo REAL, per i motivi citati in precedenza, sono affetti generalmente da una certa imprecisione. In caso di differenze non accettabili, si deve ricorrere al calcolo INTEGER moltiplicando gli operandi con un fattore di precisione e successivamente troncandoli con l'istruzione TRUNC.

Azioni sincrone Il comportamento descritto per quanto riguarda le istruzioni di confronto vale anche per le azioni sincrone.

Esempi Esempio 1: considerazioni sulla precisione Codice di programma Commento

N40 R1=61.01 R2=61.02 R3=0.01 ; Assegnazione dei valori iniziali

N41 IF ABS(R2-R1) > R3 GOTOF ERRORE ; Il salto è stato finora eseguito

N42 M30 ; Fine programma

N43 ERRORE: SETAL(66000) ;

R1=61.01 R2=61.02 R3=0.01 ; Assegnazione dei valori iniziali

R11=TRUNC(R1*1000) R12=TRUNC(R2*1000) R13=TRUNC(R3*1000)

; Correttore di precisione

IF ABS(R12-R11) > R13 GOTOF ERRORE ; Il salto non viene più eseguito

M30 ; Fine programma

ERRORE: SETAL(66000) ;

Esempio 2: formazione e valutazione del quoziente di entrambi gli operandi Codice di programma Commento

R1=61.01 R2=61.02 R3=0.01 ; Assegnazione dei valori iniziali

IF ABS((R2-R1)/R3)-1) > 10EX-5 GOTOF ERRORE ; Il salto non viene eseguito

M30 ; Fine programma

ERRORE: SETAL(66000) ;

Programmazione NC flessibile 1.6 Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 75

1.6 1.6 Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND)

Funzioni Con i comandi MINVAL e MAXVAL è possibile confrontare fra loro i valori di due variabili. Come risultato viene restituito il valore minore (con MINVAL) o quello maggiore (con MAXVAL). Con il comando BOUND si può controllare se il valore di una variabile da verificare si trovi entro un campo di valori definito.

Sintassi <valore minore>=MINVAL(<variabile1>,<variabile2>) <valore maggiore>=MAXVAL(<variabile1>,<variabile2>) <valore di ritorno>=BOUND(<minimo>,<massimo>,<variabile da verificare>)

Significato MINVAL: Rileva il valore minore di due variabili (<variabile1>,

<variabile2>) <valore minore>: Variabile risultato del comando MINVAL

Viene impostata sul valore minore della variabile. MAXVAL: Rileva il valore maggiore di due variabili (<variabile1>,

<variabile2>) <valore maggiore>: Variabile risultato del comando MAXVAL

Viene impostata sul valore maggiore della variabile. BOUND: Controlla se una variabile (<variabile da verificare>) si

trovi entro un campo di valori definito. <minimo>: Variabile che definisce il valore minimo del campo di valori <massimo>: Variabile che definisce il valore massimo del campo di valori

Programmazione NC flessibile 1.6 Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND)

Preparazione del lavoro 76 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

<valore di ritorno>:

Variabile risultato del comando BOUND Se il valore di una variabile da verificare si trova entro un campo di valori definito, la variabile di evento viene impostata sul valore della variabile da verificare. Se il valore della variabile da verificare è maggiore del valore massimo, la variabile di evento viene impostata sul valore massimo del campo di definizione. Se il valore della variabile da verificare è minore del valore minimo, la variabile di evento viene impostata sul valore minimo del campo di definizione.

Nota MINVAL, MAXVAL e BOUND si possono programmare anche nelle azioni sincrone.

Nota Comportamento in caso di uguaglianza In caso di parità di MINVAL/MAXVAL, viene restituito questo valore uguale. Con BOUND viene restituito il valore della variabile da verificare.

Esempio Codice di programma Commento

DEF REAL rVar1=10.5, rVar2=33.7, rVar3, rVar4, rVar5, rValMin, rValMax, rRetVar

rValMin=MINVAL(rVar1,rVar2) ; rValMin viene impostato sul valore 10.5.

rValMax=MAXVAL(rVar1,rVar2) ; rValMax viene impostato sul valore 33.7.

rVar3=19.7

rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 si trova entro i limiti, rRetVar viene impostato su 19.7.

rVar3=1.8

rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 si trova sotto il limite minimo, rRetVar viene impostato su 10.5.

rVar3=45.2

rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 si trova sopra il limite massimo, rRetVar viene impostato su 33.7.

Programmazione NC flessibile 1.7 Priorità delle operazioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 77

1.7 1.7 Priorità delle operazioni

Funzione Ad ogni operatore è assegnata una priorità. Nella valutazione di un'espressione vengono considerati sempre prima gli operatori con priorità più elevata. Per operatori dello stesso livello, la valutazione viene effettuata da sinistra verso destra. Nelle espressioni aritmetiche la sequenza di elaborazione di tutti gli operatori può essere determinata con parentesi tonde, scostandosi così dalle normali regole di priorità.

Sequenza degli operatori Dalla priorità più alta alla più bassa 1. NOT, B_NOT negazione, negazione a bit 2. *, /, DIV, MOD moltiplicazione, divisione 3. +, – addizione, sottrazione 4. B_AND AND a bit 5. B_XOR OR esclusivo a bit 6. B_OR OR a bit 7. AND AND 8. XOR OR esclusivo 9. OR OR 10. << concatenamento di stringhe, tipo risultante STRING 11. ==, <>, >, <, >=, <= operatori di confronto

Nota L'operatore di concatenamento ":" per Frame non può sussistere nella stessa espressione insieme ad altri operatori. Pertanto non è necessario assegnare ad esso un livello di priorità.

Esempio di istruzione IF If (otto==10) and (anna==20) gotof end

Programmazione NC flessibile 1.8 Possibili conversioni di tipi

Preparazione del lavoro 78 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.8 1.8 Possibili conversioni di tipi

Funzione Conversione del tipo nell'assegnazione Il valore numerico costante, la variabile oppure l'espressione alla quale viene assegnata una variabile, devono essere compatibili con il tipo di variabile. Se questo presupposto è soddisfatto, il tipo viene convertito automaticamente in fase di assegnazione.

Possibili conversioni di tipi

a REAL INT BOOL CHAR STRING AXIS FRAME da REAL sì si* si1) si* – – – INT sì sì si1) sì 2) – – – BOOL sì sì sì sì sì – – CHAR sì sì sì 1) sì sì – – STRING – – sì 4) sì 3) sì – – AXIS – – – – – sì – FRAME – – – – – – sì

Spiegazioni * Per la conversione da REAL a INT, un valore frazionario >=0.5 viene arrotondato alla

cifra successiva, gli altri valori vengono arrotondati alla cifra precedente (vedere funzione ROUND).

1) Un valore <> 0 corrisponde a TRUE, un valore == 0 corrisponde a FALSE 2) Se il valore si trova in un campo numerico consentito 3) Se ha solo 1 carattere 4) Lunghezza stringa 0 => FALSE, altrimenti TRUE

Nota Se nella conversione il valore è più grande del campo di destinazione, viene emessa una segnalazione di errore. Se in una espressione sono presenti dei tipi misti, viene eseguito automaticamente un adeguamento del tipo. Le conversioni possono avvenire anche nelle azioni sincrone, vedere in proposito il capitolo "Azioni sincrone di movimento, conversione implicita del tipo".

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 79

1.9 1.9 Operazioni su stringhe

Operazioni String Oltre alle classiche operazioni di "Assegnazione" e "Confronto", sono possibili le seguenti operazioni String: ● Conversione di tipi in STRING (AXSTRING) ● Conversione di tipi da STRING (NUMBER, ISNUMBER, AXNAME) ● Concatenamento di stringhe (<<) ● Conversione in lettere minuscole/maiuscole (TOLOWER, TOUPPER) ● Determinazione lunghezza di una stringa (STRLEN) ● Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) ● Selezione di una stringa parziale (SUBSTR) ● Selezione di una singola stringa (STRINGVAR, STRINGFELD)

Significato speciale del carattere 0 Il carattere 0 viene interpretato internamente come identificazione finale di una stringa. Se un carattere viene sostituito dal carattere 0, la stringa risulta accorciata. Esempio: Codice di programma Commento

DEF STRING[20] STRG="L'asse . è fermo"

STRG[6]="X"

MSG(STRG) ; Fornisce il messaggio "L'asse X è fermo".

STRG[6]=0

MSG(STRG) ; Fornisce il messaggio "Asse".

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 80 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.9.1 Conversione di tipi in STRING (AXSTRING)

Funzione Attraverso la funzione "Conversione di tipi in STRING" è possibile utilizzare variabili di diversi tipi quale parte costitutiva di un messaggio (MSG). Si realizza utilizzando l'operatore << implicitamente per i tipi di dati INT, REAL, CHAR e BOOL (vedere " Concatenamento di stringhe (<<) (Pagina 83) "). I valori INT vengono convertiti nella forma normalmente leggibile. Con valori REAL vengono indicate fino a 10 cifre dopo la virgola. Attraverso il comando AXSTRING è possibile convertire variabili di tipo AXIS in STRING.

Sintassi <STRING_ERG> = << <quals._tipo> <STRING_ERG> = AXSTRING(<identificatore asse>)

Significato

Variabile per il risultato della conversione di tipi <STRING_ERG>: Tipo: STRING

<quals._tipo>: Tipi di variabili INT, REAL, CHAR, STRING e BOOL AXSTRING: Il comando AXSTRING fornisce come stringa l'identificatore

dell'asse indicato. Variabile per l'identificatore dell'asse <identificatore

asse>: Tipo: AXIS

Nota Le variabili FRAME non possono essere convertite.

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 81

Esempi Esempio 1: MSG("Position:"<<$AA_IM[X])

Esempio 2: AXSTRING Codice di programma Commento

DEF STRING[32] STRING_ERG

STRING_ERG=AXSTRING(X) ; STRING_ERG == "X"

1.9.2 Conversione di tipi da STRING (NUMBER, ISNUMBER, AXNAME)

Funzione Con il comando NUMBER si effettua la conversione da STRING a REAL. La possibilità di conversione può essere verificata con il comando ISNUMBER. Con il comando AXNAME si effettua la conversione di una stringa nel tipo di dati AXIS.

Sintassi <REAL_ERG>=NUMBER("<Stringa>") <BOOL_ERG>=ISNUMBER("<Stringa>") <AXIS_ERG>=AXNAME("<Stringa>")

Significato NUMBER: Il comando NUMBER restituisce il numero rappresentato dalla

<Stringa> come valore REAL. <stringa>: Variabile da convertire di tipo STRING

Variabile per il risultato della conversione di tipi con NUMBER <REAL_ERG>: Tipo: REAL

ISNUMBER: Con il comando ISNUMBER è possibile verificare se la <Stringa> possa essere convertita in un numero valido.

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 82 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabile per il risultato dell'interrogazione con ISNUMBER Tipo: BOOL

TRUE ISNUMBER fornisce il valore TRUE, se la <Stringa> costituisce un numero REAL ritenuto valido conformemente alle regole del linguaggio.

<BOOL_ERG>:

Valore:

FALSE Se ISNUMBER fornisce il valore FALSE, richiamando NUMBER con la stessa <Stringa>, viene emesso un allarme.

AXNAME: Il comando AXNAME converte la <Stringa> indicata in un identificatore dell'asse. Nota: Se non è possibile assegnare alla <Stringa> alcun identificatore dell'asse progettato, viene emesso un allarme. Variabile per il risultato della conversione di tipi con AXNAME <AXIS_ERG>: Tipo: AXIS

Esempio Codice di programma Commento

DEF BOOL BOOL_ERG

DEF REAL REAL_ERG

DEF AXIS AXIS_ERG

BOOL_ERG=ISNUMBER("1234.9876Ex-7") ; BOOL_ERG == TRUE

BOOL_ERG=ISNUMBER("1234XYZ") ; BOOL_ERG == FALSE

REAL_ERG=NUMBER("1234.9876Ex-7") ; REAL_ERG == 1234.9876Ex-7

AXIS_ERG=AXNAME("X") ; AXIS_ERG == X

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 83

1.9.3 Concatenamento di stringhe (<<)

Funzione La funzione "Concatenamento di stringhe" offre la possibilità di creare una stringa strutturandola con diversi componenti. Il concatenamento viene realizzato attraverso l'operatore "<<". Il tipo restituito da questo operatore è sempre STRING per tutte le combinazioni dei tipi base CHAR, BOOL, INT, REAL e STRING. Nel caso si renda necessaria una conversione, questa viene eseguita secondo le regole esistenti.

Sintassi <quals._tipo> << <quals._tipo>

Significato <quals._tipo>: Variabile di tipo CHAR, BOOL, INT, REAL oppure STRING <<: Operatore per il concatenamento di variabili (<quals._tipo>) in una

sequenza di caratteri composta (di tipo STRING). Questo operatore è disponibile anche solo come cosiddetta variante "unaria". In tal modo è possibile eseguire una conversione esplicita di tipi in STRING (non per FRAME e AXIS): << <quals._tipo>

Ad esempio risulta possibile comporre un messaggio o un comando da liste di testi e introdurre parametri (ad esempio il nome di un blocco): MSG(STRG_TAB[LOAD_IDX]<<BAUSTEIN_NAME)

CAUTELA I risultati intermedi durante il concatenamento di stringhe non devono superare la lunghezza massima della stringa.

Nota I tipi FRAME e AXIS non possono essere utilizzati assieme all'operatore "<<".

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 84 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: Concatenamento di stringhe Codice di programma Commento

DEF INT IDX=2

DEF REAL VALUE=9.654

DEF STRING[20] STRG="INDEX:2"

IF STRG=="Indice:"<<IDX GOTOF NO_MSG

MSG("Indice:"<<IDX<<"/Valore:"<<VALUE) ; Indicazione: "Indice:2/Valore:9.654"

NO_MSG:

Esempio 2: Conversione di tipi esplicita con << Codice di programma Commento

DEF REAL VALUE=3.5

<<VALUE ; La variabile indicata di tipo REAL viene convertita nel tipo STRING.

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 85

1.9.4 Conversione in lettere minuscole/maiuscole (TOLOWER, TOUPPER)

Funzione La funzione "Conversione in lettere minuscole/maiuscole" consente di convertire tutte le lettere di una sequenza di caratteri in una rappresentazione unitaria.

Sintassi <STRING_ERG>=TOUPPER("<Stringa>") <STRING_ERG>=TOLOWER("<Stringa>")

Significato TOUPPER: Con il comando TOUPPER, tutte le lettere di una sequenza di

caratteri vengono convertite in lettere maiuscole. TOLOWER: Con il comando TOLOWER, tutte le lettere di una sequenza di

caratteri vengono convertite in lettere minuscole. Sequenza di caratteri da convertire <stringa>: Tipo: STRING Variabile per il risultato della conversione <STRING_ERG>: Tipo: STRING

Esempio Poiché sulla superficie operativa è anche possibile impostare dati utente, si può realizzare una rappresentazione unitaria con caratteri minuscoli o maiuscoli: Codice di programma DEF STRING [29] STRG ... IF "LEARN.CNC"==TOUPPER(STRG) GOTOF LOAD_LEARN

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 86 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.9.5 Determinazione della lunghezza di una stringa (STRLEN)

Funzione Con il comando STRLEN è possibile determinare la lunghezza di una sequenza di caratteri.

Sintassi <INT_ERG>=STRLEN("<STRING>")

Significato STRLEN: Con il comando STRLEN viene determinata la lunghezza della sequenza

di caratteri indicata. Viene restituito il numero dei caratteri che, contati dall'inizio della sequenza di caratteri, sono diversi dal carattere 0. Sequenza di caratteri di cui deve essere determinata la lunghezza <stringa>: Tipo: STRING Variabile per il risultato della determinazione <INT_ERG>: Tipo: INT

Esempio La funzione, unitamente all'accesso al singolo carattere, consente di determinare la fine di una sequenza di caratteri: Codice di programma IF (STRLEN(BAUSTEIN_NAME)>10) GOTOF FEHLER

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 87

1.9.6 Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH)

Funzione Questa funzione consente di ricercare un carattere o una stringa all'interno di un'altra stringa. La funzione indica in quale posizione della stringa sono stati trovati il carattere o la stringa ricercati.

Sintassi INT_ERG=INDEX(STRING,CHAR) ; Tipo di risultato: INT INT_ERG=RINDEX(STRING,CHAR) ; Tipo di risultato: INT INT_ERG=MINDEX(STRING,STRING) ; Tipo di risultato: INT INT_ERG=MATCH(STRING,STRING) ; Tipo di risultato: INT Semantica Funzioni di ricerca: Restituiscono la posizione nella stringa (primo parametro) nella quale la ricerca ha trovato risultati. Se non è possibile trovare il carattere/la stringa, viene restituito il valore -1. Il primo carattere ha quindi la posizione 0.

Significato INDEX: Ricerca nel primo parametro il carattere indicato come secondo parametro

(dall'inizio). RINDEX: Ricerca nel primo parametro il carattere indicato come secondo parametro

(dalla fine). MINDEX: Corrisponde alla funzione INDEX tranne che per il fatto che viene trasmessa

una lista di caratteri (come stringa) per i quali viene restituito l'indice del primo carattere trovato.

MATCH: Ricerca una stringa all'interno di una stringa. Ciò significa che le stringhe possono essere scomposte secondo criteri definiti, ad esempio in base alle posizioni con spazi vuoti o slash ("/").

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 88 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Scomposizione di un'immissione nel nome del percorso e del blocco

Codice di programma Commento

DEF INT PFADIDX, PROGIDX

DEF STRING[26] EINGABE

DEF INT LISTIDX

EINGABE = "/_N_MPF_DIR/_N_EXECUTE_MPF"

LISTIDX = MINDEX (EINGABE, "M,N,O,P") + 1 ; Come valore in LISTDX viene restituito 3, poiché "N" è il primo carattere nel parametro "EINGABE" (IMMISSIONE) partendo dall'inizio dell'elenco di selezione.

PFADIDX = INDEX (EINGABE, "/") +1 ; Di conseguenza, PFADIDX = 1

PROGIDX = RINDEX (EINGABE, "/") +1 ; Di conseguenza, PROGIDX = 12

utilizzando la funzione SUBSTR descritta nella sezione che segue, è possibile scomporre la variabile EINGABE nei componenti;"Percorso";e "Blocco":

VARIABLE = SUBSTR (EINGABE, PFADIDX, PROGIDX-PFADIDX-1) ; Fornisce quindi "_N_MPF_DIR"

VARIABLE = SUBSTR (EINGABE, PROGIDX) ; Fornisce quindi "_N_EXECUTE_MPF"

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 89

1.9.7 Selezione di una stringa parziale (SUBSTR)

Funzioni Questa funzione consente di estrarre una parte di stringa dalla stringa stessa. A tale scopo viene indicato l'indice del primo carattere ed eventualmente la lunghezza della stringa desiderata. Se non viene impostata la lunghezza, viene estratta la parte restante della stringa.

Sintassi STRING_ERG = SUBSTR (STRING,INT) ; Tipo di risultato: INT STRING_ERG = SUBSTR(STRING,INT, INT) ; Tipo di risultato: INT Semantica Nel primo caso, la stringa parziale viene restituita a partire dalla posizione definita attraverso il secondo parametro, fino alla fine della stringa. Nel secondo caso, la stringa risultante è limitata alla lunghezza massima data dal terzo parametro. Se la posizione iniziale si trova dopo la fine della stringa, viene restituita la stringa vuota (" "). Se la posizione iniziale o la lunghezza sono negative, viene emesso un allarme.

Esempio Codice di programma Commento

DEF STRING[29] ERG

ERG = SUBSTR ("QUITTUNG:10 ... 99", 10, 2) ; Di conseguenza, ERG == "10"

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro 90 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.9.8 Selezione di una singola stringa (STRINGVAR, STRINGFELD)

Funzioni Questa funzionalità consente di selezionare un singolo carattere di una stringa. Questo vale tanto per un accesso in lettura, quanto per uno in scrittura.

Sintassi CHAR_ERG = STRINGVAR [IDX] ; Tipo di risultato: CHAR CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] ; Tipo di risultato: CHAR Semantica Viene scritto/letto un carattere nell'ambito di una stringa nella posizione indicata. Se l'indicazione della posizione è negativa o maggiore della stringa, viene emesso un allarme. Esempio di messaggi: Impiego di un indicatore dell'asse in una stringa già esistente.

Codice di programma Commento

DEF STRING [50] MESSAGGIO = "L'asse n ha raggiunto la posizione"

MESSAGGIO [6] = "X"

MSG (MESSAGGIO) ; fornisce il messaggio "L'asse X ha raggiunto la posizione"

Parametro L'accesso al singolo carattere è possibile solo per le variabili definite dall'utente (dati LUD, GUD e PUD). Inoltre questo tipo di accesso, nel caso di un richiamo di un sottoprogramma, è possibile solo per i parametri del tipo "Call-By-Value".

Programmazione NC flessibile 1.9 Operazioni su stringhe

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 91

Esempi Esempio 1: accesso ad un singolo carattere di un dato macchina, di sistema, … Codice di programma Commento

DEF STRING [50] STRG

DEF CHAR CONFERMA

STRG = $P_MMCA

CONFERMA = STRG [0] ; Analisi dei componenti della conferma

Esempio 2: accesso al singolo carattere con il parametro Call-by-Reference Codice di programma Commento

DEF STRING [50] STRG

DEF CHAR CHR1

EXTERN UP_CALL (VAR CHAR1) ; Parametro Call-By-Reference

CHR1 = STRG [5]

UP_CALL (CHR1) ; Call-By-Reference

STRG [5] = CHR1

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro 92 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.10 1.10 Salti e diramazioni nel programma

1.10.1 Ritorno all'inizio del programma (GOTOS)

Funzione Con il comando GOTOS è possibile tornare all'inizio di un programma principale o di un sottoprogramma per ripetere il programma stesso. Tramite dati macchina, si ha la possibilità di impostare che ad ogni ritorno all'inizio del programma: ● il tempo di esecuzione del programma venga impostato su "0" ● il conteggio dei pezzi venga aumentato del valore "1".

Sintassi GOTOS

Significato

Istruzione di salto con salto all'inizio del programma. L'esecuzione viene comandata mediante il segnale delle interconnessioni NC/PLC: DB21, ... DBX384.0 (controllo diramazione del programma) Valore: Significato: 0 Nessun ritorno all'inizio del programma. L'esecuzione del

programma viene proseguita con il blocco del partprogram successivo verso GOTOS.

GOTOS:

1 Ritorno all'inizio del programma. Il partprogram viene ripetuto.

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 93

Condizioni marginali ● GOTOS attiva internamente un STOPRE (stop preelaborazione). ● In caso di partprogram con definizioni dei dati (varianti LUD), con GOTOS si salta al primo

blocco di programma successivo alla sezione di definizione, ossia le definizioni dei dati non vengono nuovamente eseguite. Le variabili definite mantengono quindi il valore raggiunto nel blocco GOTOS e non vengono reimpostati sui valori standard programmati nella sezione di definizione.

● Nelle azioni sincrone e nei cicli tecnologici il comando GOTOS non è disponibile.

Esempio Codice di programma Commento

N10 ... ; Inizio del programma.

...

N90 GOTOS ; Salto all'inizio del programma.

...

1.10.2 Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC)

Funzione In un programma possono essere impostate etichette di salto (label), sulle quali si può effettuare il salto da altri punti all'interno dello stesso programma utilizzando i comandi GOTOF, GOTOB, GOTO o GOTOC L'esecuzione del programma viene quindi proseguita con l'istruzione immediatamente successiva all'etichetta di salto. Ciò consente di realizzare diramazioni all'interno del programma. Oltre alle etichette di salto, possono essere utilizzate come destinazione di salto anche i numeri dei blocchi principali e secondari. Se prima dell'istruzione di salto è stata formulata una condizione di salto, (IF ...), il salto nel programma viene effettuato solo quando tale condizione sarà soddisfatta.

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro 94 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi GOTOB <Destinazione di salto> IF <Condizione di salto> = TRUE GOTOB <Destinazione di salto> GOTOF <Destinazione di salto> IF <Condizione di salto> = TRUE GOTOF <Destinazione di salto> GOTO <Destinazione di salto> IF <Condizione di salto> = TRUE GOTO <Destinazione di salto> GOTOC <Destinazione di salto> IF <Condizione di salto> = TRUE GOTOC <Destinazione di salto>

Significato GOTOB: Istruzione di salto con salto in direzione dell'inizio del programma. GOTOF: Istruzione di salto con salto in direzione della fine del programma. GOTO: Istruzione di salto con ricerca della destinazione di salto. La ricerca

viene effettuata in primo luogo in direzione della fine del programma, poi in direzione dell'inizio del programma.

GOTOC: Agisce come GOTO, con la differenza che l'allarme 14080 "Destinazione di salto non trovata" viene soppresso. Questo significa che se la ricerca della destinazione di salto non produce risultati, l'esecuzione del programma non viene interrotta, ma proseguita con la riga di programma successiva al comando GOTOC. Parametro della destinazione di salto I possibili dati sono i seguenti: <etichetta_salto>: La destinazione di salto è l'etichetta di salto

impostata nel programma con nome definito dall'utente: <Etichetta di salto>:

<numero_blocco>: Destinazione del salto è un numero di blocco principale o secondario (ad es.: 200, N300)

<destinazione_salto>:

Variabile di tipo STRING:

Destinazione di salto variabile. La variabile sta per un'etichetta di salto o un numero di blocco.

IF: Parola chiave per la formulazione della condizione di salto. La condizione del salto permette di eseguire tutte le operazioni comparative e logiche (risultato: TRUE o FALSE). Il salto di programma viene eseguito se il risultato di questa operazione è TRUE.

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 95

Nota Etichette di salto (label) Le etichette di salto vengono inserite sempre all'inizio di un blocco. Se è presente un numero di programma, l'etichetta viene inserita immediatamente dopo il numero di blocco. Per la definizione delle etichette di salto valgono le seguenti regole: • Numero di caratteri:

– min. 2 – max. 32

• Caratteri consentiti: – Lettere – Cifre – Caratteri di sottolineatura (underscore)

• I primi due caratteri devono essere lettere o underscore. • Il nome dell'etichetta di salto è seguito da un doppio punto (":").

Condizioni marginali ● La destinazione di salto può essere solo un blocco con etichetta di salto o numero di

blocco che si trovi nell'ambito del programma. ● L'istruzione di salto incondizionato deve essere programmata in un blocco a sé stante.

Per le istruzioni di salto condizionato questa limitazione non si applica. In questo caso in un blocco possono essere formulate più istruzioni di salto.

● Nei programmi con istruzioni di salto incondizionato la fine programma M2/M30 non deve obbligatoriamente trovarsi a fine programma.

Esempi Esempio 1: Salti su etichette di salto Codice di programma Commento

N10 …

N20 GOTOF Label_1 ; Salto in direzione della fine del programma verso l'etichetta di salto "Label_1".

N30 …

N40 Label_0: R1=R2+R3 ; Etichetta di salto "Label_0" impostata.

N50 …

N60 Label_1: ; Etichetta di salto "Label_1" impostata.

N70 …

N80 GOTOB Label_0 ; Salto in direzione dell'inizio del programma verso l'etichetta di salto "Label_0".

N90 …

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro 96 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: Salto indiretto sul numero di blocco Codice di programma Commento

N5 R10=100

N10 GOTOF "N"<<R10 ; Salto sul blocco il cui numero è in R10.

...

N90 ...

N100 ... ; Destinazione di salto

N110 ...

...

Esempio 3: Salto su destinazione di salto variabile Codice di programma Commento

DEF STRING[20] ZIEL

ZIEL = "Marke2"

GOTOF ZIEL ; Salto in direzione della fine del programma verso la destinazione di salto variabile "ZIEL" (DESTINAZIONE).

Etichetta1: T="Bohrer1"

...

Marke2: T="Bohrer2" ; Destinazione di salto

...

Esempio 4: salto con condizione di salto Codice di programma Commento

N40 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 ; Assegnazione dei valori iniziali.

N41 LA1: G0 X=R2*COS(R1)+R5 Y=R2*SIN(R1)+R6 ; Etichetta di salto LA1 impostata.

N42 R1=R1+R3 R4=R4-1

N43 IF R4>0 GOTOB LA1 ; Se la condizione di salto è soddisfatta, il salto avviene in direzione dell'inizio del programma verso l'etichetta di salto LA1.

N44 M30 ; Fine programma

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 97

1.10.3 Diramazione del programma(CASE ... OF ... DEFAULT ...)

Funzione La funzione CASE offre la possibilità di controllare il valore attuale (tipo: INT) di una variabile o di una funzione di calcolo e di saltare in diversi punti nel programma a seconda del risultato.

Sintassi CASE(<Espressione>) OF <Costante_1> GOTOF <Destinazione di salto_1> <Costante_2> GOTOF <Destinazione di salto_2> ... DEFAULT GOTOF <Destinazione di salto_n>

Significato CASE: Istruzione di salto <espressione>: Variabile o funzione di calcolo OF: Parola chiave per la formulazione delle diramazioni condizionate

nel programma Primo valore costante indicato per la variabile o la funzione di calcolo

<costante_1>:

Tipo: INT Secondo valore costante indicato per la variabile o la funzione di calcolo

<costante_2>:

Tipo: INT DEFAULT: Per i casi in cui la variabile o la funzione di calcolo non assuma

alcuno dei valori costanti indicati, è possibile stabilire una destinazione di salto attraverso l'istruzione DEFAULT. Nota: Se l'istruzione DEFAULT non è programmata, in questi casi diventa destinazione di salto il blocco che fa seguito all'istruzione CASE.

GOTOF: Istruzione di salto con salto in direzione della fine del programma. Al posto di GOTOF possono essere programmati anche tutti gli altri comandi GOTO (vedere Argomento "Salti nel programma su etichette di salto").

Programmazione NC flessibile 1.10 Salti e diramazioni nel programma

Preparazione del lavoro 98 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La diramazione verso questa destinazione di salto si verifica se il valore delle variabili o della funzione di calcolo corrisponde alla prima costante indicata. La destinazione di salto può essere indicata come qui di seguito descritto: <etichetta_salto>: La destinazione di salto è l'etichetta di salto

impostata nel programma con nome definito dall'utente: <Etichetta di salto>:

<numero_blocco>: Destinazione del salto è un numero di blocco principale o secondario (ad es.: 200, N300)

<destinazione_ salto_1>:

Variabile di tipo STRING:

Destinazione di salto variabile. La variabile sta per un'etichetta di salto o un numero di blocco.

<destinazione_ salto_2>:

La diramazione verso questa destinazione di salto si verifica se il valore delle variabili o della funzione di calcolo corrisponde alla seconda costante indicata.

<destinazione_ salto_n>:

La diramazione verso questa destinazione di salto si verifica se il valore delle variabili non assume alcuno dei valori costanti indicati.

Esempio Codice di programma

...

N20 DEF INT VAR1 VAR2 VAR3

N30 CASE(VAR1+VAR2-VAR3) OF 7 GOTOF Label_1 9 GOTOF Label_2 DEFAULT GOTOF Label_3

N40 Label_1: G0 X1 Y1

N50 Label_2: G0 X2 Y2

N60 Label_3: G0 X3 Y3

...

L'istruzione CASE da N30 definisce le seguenti possibilità di diramazione nel programma: 1. Se il valore della funzione di calcolo VAR1+VAR2-VAR3 = 7, salta al blocco con

definizione etichetta di salto "Label_1" (→ N40). 2. Se il valore della funzione di calcolo VAR1+VAR2-VAR3 = 9, salta al blocco con

definizione etichetta di salto "Label_2" (→ N50). 3. Se il valore della funzione di calcolo VAR1+VAR2-VAR3 è diverso da 7 o 9, salta al

blocco con definizione etichetta di salto "Label_3" (→ N60).

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 99

1.11 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Funzione La ripetizione di una parte di programma permette di ripetere parti di programma già disponibili in un programma combinato secondo le necessità. Le righe di programma o le aree di programma da ripetere sono contrassegnate da etichette di salto (label).

Nota Etichette di salto (label) Le etichette di salto vengono inserite sempre all'inizio di un blocco. Se è presente un numero di programma, l'etichetta viene inserita immediatamente dopo il numero di blocco. Per la definizione delle etichette di salto valgono le seguenti regole: • Numero di caratteri:

– min. 2 – max. 32

• Caratteri consentiti: – Lettere – Cifre – Caratteri di sottolineatura (underscore)

• I primi due caratteri devono essere lettere o underscore. • Il nome dell'etichetta di salto è seguito da un doppio punto (":").

Sintassi 1. Ripetizione di singole righe di programma: <etichetta_salto>: ...

...

REPEATB <etichetta_salto> P=<n>

...

2. Ripetizione dell'area di programma tra l'etichetta di salto e l'istruzione REPEAT: <etichetta_salto>: ...

...

REPEAT <etichetta_salto> P=<n>

...

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro 100 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

3. Ripetizione dell'area di programma tra due etichette di salto: <etichetta_salto_inizio>: ...

...

<etichetta_salto_fine>: ...

...

REPEAT <etichetta_salto_inizio> <etichetta_salto_fine> P=<n>

...

Nota Non è possibile mettere tra parentesi l'istruzione REPEAT con entrambe le etichette di salto. Se l'<etichetta_salto_inizio> viene trovata prima dell'istruzione REPEAT e l'<etichetta_salto_fine> non è raggiunta prima dell'istruzione REPEAT, viene eseguita la ripetizione tra l'<etichetta_salto_inizio> e l'istruzione REPEAT.

4. Ripetizione dell'area di programma tra l'etichetta di salto e ENDLABEL: <etichetta_salto>: ...

...

ENDLABEL: ...

...

REPEAT <etichetta_salto> P=<n>

...

Nota Non è possibile mettere tra parentesi l'istruzione REPEAT con l'<etichetta_salto> e ENDLABEL. Se <etichetta_salto> viene trovata prima dell'istruzione REPEAT e ENDLABEL non è raggiunta prima dell'istruzione REPEAT, viene eseguita la ripetizione tra l'<etichetta_salto> e REPEAT.

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 101

Significato REPEATB: Comando per la ripetizione di una riga di programma REPEAT: Comando per la ripetizione di un'area di programma

L'<etichetta_salto> contrassegna: • la riga di programma da ripetere (con REPEATB)

oppure • l'inizio dell'area di programma da ripetere (con REPEAT)

<etichetta_ salto>:

La riga di programma contrassegnata dall'<etichetta_salto> può collocarsi prima o dopo l'istruzione REPEAT-/REPEATB. La ricerca avviene in un primo tempo in direzione inizio programma. Se l'etichetta di salto non viene trovata in questa direzione, la ricerca viene eseguita in direzione di fine programma. Eccezione: se l'area di programma tra l'etichetta di salto e l'istruzione REPEATdeve essere ripetuta (vedere il punto 2 di Sintassi), la riga di programma contrassegnata dall'<etichetta_salto> deve stare prima dell'istruzione REPEAT, poiché in questo caso la ricerca avviene solo in direzione inizio programma. Se la riga con l'<etichetta_salto> contiene altre istruzioni, queste vengono eseguite nuovamente ad ogni ripetizione.

ENDLABEL: Parola chiave che contrassegna la fine di un'area di programma da ripetere Se la riga con ENDLABEL contiene altre istruzioni, queste vengono eseguite nuovamente ad ogni ripetizione. È possibile utilizzare ENDLABEL più volte nel programma.

P: Indirizzo per la definizione del numero di ripetizioni Numero di ripetizioni di una parte di programma Tipo: INT

<n>:

La sezione di programma da ripetere è ripetuta <n> volte. Dopo l'ultima ripetizione, il programma prosegue con la riga che fa seguito alla riga REPEAT-/REPEATB. Nota: Se non viene specificato P=<n>, la sezione di programma da ripetere viene ripetuta esattamente una volta.

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro 102 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio1: ripetizione di singole righe di programma Codice di programma Commento

N10 POSITION1: X10 Y20

N20 POSITION2: CYCLE(0,,9,8) ; Ciclo di posizioni

N30 ...

N40 REPEATB POSITION1 P=5 ; Esegui il BLOCCO N10 cinque volte.

N50 REPEATB POSITION2 ; Esegui il blocco N20 una volta.

N60 ...

N70 M30

Esempio 2: ripetizione dell'area di programma tra l'etichetta di salto e l'istruzione REPEAT Codice di programma Commento

N5 R10=15

N10 Begin: R10=R10+1 ; Larghezza

N20 Z=10-R10

N30 G1 X=R10 F200

N40 Y=R10

N50 X=-R10

N60 Y=-R10

N70 Z=10+R10

N80 REPEAT BEGIN P=4 ; Esegui la sezione N10 ...N70 quattro volte.

N90 Z10

N100 M30

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 103

Esempio 3: ripetizione dell'area di programma tra l'etichetta di salto Codice di programma Commento

N5 R10=15

N10 Begin: R10=R10+1 ; Larghezza

N20 Z=10-R10

N30 G1 X=R10 F200

N40 Y=R10

N50 X=-R10

N60 Y=-R10

N70 END: Z=10

N80 Z10

N90 CYCLE(10,20,30)

N100 REPEAT BEGIN END P=3 ; Esegui la sezione N10 ... N70 tre volte.

N110 Z10

N120 M30

Esempio 4: ripetizione dell'area di programma tra l'etichetta di salto ed ENDLABEL Codice di programma Commento

N10 G1 F300 Z-10

N20 BEGIN1:

N30 X10

N40 Y10

N50 BEGIN2:

N60 X20

N70 Y30

N80 ENDLABEL: Z10

N90 X0 Y0 Z0

N100 Z-10

N110 BEGIN3: X20

N120 Y30

N130 REPEAT BEGIN3 P=3 ; Esegui la sezione N110 ... N120 tre volte.

N140 REPEAT BEGIN2 P=2 ; Esegui la sezione N50 ... N80 due volte.

N150 M100

N160 REPEAT BEGIN1 P=2 ; Esegui la sezione N20 ... N80 due volte.

N170 Z10

N180 X0 Y0

N190 M30

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro 104 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 5: fresatura, lavorare la posizione di foratura con varie tecnologie Codice di programma Commento

N10 PUNTA DA CENTRI() ; Sostituzione del foratore centratore.

N20 POS_1: ; Posizioni di foratura 1

N30 X1 Y1

N40 X2

N50 Y2

N60 X3 Y3

N70 ENDLABEL:

N80 POS_2: ; Posizioni di foratura 2

N90 X10 Y5

N100 X9 Y-5

N110 X3 Y3

N120 ENDLABEL:

N130 PUNTA() ; Sostituzione punta a forare e ciclo di foratura.

N140 FILETTO(6) ; Sostituzione maschio M6 e ciclo di filettatura.

N150 REPEAT POS_1 ; Ripeti una volta la sezione di programma da POS_1 fino a ENDLABEL.

N160 PUNTA() ; Sostituzione punta a forare e ciclo di foratura.

N170 FILETTO(8) ; Sostituzione maschio M8 e ciclo di filettatura.

N180 REPEAT POS_2 ; Ripeti una volta la sezione di programma da POS_2 fino a ENDLABEL.

N190 M30

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 105

Ulteriori informazioni ● La ripetizione di una parte di programma può essere richiamata in forma annidata. Ogni

richiamo occupa un livello di sottoprogramma. ● Se durante l'elaborazione della ripetizione di una parte di programma viene programmato

M17 o RET, la ripetizione di una parte di programma viene interrotta. Il programma prosegue con il blocco che segue la riga REPEAT.

● Nella visualizzazione del programma attuale la ripetizione di una parte di programma viene visualizzata come livello di sottoprogramma proprio.

● Se durante l'elaborazione di una parte di programma viene attivata l'interruzione del livello, il programma prosegue dopo il richiamo dell'elaborazione di una parte di programma. Esempio:

Codice di programma Commento

N5 R10=15

N10 BEGIN: R10=R10+1 ; Larghezza

N20 Z=10-R10

N30 G1 X=R10 F200

N40 Y=R10 ; Interruzione del livello

N50 X=-R10

N60 Y=-R10

N70 END: Z10

N80 Z10

N90 CYCLE(10,20,30)

N100 REPEAT BEGIN END P=3

N120 Z10 ; Prosecuzione dell'esecuzione del programma.

N130 M30

● Le strutture di controllo e la ripetizione di una parte di programma possono essere utilizzate in modo combinato. Non dovrebbero comunque esservi sovrapposizioni. Una ripetizione di una parte di programma dovrebbe trovarsi all'interno di una diramazione di una struttura di controllo oppure una struttura di controllo nell'ambito di una ripetizione di una parte di programma.

Programmazione NC flessibile 1.11 Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P)

Preparazione del lavoro 106 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

● In presenza di salti e ripetizioni di parti di programma, i blocchi vengono elaborati in modo puramente sequenziale. Se avviene ad esempio un salto da una ripetizione di una parte di programma, l'elaborazione continua finché non viene trovata la fine programmata del programma. Esempio:

Codice di programma

N10 G1 F300 Z-10

N20 BEGIN1:

N30 X=10

N40 Y=10

N50 GOTOF BEGIN2

N60 ENDLABEL:

N70 BEGIN2:

N80 X20

N90 Y30

N100 ENDLABEL: Z10

N110 X0 Y0 Z0

N120 Z-10

N130 REPEAT BEGIN1 P=2

N140 Z10

N150 X0 Y0

N160 M30

Nota L'istruzione REPEAT deve trovarsi dopo i blocchi di movimento.

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 107

1.12 1.12 Strutture di controllo

Funzione Il controllo numerico normalmente elabora i blocchi nella sequenza programmata. Tale sequenza può essere variata programmando blocchi e loop di programma alternativi. La programmazione di queste strutture di controllo viene effettuata attraverso gli elementi della struttura di controllo (parole chiave) IF...ELSE, LOOP, FOR, WHILE e REPEAT.

CAUTELA Le strutture di controllo sono consentite solo nella parte istruzioni di un programma. Le definizioni nell'intestazione del programma non possono essere ripetute o eseguite in modo condizionato. Le parole chiave per le strutture di controllo e per le destinazioni dei salti non possono essere sovrapposte dalle macro. La definizione delle macro non viene effettuata.

Efficacia Le strutture di controllo hanno validità locale.

Profondità di annidamento All'interno di ogni livello di sottoprogramma è consentita una profondità di annidamento max. di 16 strutture di controllo.

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro 108 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Influenza sui tempi di elaborazione Di regola, con il funzionamento attivo dell'interprete, utilizzando salti in programma si può velocizzare notevolmente l'elaborazione del programma stesso rispetto alle strutture di controllo. Nel caso di cicli precompilati non esiste alcuna differenza tra salti in programma e strutture di controllo.

Condizioni marginali ● I blocchi con elementi della struttura di controllo, non possono essere mascherati. ● Le etichette di salto (label) non sono consentite nei blocchi all'interno degli elementi della

struttura di controllo. ● Le strutture di controllo vengono elaborate in modo interpretativo. Se viene riconosciuta

la fine di un loop, la ricerca avviene secondo la struttura di controllo a partire dall'inizio del loop. Di conseguenza, nel funzionamento normale dell'interprete dei comandi la struttura a blocchi del programma non viene verificata completamente.

● In linea di massima si consiglia di non utilizzare in contemporanea strutture di controllo e salti in programma.

● Nella preelaborazione dei cicli può essere verificata la correttezza dell'annidamento delle strutture di controllo.

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 109

1.12.1 Loop di programma con alternativa (IF, ELSE, ENDIF)

Funzione Viene utilizzata una costruzione con IF ed ELSE se il loop di programma deve contenere un blocco di programma alternativo: Se viene soddisfatta la condizione IF, viene eseguito il blocco di programma che fa seguito a IF. Se non viene soddisfatta la condizione IF, viene eseguito il blocco di programma alternativo che fa seguito a ELSE.

Nota Se non è necessaria un'alternativa, è possibile programmare un loop IF anche senza istruzione ELSE e il blocco di programma che seguito a ELSE.

Sintassi IF <Condizione>

...

ELSE

...

ENDIF

Significato IF: Avvia il loop IF. ELSE: Avvia il blocco di programma alternativo. ENDIF: Contrassegna la fine del loop IF e provoca il ritorno all'inizio del loop. <condizione>: Condizione che decide quale blocco di programma verrà elaborato.

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro 110 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Sottoprogramma per il cambio utensile Codice di programma Commento

PROC L6 ; Routine di cambio utensile

N500 DEF INT TNR_AKTUELL ; Variabile per il numero T attivo

N510 DEF INT TNR_VORWAHL ; Variabile per il numero T preselezionato

; Rilevamento dell'utensile corrente

N520 STOPRE

N530 IF $P_ISTEST ; Nel funzionamento del test di programma viene ...

N540 TNR_AKTUELL = $P_TOOLNO ; ... letto l'utensile "corrente" dal contesto del programma.

N550 ELSE ; In caso contrario viene ...

N560 TNR_AKTUELL = $TC_MPP6[9998,1] ; ... letto l'utensile del mandrino.

N570 ENDIF

N580 GETSELT(TNR_VORWAHL) ; Lettura del numero T dell'utensile preselezionato sul mandrino.

N590 IF TNR_AKTUELL <> TNR_VORWAHL ; Se l'utensile preselezionato non è ancora l'utensile corrente, ...

N600 G0 G40 G60 G90 SUPA X450 Y300 Z300 D0 ; ... accostarsi al punto di cambio utensile ...

N610 M206 ; ... ed eseguire il cambio utensile.

N620 ENDIF

N630 M17

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 111

1.12.2 Loop di programma permanente (LOOP, ENDLOOP)

Funzione Il loop di programma permanente, trova applicazione in programmi senza termine. A fine programma avviene sempre un salto a ritroso all'inizio del loop.

Sintassi LOOP

...

ENDLOOP

Significato LOOP: Avvia il loop permanente. ENDLOOP: Contrassegna la fine del loop e provoca il ritorno all'inizio del loop.

Esempio Codice di programma

...

LOOP

MSG("nessun tagliente attivo")

M0

STOPRE

ENDLOOP

...

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro 112 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.12.3 Loop con conteggio (FOR ... TO ..., ENDFOR)

Funzioni Il loop con conteggio viene utilizzato quando un ciclo di lavorazione deve essere ripetuto un determinato numero di volte.

Sintassi FOR <Variabile> = <Valore iniziale> TO <Valore finale>

...

ENDFOR

Significato FOR: Avvia il loop con conteggio. ENDFOR: Contrassegna la fine del loop e provoca il ritorno all'inizio del loop fino

a che il valore finale del conteggio non è stato raggiunto. Variabile di conteggio che viene incrementata dal valore iniziale a quello finale e che viene aumentata del valore "1" ad ogni elaborazione.

<variabile>:

Tipo INT o REAL Nota: Il tipo REAL serve, ad esempio, per programmare parametri R per un loop di conteggio. Se la variabile di conteggio è di tipo REAL, il relativo valore viene arrotondato a un numero intero.

<valore_ iniziale>:

Valore iniziale del conteggio Condizione: Il valore iniziale deve essere sempre minore di quello finale.

<valore_ finale>:

Valore finale del conteggio

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 113

Esempi Esempio 1: Variabile INTEGER o parametro R come variabile di conteggio Variabile INTEGER quale variabile di conteggio: Codice di programma Commento

DEF INT iVARIABILE1

R10=R12-R20*R1 R11=6

FOR iVARIABILE1 = R10 TO R11 ; Variabile di conteggio = Variabile INTEGER

R20=R21*R22+R33

ENDFOR

M30

Parametro R quale variabile di conteggio: Codice di programma Commento

R11=6

FOR R10=R12-R20*R1 TO R11 ; Variabile di conteggio = Parametri R (variabile reale)

R20=R21*R22+R33

ENDFOR

M30

Esempio 2: Produzione di un numero fisso di pezzi Codice di programma Commento

DEF INT STUECKZAHL ; Definisce la variabile di tipo INT con nome "STUECKZAHL" (NR_PEZZI).

FOR STUECKZAHL = 0 TO 100 ; Avvia il loop con conteggio. La variabile "STUECKZAHL" (NR_PEZZI) viene incrementata dal valore iniziale "0" al valore finale "100".

G01 …

ENDFOR ; Fine del loop con conteggio.

M30

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro 114 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.12.4 Loop di programma con condizione all'inizio del loop (WHILE, ENDWHILE)

Funzione In un loop WHILE la condizione è all'inizio del loop. Se la condizione è soddisfatta, il loop WHILE viene elaborato.

Sintassi <Condizione> WHILE

...

ENDWHILE

Significato WHILE: Avvia il loop di programma. ENDWHILE: Contrassegna la fine del loop e provoca il ritorno all'inizio del loop. <condizione>: Condizione che deve essere soddisfatta per poter eseguire il loop

WHILE.

Esempio Codice di programma Commento

...

WHILE $AA_IW[BOHRACHSE] > -10 ; Richiamo del loop WHILE alle seguenti condizioni: l'attuale valore di riferimento del sistema di coordinate pezzo (SCP) per l'asse di foratura deve essere superiore a -10.

G1 G91 F250 AX[BOHRACHSE] = -1

ENDWHILE

...

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 115

1.12.5 Loop di programma con condizione alla fine del loop (REPEAT, UNTIL)

Funzione In un loop REPEAT la condizione è alla fine del loop. Il loop REPEAT viene eseguito una volta e ripetuto finché la condizione non viene soddisfatta.

Sintassi REPEAT

...

<Condizione> UNTIL

Significato REPEAT: Avvia il loop di programma. UNTIL: Contrassegna la fine del loop e provoca il ritorno all'inizio del loop. <condizione>: Condizione che deve essere soddisfatta per non eseguire più il loop

REPEAT.

Esempio Codice di programma Commento

...

REPEAT ; Richiamo del loop REPEAT.

...

UNTIL ... ; Verifica del soddisfacimento della condizione.

...

Programmazione NC flessibile 1.12 Strutture di controllo

Preparazione del lavoro 116 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.12.6 Esempio di programmazione con strutture di controllo annidate Codice di programma Commento

LOOP

IF NOT $P_SEARCH ; Nessuna ricerca blocco

G01 G90 X0 Z10 F1000

WHILE $AA_IM[X] <= 100

G1 G91 X10 F500 ; Dima di foratura

Z–F100

Z5

ENDWHILE

Z10

ELSE

MSG("In ricerca non viene forato")

ENDIF

$A_OUT[1] = 1 ; Foratura successiva

G4 F2

ENDLOOP

M30

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 117

1.13 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Funzione Canali Un canale è in grado di elaborare il proprio programma indipendentemente da altri canali. Gli assi ed i mandrini, che gli vengono attribuiti temporaneamente, vengono controllati tramite il programma. Al momento della messa in servizio si possono creare due o più canali per il controllo numerico. Coordinamento dei programmi Se per la produzione di un pezzo vengono impiegati più canali può rendersi necessaria la sincronizzazione delle sequenze di programma. Per la sincronizzazione sono necessarie istruzioni particolari (comandi) che si trovano in un blocco a sé stante.

Nota Il coordinamento dei programmi è possibile anche nel proprio canale.

Istruzioni per il coordinamento dei programmi ● Impostazione con immissione assoluta del percorso Il percorso assoluto viene impostato secondo le

seguenti regole: INIT (n,"/_HUGO_DIR/_N_name_MPF" ) oppure

- Directory corrente/N_name_MPF "directory corrente" indica la directory del pezzo selezionata oppure la directory standard /_N_MPF_DIR.

INIT (n,"/_N_MPF_DIR/_N_name_MPF" ) -

-

Scelta di un determinato programma per l’elaborazione in un determinato canale: n: numero del canale, il valore dipende dalla configurazione del controllo Nome programma completo

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro 118 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Fino alla versione software 3: INIT(2,"/_N_WKS_DIR/_ABRICHT_MPF") G01F0.1 START

Tra un comando init (senza sincronizzazione) e un comando NC-Start deve trovarsi almeno un blocco eseguibile. Nei richiami di sottoprogrammi occorre aggiungere "_SPF" all'indicazione del percorso

INIT (2,"/_N_WKS_DIR/_N_UNTER_1_SPF")

● Indicazione con impostazione relativa del percorso Esempio:

Per l'impostazione relativa del percorso valgono le stesse regole del richiamo di sottoprogrammi.

INIT(2,"ABRICHT") INIT(3,"UNTER_1_SPF") Per richiami di sottoprogrammi occorre

aggiungere "_SPF" al nome del programma

Parametri Per lo scambio dei dati tra i programmi si possono utilizzare le variabili che sono comuni a tutti i canali (variabili globali specifiche per NCK ). Negli altri casi i programmi per i canali vengono generati separatamente. INIT(n, indicazione di percorso, modo di tacitazione)

Istruzione per l'esecuzione in un canale. Selezione di un determinato programma con indicazione di percorso assoluta o relativa.

START (n, n) Avvio dei programmi selezionati negli altri canali. n,n: Enumerazione del numero di canale: il valore dipende dalla configurazione del controllo

WAITM (numero marker, n, n, …) Impostare il marker "n. marker" nel proprio canale. Concludere il blocco precedente con un arresto preciso. Attendere i marker con lo stesso "n. marker" nei canali "n" impostati (non è necessario impostare il proprio canale). Il marker viene cancellato dopo la sincronizzazione.

È possibile settare fino a 10 marker per ogni canale.

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 119

WAITMC (n. marker, n, n, Impostare il marker "n. marker" nel proprio canale. L'arresto preciso viene avviato solo se gli altri canali non hanno ancora raggiunto il marker. Attendere il marker con lo stesso "n. marker" dei canali "n" impostati (non è necessario impostare il proprio canale). La lavorazione può essere proseguita senza terminare l'arresto preciso non appena il marker "n. marker" è stato raggiunto nei canali impostati.

WAITE (n, n, ...) Attendere la fine del programma dei canali impostati (non impostare il proprio canale) Esempio: programmazione di un tempo di sosta dopo il comando di Start.

N30 START(2) N31 G4 F0.01 N40 WAITE(2)

SETM (n. marker, n. marker, Settare il marker "Marker-Nr." nel proprio canale, senza influenzare la lavorazione in corso. Il comando SETM() rimane valido anche in seguito a RESET o START-NC e

CLEARM (n. marker, n. marker, Cancellare il marker "Marker-Nr." nel proprio canale, senza influenzare la lavorazione in corso. Tutti i marker del canale possono essere cancellati con CLEARM(). CLEARM (0) cancella il marker "0". Il comando CLEARM() rimane valido anche in seguito a RESET e START-NC.

n Numero di canale o nome di canale corrispondente

Nota Tutti i comandi nominati sopra devono trovarsi in blocchi a sé stante. Il numero dei marker dipende dalla CPU installata.

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro 120 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Numeri di canale Per i canali da coordinare è possibile immettere un numero di canali fino a 10 (valore Integer). Nomi dei canali I nomi dei canali devono essere convertiti in numeri mediante variabile (vedere capitolo "Variabili e parametri di calcolo") oppure al posto dei numeri dei canali possono essere programmati i nomi dei canale (identificatori o parole chiave) definiti tramite $MC_CHAN_NAME. I nomi definiti devono corrispondere alle convenzioni linguistiche NC (cioè i primi due caratteri devono essere o lettere o un carattere di sottolineatura).

CAUTELA Occorre assicurarsi che i numeri assegnati non possano essere facilmente modificati! I nomi non devono essere già presenti nell'NC in un'altra accezione, ad es. come parola chiave, comando di linguaggio, nome di asse, ecc.

SETM() e CLEARM() SETM()e CLEARM() possono anche essere programmati in un'azione sincrona. Vedere capitolo "Settare/cancellare label di attesa: SETM CLEARM"

Esempio Al canale dal nome "MACCHINA" si vuole assegnare il numero di canale 1, Al canale dal nome "CARICATORE" si vuole assegnare il numero di canale 2: DEF INT MACCHINA = 1, CARICATORE = 2 Le variabili ricevono lo stesso nome dei canali. L'istruzione START sarà quindi per esempio: START (MACCHINA)

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 121

Esempio di coordinamento di programmi Canale 1: _N_MPF100_MPF Codice di programma Commento

N10 INIT(2,"MPF200")

N11 START(2) ; Lavorazione nel canale 2

...

N80 WAITM(1,1,2) ; Attendere l'etichetta WAIT 1 nel canale 1 e 2, ulteriore lavorazione nel canale 1

...

N180 WAITM(2,1,2) ; Attendere l'etichetta WAIT 2 nel canale 1 e 2, ulteriore lavorazione nel canale 1

...

N200 WAITE(2) ; Attendere la fine programma del canale 2

N201 M30 ; Fine programma canale 1, fine globale

...

Canale 2: _N_MPF200_MPF Codice di programma Commento

;$PATH=/_N_MPF_DIR

; Lavorazione nel canale 2

N70 WAITM(1,1,2) ; Attendere l'etichetta WAIT 1 nel canale 1 e 2, ulteriore lavorazione nel canale 1

...

N270 WAITM(2,1,2) ; Attendere l'etichetta WAIT 2 nel canale 1 e 2, ulteriore lavorazione nel canale 2

...

N400 M30 ; Fine programma del canale 2

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro 122 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Programma da pezzo Codice di programma

N10 INIT(2,"/_N_WKS_DIR/_N_ALBERO1_WPD/_N_ABSPAN1_MPF")

Esempio: Comando INIT con relativa indicazione del percorso Nel canale 1 è stato selezionato il programma /_N_MPF_DIR/_N_MAIN_MPF Codice di programma Commento

N10 INIT(2,"MYPROG") ; Selezionare il programma /_N_MPF_DIR/_N_MYPROG_MPF nel canale 2

Programmazione NC flessibile 1.13 Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 123

Esempio: Nome di canale e numero di canale con variabile Integer $MC_CHAN_NAME[0]= "CHAN_X" ;nome del primo canale $MC_CHAN_NAME[1]= "CHAN_Y" ;nome del secondo canale Codice di programma Commento

START(1, 2) ; Eseguire Start nel 1° e nel 2° canale

Analogicamente, programmazione con gli identificatori di canale: Codice di programma Commento

START(CHAN_X, CHAN_Y) ; Eseguire Start nel 1° e nel 2° canale

; Gli identificatori canale_X e canale_Y rappresentano internamente in base al dato macchina $MC_CHAN_NAME i numeri di canale 1 e 2. Eseguire quindi uno Start nel primo e nel secondo canale

Programmazione con variabile Integer: Codice di programma Commento

DEF INT chanNo1, chanNo2) ; Definire il numero di canale

chanNo1=CHAN_X chanNo2=CHAN_Y

START(chanNo1, chanNo2)

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 124 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.14 1.14 Routine di interrupt (ASUP)

1.14.1 Funzione di una routine di interrupt

Nota I termini "sottoprogramma asincrono (ASUP)" e "routine di interrupt", che ricorrono alternativamente nella seguente descrizione, connotano la stessa funzionalità.

Funzione Per illustrare la funzione di una routine interrupt verrà utilizzato un esempio tipico:

Durante la lavorazione si rompe un utensile. Questo provoca un segnale che interrompe la lavorazione in corso e avvia contemporaneamente un sottoprogramma - la cosiddetta routine di interrupt. Questo sottoprogramma contiene tutte le istruzioni che devono essere eseguite in questo caso.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 125

Terminato il sottoprogramma (che ha ristabilito lo stato di pronto al funzionamento) il controllo ritorna al programma principale e, in base al comando REPOS, prosegue la lavorazione dal punto in cui era stata interrotta (ved. " Riaccostamento al profilo (Pagina 553) ").

CAUTELA Se nel sottoprogramma non viene programmato alcun comando REPOS, il posizionamento avverrà sul punto finale del blocco successivo al blocco interrotto.

Bibliografia Manuale di guida alle funzioni, Funzioni di base; BAG; canale, funzionamento del programma, comportamento di reset (K1), capitolo: "Sottoprogrammi asincroni (ASUP), routine di interrupt"

1.14.2 Creazione di una routine di interrupt

Creazione di una routine di interrupt quale sottoprogramma La routine di interrupt viene definita come un sottoprogramma. Esempio: Codice di programma

Commento

PROC ABHEB_Z ; Nome del programma "ABHEB_Z"

N10 ... ; Dopodiché fanno seguito i blocchi NC.

...

N50 M17 ; Quindi fine programma e ritorno al programma principale.

Salvataggio delle funzioni G modali (SAVE) Durante la definizione, la routine di interrupt può essere contrassegnata con SAVE. L'attributo SAVE fa sì che le funzioni G modali attive prima del richiamo della routine di interrupt vengano salvate e riattivate al termine della routine di interrupt (ved. " Sottoprogrammi con meccanismo SAVE (SAVE) (Pagina 178) "). Dopo che la routine di interrupt è stata terminata, è quindi possibile proseguire la lavorazione dal punto in cui era stata interrotta.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 126 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Codice di programma

PROC ABHEB_Z SAVE

N10 ...

...

N50 M17

Assegnazione di altre routine di interrupt (SETINT) All'interno della routine di interrupt è possibile programmare istruzioni SETINT (ved. "Assegnazione e avvio di routine di interrupt (SETINT)" (Pagina 126)) e con esse creare altre routine di interrupt, che vengono attivate dall'ingresso.

Bibliografia Per ulteriori informazioni riguardanti la generazione di sottoprogrammi vedere il capitolo "Tecnica dei sottoprogrammi, tecnica macro".

1.14.3 Assegnazione e avvio di routine di interrupt (SETINT, PRIO, BLSYNC)

Funzione Il controllo dispone di segnali (ingresso 1 ... 8) che possono attivare un'interruzione del programma in corso e avviare una routine di interrupt corrispondente. L'assegnazione dell'ingresso al relativo programma da avviare viene effettuata nel partprogram con il comando SETINT. Se nel partprogram sono presenti più istruzioni SETINT e quindi possono verificarsi contemporaneamente più segnali, è necessario assegnare alle routine di interrupt correlate valori di priorità che determinano la sequenza durante l'elaborazione: PRIO=<Valore> Se durante l'esecuzione della routine di interrupt arrivano nuovi segnali, le routine con priorità maggiore interrompono quella in corso.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 127

Sintassi SETINT(<n>) PRIO=<Valore> <NOME> SETINT(<n>) PRIO=<valore> <NAME> BLSYNC SETINT(<n>) PRIO=<valore> <NAME> LIFTFAST

Significato SETINT(<n>): Comando: Assegnazione di un ingresso <n> a una routine di interrupt.

La routine di interrupt correlata viene avviata quando si attiva l'ingresso <n>. Nota: Se a un ingresso occupato viene assegnata una nuova routine, la vecchia assegnazione diventa automaticamente inefficace. Parametri: Numero di ingresso Tipo: INT

<n>:

Campo dei valori: 1 ... 8 PRIO=: Comando: Definizione della priorità

Valore di priorità Tipo: INT

<Valore>:

Campo dei valori: 1 ... 128 La priorità 1 corrisponde alla massima priorità.

<NAME>: Nome del sottoprogramma (routine di interrupt) che deve essere eseguito.

BLSYNC: Se l'istruzione SETINT viene programmata insieme con BLSYNC, quando si incontra il segnale di interrupt il blocco di programma in esecuzione continua ad essere eseguito e solo successivamente viene avviata la routine di interrupt viene avviata.

LIFTFAST: Se l'istruzione SETINT viene programmata insieme con LIFTFAST, quando si incontra il segnale di interrupt viene eseguito, prima dell'avvio della routine di interrupt, uno "svincolo rapido dell'utensile dal profilo" (vedere " Svincolo rapido dal profilo (SETINT LIFTFAST, ALF) (Pagina 131)").

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 128 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: Assegnazione di routine di interrupt e definizione delle priorità Codice di programma Commento

...

N20 SETINT(3) PRIO=1 ABHEB_Z ; Se l'ingresso 3 si attiva, deve avviarsi la routine di interrupt "ABHEB_Z".

N30 SETINT(2) PRIO=2 ABHEB_X ; Se l'ingresso 2 si attiva, deve avviarsi la routine di interrupt "ABHEB_X".

...

Le routine di interrupt vengono elaborate l'una dopo l'altra in base alla successione dei valori di priorità se gli ingressi sono presenti contemporaneamente: prima "ABHEB_Z", poi "ABHEB_X". Esempio 2: Nuova assegnazione della routine di interrupt Codice di programma Commento

...

N20 SETINT(3) PRIO=2 ABHEB_Z ; Se l'ingresso 3 si attiva, deve avviarsi la routine di interrupt "ABHEB_Z".

N120 SETINT(3) PRIO=1 ABHEB_X ; All'ingresso 3 viene assegnata una nuova routine di interrupt: al posto di "ABHEB_Z" deve essere avviata "ABHEB_X" se l'ingresso 3 è attivo.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 129

1.14.4 Disattivazione/riattivazione dell'assegnazione di una routine di interrupt (DISABLE, ENABLE)

Funzione Un'istruzione SETINT può essere disattivata con DISABLE e riattivata con ENABLE, senza che l'assegnazione ingresso → routine di interrupt vada persa.

Sintassi DISABLE(<n>) ENABLE(<n>)

Significato DISABLE(<n>): Comando: Disattivazione dell'assegnazione della routine di interrupt

dall'ingresso <n> ENABLE(<n>): Comando: Riattivazione dell'assegnazione della routine di interrupt

dall'ingresso <n> Parametri: Numero di ingresso Tipo: INT

<n>:

Campo dei valori: 1 ... 8

Esempio Codice di programma Commento

...

N20 SETINT(3) PRIO=1 ABHEB_Z ; Se l'ingresso 3 si attiva, deve avviarsi la routine di interrupt "ABHEB_Z".

...

N90 DISABLE(3) ; L'istruzione SETINT da N20 viene disattivata.

...

N130 ENABLE(3) ; L'istruzione SETINT da N20 viene riattivata.

...

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 130 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.14.5 Cancellazione dell'assegnazione di una routine di interrupt (CLRINT)

Funzione Un'assegnazione ingresso → routine di interrupt definita con SETINT può essere cancellata con CLRINT.

Sintassi CLRINT(<n>)

Significato CLRINT(<n>): Comando: Cancellazione dell'assegnazione della routine di interrupt

dall'ingresso <n> Parametri: Numero di ingresso Tipo: INT

<n>:

Campo dei valori: 1 ... 8

Esempio Codice di programma Commento

...

N20 SETINT(3) PRIO=2 ABHEB_Z ;

...

N50 CLRINT(3) ; L'assegnazione tra l'ingresso "3" e la routine di interrupt "ABHEB_Z" è cancellata.

...

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 131

1.14.6 Svincolo rapido dal profilo (SETINT LIFTFAST, ALF)

Funzione In caso di istruzione SETINT con LIFTFAST, all'attivazione dell'ingresso l'utensile viene allontanato dal profilo del pezzo attraverso uno svincolo rapido.

L'ulteriore svolgimento dipende dal fatto che l'istruzione SETINT contenga, oltre a LIFTFAST una routine di interrupt: Con routine di interrupt: Dopo lo svincolo rapido viene eseguita la routine di interrupt. Senza routine di interrupt: Dopo lo svincolo rapido la lavorazione viene arrestata con un

allarme.

Sintassi SETINT(<n>) PRIO=1 LIFTFAST SETINT(<n>) PRIO=1 <NOME> LIFTFAST

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 132 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato SETINT(<n>): Comando: Assegnazione di un ingresso <n> a una routine di interrupt.

La routine di interrupt correlata viene avviata quando si attiva l'ingresso <n>. Parametri: Numero di ingresso Tipo: INT

<n>:

Campo dei valori: 1 ... 8 PRIO=: Definizione della priorità

Valore di priorità Campo dei valori: 1 ... 128

<Valore>:

La priorità 1 corrisponde alla massima priorità. <NAME>: Nome del sottoprogramma (routine di interrupt) che deve essere

eseguito. LIFTFAST: Comando: Svincolo rapido dal profilo ALF=…: Comando: Direzione di movimento programmabile (si trova nel blocco di

movimento) Per le possibilità di programmazione con ALF si rimanda all'argomento " Direzione di movimento durante lo svincolo rapido dal profilo (Pagina 134) ".

Condizioni marginali Comportamento in caso di frame attivo con specularità Nella definizione della direzione del distacco viene controllato se è attivo un frame con specularità. In questo caso, nella direzione di svincolo riferita alla direzione della tangente vengono invertite destra e sinistra. Le componenti dello spostamento nella direzione dell'utensile non vengono speculate. Questo comportamento viene attivato dall'impostazione del dato macchina: MD21202 $MC_LIFTFAST_WITH_MIRROR = TRUE

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 133

Esempio Un utensile rotto deve essere automaticamente sostituito da un utensile gemello. La lavorazione viene proseguita quindi con il nuovo utensile. Programma principale: Programma principale Commento

N10 SETINT(1) PRIO=1 W_WECHS LIFTFAST ; Se l'ingresso 1 si attiva, l'utensile viene immediatamente allontanato dal profilo attraverso lo svincolo rapido (codice n. 7 per la correzione del raggio utensile G41). Dopodiché viene elaborata la routine di interrupt "W_WECHS".

N20 G0 Z100 G17 T1 ALF=7 D1

N30 G0 X-5 Y-22 Z2 M3 S300

N40 Z-7

N50 G41 G1 X16 Y16 F200

N60 Y35

N70 X53 Y65

N90 X71.5 Y16

N100 X16

N110 G40 G0 Z100 M30

Sottoprogramma: Sottoprogramma Commento

PROC W_WECHS SAVE ; Sottoprogramma con salvataggio dello stato operativo attivo al momento

N10 G0 Z100 M5 ; Posizione di cambio utensile, arresto mandrino

N20 T11 M6 D1 G41 ; Cambio utensile

N30 REPOSL RMB M3 ; Riaccostamento al profilo e ritorno al programma principale (programmato in un blocco)

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 134 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.14.7 Direzione di movimento durante lo svincolo rapido dal profilo

Movimento di svincolo Il piano del movimento di svincolo viene determinato dai seguenti codici G:

● LFTXT Il piano del movimento di svincolo viene determinato dalla tangente al profilo e dalla direzione utensile (impostazione standard).

● LFWP Il piano del movimento di svincolo è il piano di lavoro attivo, che viene selezionato con i codici G G17, G18 oppure G19. La direzione del movimento di svincolo è indipendente dalla tangente al profilo. È possibile programmare lo svincolo parallelo all´asse.

● LFPOS Svincolo dell'asse dichiarato con POLFMASK/POLFMLIN e ritorno alla posizione assoluta dell'asse programmata con POLF. ALF non ha nessuna influenza sulla direzione di svincolo per più assi e nemmeno per più assi in vincolo lineare. Bibliografia: Manuale di programmazione, Concetti fondamentali; Capitolo: "Svincolo rapido per filettatura"

Direzione di movimento programmabile (ALF=…) Nel piano del movimento di svincolo la direzione viene programmata con ALF in passi discreti di 45 gradi. Le direzioni possibili sono memorizzate nel controllo NC con numeri di codice specifici e vanno anche richiamate con tali numeri. Esempio: Codice di programma

N10 SETINT(2) PRIO=1 ABHEB_Z LIFTFAST

ALF=7

Con G41 attivato, l'utensile si allontana verticalmente dal profilo (Direzione di lavorazione a sinistra del profilo).

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 135

Piano di riferimento per la descrizione delle direzioni di movimento con LFTXT Sul punto di contatto dell'utensile sul profilo programmato viene definito un piano che servirà come riferimento per le indicazioni relative al movimento di distacco con il numero di codice corrispondente. I limiti del piano di riferimento sono costituiti dall'asse longitudinale dell'utensile (direzione di incremento) e da un vettore, posizionato perpendicolarmente rispetto alla tangente sul punto di contatto dell'utensile sul profilo.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro 136 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Numeri di codice con direzioni di movimento con LFTXT Partendo dal piano di riferimento, è possibile reperire nella figura che segue i numeri di codice con direzioni di movimento.

Per ALF=1, lo svincolo è definito nella direzione dell'utensile. Con ALF=0, la funzione "Svincolo rapido" è attivata.

CAUTELA Con correzione del raggio utensile attiva è opportuno che: • le codifiche 2, 3, 4 con G41 • le codifiche 6, 7, 8 con G42 non vengano utilizzate, poiché in questi casi l'utensile si muoverebbe verso il profilo e andrebbe a collidere con il pezzo.

Programmazione NC flessibile 1.14 Routine di interrupt (ASUP)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 137

Numeri di codice con direzioni di movimento con LFWP Con LFWP la direzione nel piano di lavoro si ricava nel modo seguente: ● G17: Piano X/Y

ALF=1: Svincolo in direzione X ALF=3: Svincolo in direzione Y

● G18: Piano Z/X ALF=1: Svincolo in direzione Z ALF=3: Svincolo in direzione X

● G19: Piano Y/Z ALF=1: Svincolo in direzione Y ALF=3: Svincolo in direzione Z

1.14.8 Sequenza di movimento nelle routine di interrupt

Routine di interrupt senza LIFTFAST I movimenti degli assi vengono frenati sulla traiettoria fino all'arresto. Successivamente la routine di interrupt viene avviata. La posizione di arresto viene memorizzata come posizione di interruzione e, in caso di REPOS con RMI, viene accostata alla fine della routine di interrupt.

Routine di interrupt con LIFTFAST I movimenti degli assi vengono frenati sulla traiettoria. Contemporaneamente viene eseguito il movimento LIFTFAST come movimento sovrapposto. Se il movimento vettoriale e il movimento LIFTFAST sono giunti all'arresto, la routine di interrupt viene avviata. Come posizione di interruzione viene memorizzata quella sul profilo al momento dell'avvio del movimento LIFTFAST con conseguente abbandono della traiettoria. La routine di interrupt con LIFTFAST e ALF=0 si comporta in maniera identica alla routine di interrupt senza LIFTFAST.

Nota Il valore di allontanamento degli assi geometrici dal profilo durante lo svincolo rapido è impostabile tramite dato macchina.

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro 138 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.15 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Funzione Uno o più assi o mandrini possono essere interpolati sempre in un solo canale. Se un asse deve lavorare alternativamente in due diversi canali (per es. un cambio-pallet), occorre abilitarlo prima nel canale attuale e poi prenderlo in gestione nel secondo canale. L’asse viene scambiato tra i canali. Ampliamenti per lo scambio assi Un asse/mandrino può essere scambiato con stop preelaborazione e sincronizzazione tra preelaborazione ed elaborazione principale o alternativamente anche senza stop preelaborazione. Inoltre lo scambio asse è possibile anche tramite: ● Rotazione del container assi AXCTSWE o AXCTWED tramite GET/GETD implicito. ● Frame o rotazione se questo asse è collegato ad altri assi. ● Azioni sincrone, vedere azioni sincrone di movimento, "Scambio asse RELEASE, GET". Costruttore della macchina Fare attenzione alle indicazioni del costruttore della macchina Mediante dati macchina progettabili un asse deve essere definito in modo univoco per lo scambio in tutti i canali e il processo di scambio assi è modificabile anche mediante dato macchina.

Sintassi RELEASE (nomeasse, nomeasse, …) oppure RELEASE (S1) GET (nomeasse, nomeasse, …) oppure GET (S2) GETD(Nome asse, nome asse, ...) oppure GETD(S3) Con GETD (GET Directly) un asse viene trasferito direttamente da un altro canale. Ciò significa che per questo GETD non occorre programmare RELEASE in un altro canale. Questo significa però anche che sarà necessario realizzare una nuova comunicazione tra canali (ad es. marker WAIT).

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 139

Significato RELEASE (nome asse, nome asse, …): Abilitazione asse(i) GET (nome asse, nome asse, …): Conferma asse(i) GETD (nome asse, nome asse, …): Conferma diretta asse/i Nome asse: Abbinamento dell’asse nel sistema: AX1,

AX2, … oppure indicazione del nome dell’asse macchina

RELEASE(S1): Abilitazione dei mandrini S1, S2, ... GET(S2): Conferme dei mandrini S1, S2, ... GETD(S3): Conferme diretta dei mandrini S1, S2, ...

Richiesta GET senza stop preelaborazione Se dopo una richiesta GET senza stop preelaborazione l'asse viene riabilitato con RELEASE(asse) o WAITP(asse), un successivo GET comporta un GET con stop preelaborazione.

CAUTELA Un asse o un mandrino confermato con GET rimane assegnato al canale anche dopo un RESET da tastiera o programma. Con un nuovo start programma, nel caso l'asse risulti necessario nel canale di base, l'assegnazione degli assi o dei mandrini scambiati deve avvenire da programma. In caso di POWER On l'asse viene assegnato al canale definito nel dato macchina.

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro 140 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: scambio assi tra due canali Dei 6 assi, per l’elaborazione nel canale 1 vengono utilizzati: 1°, 2°, 3° e 4° asse. Gli assi 5 e 6 vengono impiegati nel canale 2 per il cambio del pezzo. L'asse 2 deve poter essere sostituito tra i due canali e assegnato al canale 1 dopo POWER ON. Programma "MAIN" nel canale 1: Codice di programma Commento

INIT (2,"CAMBIO2") ; Selezionare il programma "CAMBIO2" nel canale 2.

N… START (2) ; Avviare il programma nel canale 2.

N… GET (AX2) ; Acquisire l'asse AX2.

...

N… RELEASE (AX2) ; Abilitare l'asse AX2.

N… WAITM (1,1,2) ; Attendere l'etichetta WAIT nel canale 1 e 2 per la sincronizzazione in entrambi i canali.

... ; Proseguire l'esecuzione dopo lo scambio assi.

N… M30

Programma "CAMBIO2" nel canale 2: Programmazione Commento

N… RELEASE(AX2)

N160 WAITM(1,1,2) ; Attendere l'etichetta WAIT nel canale 1 e 2 per la sincronizzazione in entrambi i canali.

N150 GET(AX2) ; Acquisire l'asse AX2.

... ; Proseguire l'esecuzione dopo lo scambio assi.

N… M30

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 141

Esempio 2: scambio assi senza sincronizzazione Se l'asse non deve essere sincronizzato, GET non provoca l'arresto della preelaborazione. Programmazione Commento

N01 G0 X0

N02 RELEASE(AX5)

N03 G64 X10

N04 X20

N05 GET(AX5) ; Se non è necessaria alcuna sincronizzazione, il blocco non è eseguibile.

N06 G01 F5000 ; Blocco non eseguibile.

N07 X20 ; Blocco non eseguibile, in quanto la posizione X è come in N04.

N08 X30 ; Primo blocco eseguibile verso N05.

...

Esempio 3: attivazione di uno scambio assi senza stop di preelaborazione Presupposti: Lo scambio assi senza sto preelaborazione deve essere progettato mediante un dato macchina. Programmazione Commento

N010 M4 S100

N011 G4 F2

N020 M5

N021 SPOS=0

N022 POS[B]=1

N023 WAITP(B) ; L'asse B diventa asse neutro.

N030 X1 F10

N031 X100 F500

N032 X200

N040 M3 S500 ; L'asse non provoca stop preelaborazione/REORG.

N041 G4 F2

N050 M5

N099 M30

Se il mandrino o l'asse B viene spostato immediatamente dopo il blocco N023 come asse PLC, ad es. a 180 gradi e di nuovo a 1 grado, questo asse diventa nuovamente un asse neutro e non provoca alcuno stop preelaborazione nel blocco N40.

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro 142 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Premessa Premesse per il cambio assi ● Tramite i dati macchina l’asse deve essere definito in tutti i canali in cui lo si vuole

utilizzare. ● Con il dato macchina specifico per asse si stabilisce a quale canale deve essere abbinato

l’asse dopo POWER ON.

Descrizione Abilitazione asse: RELEASE Per l'abilitazione dell'asse occorre considerare quanto segue: 1. L'asse non deve far parte di alcuna trasformazione. 2. Nel caso di accoppiamenti di assi (comando tangenziale), tutti gli assi del

raggruppamento devono essere abilitati. 3. In questa condizione non è possibile scambiare un asse di posizionamento simultaneo. 4. Nel caso di un asse Master-Gantry vanno scambiati anche tutti gli assi a seguire. 5. Nel caso di accoppiamenti di assi (assi trascinati, accoppiamento a valore guida, riduttore

elettronico) può essere abilitato solo l'asse master del raggruppamento. Accettazione asse: GET Con questo comando viene eseguito il vero e proprio cambio assi. La responsabilità per l'asse ricade ora del tutto sul canale in cui è stata programmata l'istruzione. Effetti di GET: Cambio asse con sincronizzazione: La sincronizzazione di un asse si rende necessaria ogni volta che l'asse è stato assegnato temporaneamente ad un altro canale o al PLC, senza che prima di GET fosse avvenuta una sincronizzazione tramite "WAITP", G74 o cancellazione del percorso residuo. ● Arresto della preelaborazione (come per STOPRE) ● La lavorazione viene interrotta fino a quando il cambio non sia completamente terminato.

Programmazione NC flessibile 1.15 Scambio assi, scambio mandrini (RELEASE, GET, GETD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 143

GET automatico Se un asse risulta disponibile in un canale ma attualmente non è presente come "Asse di canale" viene eseguito automaticamente GET. Se l'asse (o gli assi) risulta(no) già sincronizzato(i) non viene generato lo stop preelaborazione.

Impostazione variabile del comportamento dello scambio assi Il punto di rilascio degli assi viene impostato tramite un dato macchina come segue: ● Lo scambio dati automatico fra due canali può avvenire anche quando l'asse è stato

portato in una condizione neutrale con WAITP (comportamento come in precedenza) ● Alla richiesta di una rotazione del container assi, tutti gli assi assegnabili al canale attivo

del container assi vengono trasferiti nel canale tramite GET o GETD. Un successivo scambio assi è nuovamente ammesso solo una volta conclusa la rotazione del container assi.

● Dopo l'inserimento di un blocco intermedio nell'elaborazione principale viene verificato se è necessaria o meno una riorganizzazione. La riorganizzazione sarà necessaria solo se le condizioni asse di questo blocco non coincidono con le condizioni asse attuali.

● A differenza di un blocco GET con stop preelaborazione e sincronizzazione tra preelaborazione ed elaborazione principale, uno scambio assi può avvenire anche senza stop preelaborazione. Viene quindi generato solo un blocco intermedio con la richiesta GET. Nell'elaborazione principale, all'esecuzione di questo blocco viene controllato se gli stati dell'asse nel blocco corrispondono agli stati attuali dell'asse.

Per ulteriori informazioni sulla funzionalità di uno scambio assi o mandrini, vedere /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; BAG, canali, scambio assi (K5).

Programmazione NC flessibile 1.16 Spostamento di un asse in un altro canale (AXTOCHAN)

Preparazione del lavoro 144 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.16 1.16 Spostamento di un asse in un altro canale (AXTOCHAN)

Funzione Con il comando di linguaggio AXTOCHAN può essere richiesto un asse per spostare questo asse in un altro canale. L'asse può essere spostato nel canale corrispondente sia dal partprogram dell'NC, sia da un'azione sincrona.

Sintassi AXTOCHAN(nome asse,n. canale[,nome asse,n. canale [,...]])

Significato AXTOCHAN: Richiesta di un asse per un determinato canale Nome asse: Abbinamento dell’asse nel sistema: X, Y, … oppure indicazione del

nome dell'asse macchina interessato. Il canale da eseguire non deve essere il proprio canale e non deve nemmeno essere il canale che dispone dell'autorizzazione di interpolazione attuale per l'asse

Numero di canale:

Numero del canale cui deve essere assegnato l'asse

Nota Asse di posizionamento simultaneo e asse controllato esclusivamente dal PLC Un asse PLC non può, in quanto asse di posizionamento simultaneo (concorrente), cambiare il canale. Un asse controllato esclusivamente dal PLC non può essere assegnato al programma NC. Bibliografia Manuale di guida alle funzioni, Funzioni di ampliamento; Assi di posizionamento (P2)

Programmazione NC flessibile 1.16 Spostamento di un asse in un altro canale (AXTOCHAN)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 145

Esempio AXTOCHAN nel programma NC Gli assi X e Y sono conosciuti nel 1° canale e nel 2° canale. Attualmente il canale 1 dispone dell'autorizzazione di interpolazione e nel canale 1 viene avviato il seguente programma: Codice di programma Commento

N110 AXTOCHAN(Y,2) ; Spostamento asse Y nel 2° canale.

N111 M0

N120 AXTOCHAN(Y,1) ; Richiamo dell'asse Y (neutro).

N121 M0

N130 AXTOCHAN(Y,2,X,2) ; Spostamento asse Y e asse X nel 2° canale (assi neutri).

N131 M0

N140 AXTOCHAN(Y,2) ; Spostamento asse Y nel 2° canale (programma NC).

N141 M0

Ulteriori informazioni AXTOCHAN nel programma NC Per il programma NC nel proprio canale, solo ad una richiesta dell'asse viene eseguito un comando GET in modo da attendere anche l'effettiva modifica di stato. Solo se l'asse è richiesto per un altro canale o deve diventare un asse neutro nel proprio canale, viene emessa la richiesta relativa. AXTOCHAN da un'azione sincrona Se viene richiesto un asse per il proprio canale, AXTOCHAN viene riprodotto da un'azione sincrona su un comando GET. In questo caso l'asse diventa un asse reale alla prima richiesta per il proprio canale. Alla seconda richiesta l'asse viene assegnato al programma NC in modo analogo alla richiesta GET nel programma NC. Per la richiesta GET da un'azione sincrona vedere il capitolo "Azioni sincrone di movimento".

Programmazione NC flessibile 1.17 Attivazione dei dati macchina (NEWCONF)

Preparazione del lavoro 146 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.17 1.17 Attivazione dei dati macchina (NEWCONF)

Funzione Con il comando NEWCONF vengono attivati tutti i dati macchina del livello di efficacia "NEW_CONFIG". Questa funzione può anche essere attivata dalla superficie operativa HMI con il softkey "Attivare DM". Quando viene eseguita la funzione "NEWCONF" si verifica uno stop di preelaborazione implicito, ossia il movimento interpolato viene interrotto.

Sintassi NEWCONF

Significato NEWCONF: Comando per l'attivazione di tutti i dati macchina del livello di efficacia

"NEW_CONFIG"

Esecuzione estesa a tutti canali di NEWCONF dal programma pezzo Se i dati macchina assiali vengono modificati dal programma pezzo e successivamente attivati con NEWCONF, il comando NEWCONF attiva solo i dati macchina che comportano modifiche per il canale del programma pezzo.

Nota Per attivare in modo sicuro tutte le modifiche, il comando NEWCONF deve essere eseguito in ogni canale in cui vengono attualmente calcolati anche gli assi, o le funzioni, interessati dai dati macchina modificati. Con NEWCONF non vengono attivati dati macchina assiali. Per gli assi controllati da PLC è necessario eseguire un RESET assiale.

Esempio Fresatura: lavorare la posizione di foratura con varie tecnologie Codice di programma Commento

N10 $MA_CONTOUR_TOL[AX]=1.0 ; Modifica del dato macchina.

N20 NEWCONF ; Attivazione dei dati macchina.

...

Programmazione NC flessibile 1.18 Scrittura del file (WRITE)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 147

1.18 1.18 Scrittura del file (WRITE)

Funzione Con il comando WRITE è possibile scrivere blocchi/dati dal programma pezzo alla fine di un file specificato (file di protocollo) o del programma pezzo che si trova in esecuzione. I blocchi/dati vengono inseriti a fine file, quindi dopo M30.

Nota Un file da descrivere tramite il comando WRITE viene creato ex novo se non esiste già nel controllo numerico. Il percorso di archiviazione è la memoria NC statica. Per SINUMERIK 840D sl è la CompactFlash Card. Rispetto a SINUMERIK 840D, il tempo di esecuzione del comando WRITE aumenta in tal modo di circa 75 ms. Se sul disco rigido esiste già un file con lo stesso nome, questo verrà sovrascritto (nel controllo numerico) alla chiusura del file. Rimedio: nel settore operativo "Servizi", modificare il nome nel controllo numerico tramite il softkey "Proprietà".

Presupposti Il livello di protezione attuale impostato deve essere uguale o maggiore al diritto WRITE del file. In caso contrario, l'accesso viene rifiutato con un messaggio di errore (valore di ritorno della variabile di errore = 13).

Sintassi DEF INT <errore> WRITE(<errore>,"<nome_file>","<blocco/dati>")

Programmazione NC flessibile 1.18 Scrittura del file (WRITE)

Preparazione del lavoro 148 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato WRITE: Comando per l'aggiunta di un blocco o di dati alla fine del file

specificato Variabile per la restituzione del valore dell'errore Tipo: INT

0 nessun errore 1 percorso non consentito 2 percorso non trovato 3 file non trovato 4 tipo di file errato 10 file pieno 11 file già in uso 12 nessuna risorsa libera 13 mancano i diritti di accesso

<errore>:

Valore:

20 altri errori

Programmazione NC flessibile 1.18 Scrittura del file (WRITE)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 149

Nome del file in cui vanno aggiunti il blocco specificato o i dati specificati. Tipo: STRING

<nome_file>:

Specificando il nome file si devono rispettare i seguenti punti: • Il nome file specificato non deve contenere caratteri vuoti o di

controllo (caratteri con codice ASCII ≤ 32), poiché altrimenti il comando WRITE s'interrompe con il codice di errore 1 "Percorso non consentito".

• Il nome file si può indicare con il percorso e l'identificazione del file: – Indicazioni di percorso

Le indicazioni di percorso devono essere assolute, ossia iniziare con "/". Se non viene specificato il percorso, il file viene salvato nella directory corrente (= directory del programma selezionato).

– Identificatore del file Se il nome file non contiene un identificatore del dominio ("_N_"), questo viene aggiunto di conseguenza. Se il nome file contiene come quartultimo carattere un underscore "_", i successivi tre caratteri vengono interpretati come identificazione del file. Per poter utilizzare per tutti i comandi di file lo stesso nome file, ad es. tramite una variabile del tipo STRING, si devono impiegare solo gli identificatori di file _SPF e _MPF. Se non si è specificato alcun identificatore "_MPF" o "_SPF", viene automaticamente inserito l'identificatore _MPF.

• La lunghezza massima del nome file è di 32 byte, quella del percorso di 128 byte.

Esempio: "PROTFILE" "_N_PROTFILE" "_N_PROTFILE_MPF" "/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Blocco o dati da aggiungere nel file specificato. Tipo: STRING

<blocco/dati>:

Nota: Internamente viene inoltre aggiunto LF, quindi la stringa di caratteri si allunga di 1 carattere.

Programmazione NC flessibile 1.18 Scrittura del file (WRITE)

Preparazione del lavoro 150 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Condizioni marginali ● Dimensione massima del file (→ costruttore della macchina!)

La dimensione massima del file di protocollo (log file) viene impostata con il dato macchina: MD11420 $MN_LEN_PROTOCOL_FILE La dimensione massima del file vale per tutti i file creati con il comando WRITE. In caso di superamento viene emesso un messaggio di errore e il blocco o i dati non vengono archiviati. Se la memoria è sufficiente, si può quindi creare un nuovo file.

Esempi Esempio 1: comando WRITE senza indicazione del percorso assoluta Codice di programma Commento

N10 DEF INT ERROR ; Definizione delle variabili di errore.

N20 WRITE(ERROR,"TEST1","PROTOKOLL VOM 7.2.97") ; Scrivi il testo "PROTOCOLLO DEL 7/2/97" nel file _N_TEST1_MPF.

N30 IF ERROR ; Analisi errore.

N40 MSG ("errore nel comando WRITE:" << ERROR)

N50 M0

N60 ENDIF

...

Esempio 2: comando WRITE con indicazione del percorso assoluta Codice di programma

...

WRITE(ERROR,"/_N_WKS_DIR/_N_PROT_WPD/_N_PROT_MPF","PROTOCOLLO DEL 7/2/97")

...

Programmazione NC flessibile 1.19 Cancellazione del file (DELETE)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 151

1.19 1.19 Cancellazione del file (DELETE)

Funzione Con il comando DELETE si possono cancellare tutti i file, indipendentemente dal fatto che siano stati creati con il comando WRITE o meno. Anche i file creati da un livello di accesso superiore possono essere cancellati con DELETE.

Sintassi DEF INT <errore> DELETE(<errore>,"<nome_file>")

Significato DELETE: Comando per l'eliminazione del file specificato

Variabile per la restituzione del valore dell'errore Tipo: INT

0 nessun errore 1 percorso non consentito 2 percorso non trovato 3 file non trovato 4 tipo di file errato 11 file già in uso 12 nessuna risorsa libera

<errore>:

Valore:

20 altri errori Nome del file da eliminare <nome_file>: Tipo: STRING

Programmazione NC flessibile 1.19 Cancellazione del file (DELETE)

Preparazione del lavoro 152 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Specificando il nome file si devono rispettare i seguenti punti: • Il nome file specificato non deve contenere caratteri vuoti o di

controllo (caratteri con codice ASCII ≤ 32), poiché altrimenti il comando DELETE s'interrompe con il codice di errore 1 "Percorso non consentito".

• Il nome file si può indicare con il percorso e l'identificazione del file: – Indicazioni di percorso

Le indicazioni di percorso devono essere assolute, ossia iniziare con "/". Se non viene specificato il percorso, il file viene cercato nella directory corrente (= directory del programma selezionato).

– Identificatore del file Se il nome file non contiene un identificatore del dominio ("_N_"), questo viene aggiunto di conseguenza. Se il nome file contiene come quartultimo carattere un underscore "_", i successivi tre caratteri vengono interpretati come identificazione del file. Per poter utilizzare per tutti i comandi di file lo stesso nome file, ad es. tramite una variabile del tipo STRING, si devono impiegare solo gli identificatori di file _SPF e _MPF. Se non si è specificato alcun identificatore "_MPF" o "_SPF", viene automaticamente inserito l'identificatore _MPF.

• La lunghezza massima del nome file è di 32 byte, quella del percorso di 128 byte.

Esempio: "PROTFILE" "_N_PROTFILE" "_N_PROTFILE_MPF" "/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Esempio Codice di programma Commento

N10 DEF INT ERROR ; Definizione delle variabili di errore.

N15 STOPRE ; Stop di preelaborazione.

N20 DELETE(ERROR,"/_N_SPF_DIR/_N_TEST1_SPF") ; Cancella il file TEST1 nella directory del sottoprogramma.

N30 IF ERROR ; Analisi errore.

N40 MSG("Errore con comando DELETE:" <<ERROR)

N50 M0

N60 ENDIF

Programmazione NC flessibile 1.20 Lettura di righe nel file (READ)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 153

1.20 1.20 Lettura di righe nel file (READ)

Funzione Il comando READ legge una o più righe nel file specificato e archivia le informazioni lette in un campo del tipo STRING. Ogni riga letta copre in questo campo un elemento di campo.

Nota Il file deve trovarsi nella memoria utente statica dell'NCK (file system passivo).

Presupposti Il livello di protezione attuale impostato deve essere uguale o maggiore al diritto READ del file. In caso contrario, l'accesso viene rifiutato con un messaggio di errore (valore di ritorno della variabile di errore = 13).

Sintassi DEF INT <errore> DEF STRING[<lunghezza_stringa>] <risultato>[<n>,<m>] READ(<errore>,"<nome_file>",<riga_iniziale>,<numero -righe>,<risultato>)

Programmazione NC flessibile 1.20 Lettura di righe nel file (READ)

Preparazione del lavoro 154 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato READ: Comando per la lettura di righe del file specificato e l'archiviazione

delle stesse in un campo per variabili. Variabile per la restituzione del valore dell'errore (parametro Call-by-Reference) Tipo: INT

0 Nessun errore 1 Percorso non consentito 2 Percorso non trovato 3 File non trovato 4 Tipo di file errato 13 Diritti di accesso insufficienti 21 Riga non esistente (parametro

<riga_iniziale> o <numero_righe> maggiore del numero delle righe nel file specificato).

22 La lunghezza del campo della variabile di risultato (<risultato >) è troppo esigua.

<errore>:

Valore:

23 Intervallo delle righe troppo grande (le dimensioni del parametro <numero_righe> sono state selezionate in eccesso e di conseguenza la lettura supera la fine del file).

Programmazione NC flessibile 1.20 Lettura di righe nel file (READ)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 155

Nome del file da leggere (parametro Call-by-Value) Tipo: STRING

<nome_file>:

Specificando il nome file si devono rispettare i seguenti punti: • Il nome file specificato non deve contenere caratteri vuoti o di

controllo (caratteri con codice ASCII ≤ 32), poiché altrimenti il comando READ s'interrompe con il codice di errore 1 "Percorso non consentito".

• Il nome file si può indicare con il percorso e l'identificazione del file: – Indicazioni di percorso

Le indicazioni di percorso devono essere assolute, ossia iniziare con "/". Se non viene specificato il percorso, il file viene cercato nella directory corrente (= directory del programma selezionato).

– Identificatore del file Se il nome file non contiene un identificatore del dominio ("_N_"), questo viene aggiunto di conseguenza. Se il nome file contiene come quartultimo carattere un underscore "_", i successivi tre caratteri vengono interpretati come identificazione del file. Per poter utilizzare per tutti i comandi di file lo stesso nome file, ad es. tramite una variabile del tipo STRING, si devono impiegare solo gli identificatori di file _SPF e _MPF. Se non si è specificato alcun identificatore "_MPF" o "_SPF", viene automaticamente inserito l'identificatore _MPF.

• La lunghezza massima del nome file è di 32 byte, quella del percorso di 128 byte.

Esempio: "PROTFILE" "_N_PROTFILE" "_N_PROTFILE_MPF" "/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Programmazione NC flessibile 1.20 Lettura di righe nel file (READ)

Preparazione del lavoro 156 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Riga iniziale dell'area dati da leggere (parametro Call-by-Value) Tipo: INT

0 Prima della fine del file viene letto il numero di righe specificato con il parametro <numero_righe>.

<riga_iniziale>:

Valore:

1 … n Numero della prima riga da leggere. Numero delle righe da leggere (parametro Call-by-Value) <numero_righe>: Tipo: INT Variabile risultato (parametro Call-by-Reference) Campo per variabili in cui viene archiviato il testo letto. Tipo: STRING (lunghezza max.: 255)

<risultato>:

Se nel parametro <numero_righe> vengono specificate meno righe rispetto alla dimensione del campo [<n>,<m>] della variabile di risultato, i restanti elementi di campo non vengono modificati. La riga finale prodotta dal carattere di controllo "LF" (Line Feed) o "CR LF" (Carriage Return Line Feed) non viene salvata nella variabile di risultato. Le righe lette vengono troncate se la riga eccede la lunghezza definita della stringa. Non viene emesso alcun messaggio di errore.

Nota I file binari non possono essere letti. Viene emesso l'errore "tipo di file errato" (valore di ritorno della variabile di errore = 4). I seguenti tipi di file non possono essere letti: _BIN, _EXE, _OBJ, _LIB, _BOT, _TRC, _ACC, _CYC, _NCK.

Esempio Codice di programma Commento

N10 DEF INT ERROR ; Definizione delle variabili di errore.

N20 DEF STRING[255] RESULT[5] ; Definizione delle variabili di risultato.

N30 READ(ERROR,"/_N_CST_DIR/_N_TESTFILE_MPF",1,5,RESULT) ; Nome file con identificatore di dominio, identificatore di file e indicazione del percorso.

N40 IF ERROR <>0 ; Analisi errore.

N50 MSG("ERRORE"<<ERROR<<"CON COMANDO READ")

N60 M0

N70 ENDIF

...

Programmazione NC flessibile 1.21 Verifica della presenza di un file (ISFILE)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 157

1.21 1.21 Verifica della presenza di un file (ISFILE)

Funzione Con l'istruzione ISFILE è possibile verificare se esiste un file nella memoria utente statica dell'NCK (file system passivo).

Sintassi <risultato>=ISFILE("<nome_file>")

Significato ISFILE: Comando per la verifica dell'esistenza del file specificato nel file

system passivo. Nome del file di cui si deve verificare l'esistenza nel file system passivo. Tipo: STRING

<nome_file>:

Specificando il nome file si devono rispettare i seguenti punti: • Il nome file specificato non deve contenere caratteri vuoti o di

controllo (caratteri con codice ASCII ≤ 32). • Il nome file si può indicare con il percorso e l'identificazione del file:

– Indicazioni di percorso Le indicazioni di percorso devono essere assolute, ossia iniziare con "/". Se non viene specificato il percorso, il file viene cercato nella directory corrente (= directory del programma selezionato).

– Identificatore del file Se il nome file non contiene un identificatore del dominio ("_N_"), questo viene aggiunto di conseguenza. Se il nome file contiene come quartultimo carattere un underscore "_", i successivi tre caratteri vengono interpretati come identificazione del file. Per poter utilizzare per tutti i comandi di file lo stesso nome file, ad es. tramite una variabile del tipo STRING, si devono impiegare solo gli identificatori di file _SPF e _MPF. Se non si è specificato alcun identificatore "_MPF" o "_SPF", viene automaticamente inserito l'identificatore _MPF.

• La lunghezza massima del nome file è di 32 byte, quella del percorso di 128 byte.

Esempio: "PROTFILE" "_N_PROTFILE" "_N_PROTFILE_MPF" "/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Programmazione NC flessibile 1.21 Verifica della presenza di un file (ISFILE)

Preparazione del lavoro 158 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabile di risultato per la ricezione del risultato della verifica Tipo: BOOL

TRUE File presente

<risultato>:

Valore: FALSE File inesistente

Esempio Codice di programma Commento

N10 DEF BOOL RESULT ; Definizione delle variabili di risultato.

N20 RESULT=ISFILE("TESTFILE")

N30 IF(RESULT==FALSE)

N40 MSG("FILE NON PRESENTE")

N50 M0

N60 ENDIF

...

oppure: Codice di programma Commento

N10 DEF BOOL RESULT ; Definizione delle variabili di risultato.

N20 RESULT=ISFILE("TESTFILE")

N30 IF(NOT ISFILE("TESTFILE"))

N40 MSG("FILE NON PRESENTE")

N50 M0

N60 ENDIF

...

Programmazione NC flessibile 1.22 Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 159

1.22 1.22 Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

Funzione Tramite i comandi FILEDATE, FILETIME, FILESIZE, FILESTAT e FILEINFO è possibile leggere determinate informazioni sul file, quali data/ora dell'ultimo accesso in scrittura, dimensione attuale del file, stato del file o l'insieme di queste informazioni.

Nota Il file deve trovarsi nella memoria utente statica dell'NCK (file system passivo).

Presupposti Il livello di protezione attualmente impostato deve essere uguale al o maggiore del diritto SHOW della directory sovraordinata. In caso contrario, l'accesso viene rifiutato con un messaggio di errore (valore di ritorno della variabile di errore = 13).

Sintassi DEF INT <errore> DEF STRING[<lunghezza_stringa>] <risultato> FILE....(<errore>,"<nome_file>",<risultato>)

Significato FILEDATE: Il comando FILEDATE fornisce la data dell'ultimo accesso in scrittura

al file indicato. FILETIME: Il comando FILETIME fornisce l'ora dell'ultimo accesso in scrittura al

file indicato. FILESIZE: Il comando FILESIZE fornisce la dimensione attuale del file indicato.FILESTAT: Il comando FILESTAT fornisce per il file indicato lo stato per quanto

riguarda i diritti di lettura, scrittura ed esecuzione. FILEINFO: Il comando FILEINFO fornisce per il file indicato la somma delle

informazioni del file che possono essere ricavate da FILEDATE, FILETIME, FILESIZE e FILESTAT.

Programmazione NC flessibile 1.22 Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

Preparazione del lavoro 160 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabile per la restituzione del valore dell'errore (parametro Call-by-Reference) Tipo: INT

0 nessun errore 1 percorso non consentito 2 percorso non trovato 3 file non trovato 4 tipo di file errato 13 diritti di accesso insufficienti

<errore>:

Valore:

22 la lunghezza della stringa della variabile di risultato (<risultato >) è troppo esigua.

Nome del file da cui devono essere ricavate le informazioni sul file. Tipo: STRING

<nome_file>:

Specificando il nome file si devono rispettare i seguenti punti: • Il nome file specificato non deve contenere caratteri vuoti o di

controllo (caratteri con codice ASCII ≤ 32), poiché altrimenti il comando FILE... s'interrompe con il codice di errore 1 "Percorso non consentito".

• Il nome file si può indicare con il percorso e l'identificazione del file: – Indicazioni di percorso

Le indicazioni di percorso devono essere assolute, ossia iniziare con "/". Se non viene specificato il percorso, il file viene cercato nella directory corrente (= directory del programma selezionato).

– Identificatore del file Se il nome file non contiene un identificatore del dominio ("_N_"), questo viene aggiunto di conseguenza. Se il nome file contiene come quartultimo carattere un underscore "_", i successivi tre caratteri vengono interpretati come identificazione del file. Per poter utilizzare per tutti i comandi di file lo stesso nome file, ad es. tramite una variabile del tipo STRING, si devono impiegare solo gli identificatori di file _SPF e _MPF. Se non si è specificato alcun identificatore "_MPF" o "_SPF", viene automaticamente inserito l'identificatore _MPF.

• La lunghezza massima del nome file è di 32 byte, quella del percorso di 128 byte.

Esempio: "PROTFILE" "_N_PROTFILE" "_N_PROTFILE_MPF" "/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Programmazione NC flessibile 1.22 Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 161

Variabile risultato (parametro Call-by-Reference) Variabile in cui sono memorizzate le informazioni sul file richieste.

FILEDATE Formato: "gg.mm.aa" ⇒ la lunghezza della stringa deve essere 8. FILETIME Formato: " hh:mm.ss " ⇒ la lunghezza della stringa deve essere 8. FILESTAT Formato: "rwxsd" (r: read, w: write, x: execute, s: show, d: delete) ⇒ la lunghezza della stringa deve essere 5.

STRING con:

FILEINFO Formato: "rwxsd nnnnnnnn gg.mm.aa hh:mm:ss" ⇒ la lunghezza della stringa deve essere 32.

<risultato>:

Tipo:

INT con: FILESIZE La dimensione file viene emessa in byte.

Esempio Codice di programma Commento

N10 DEF INT ERROR ; Definizione delle variabili di errore.

N20 STRING[32] RESULT ; Definizione delle variabili di risultato.

N30 FILEINFO(ERROR,"/_N_MPF_DIR/_N_TESTFILE_MPF",RESULT) ; Nome file con identificatore di dominio, identificatore di file e indicazione del percorso.

N40 IF ERROR <>0 ; Valutazione errori

N50 MSG("ERRORE"<<ERROR<<"CON COMANDO FILEINFO")

N60 M0

N70 ENDIF

...

L'esempio potrebbe fornire nella variabile di risultato RESULT ad es. il seguente risultato: "77777 12345678 26.05.00 13:51:30"

Programmazione NC flessibile 1.23 Calcolo del checksum mediante un campo (CHECKSUM)

Preparazione del lavoro 162 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.23 1.23 Calcolo del checksum mediante un campo (CHECKSUM)

Funzione Il comando CHECKSUM consente di calcolare il checksum mediante un campo. Confrontando questo checksum con il risultato di un precedente calcolo del checksum, si può determinare se le date del campo sono cambiate.

Applicazione Verifica se il profilo di ingresso è stato modificato durante l'asportazione.

Sintassi DEF INT <errore> DEF STRING[<lunghezza_stringa>] <checksum> DEF ... <campo>[<n>,<m>,<o>] <errore>=CHECKSUM(<checksum>,"<campo>"[,<colonna iniziale>,<colonna finale>])

Significato CHECKSUM: Comando per il calcolo del checksum mediante un campo

Variabile per la restituzione del valore dell'errore Tipo: INT

0 nessun errore 1 simbolo non trovato 2 nessun campo 3 indice 1 troppo grande 4 indice 2 troppo grande 5 tipo di dato errato

<errore>:

Valore:

10 overflow del checksum Variabile di risultato per la registrazione del risultato del calcolo del checksum (parametro Call-by-Reference) Tipo: STRING

<checksum>:

Lunghezza della stringa necessaria:

16 Il checksum viene rappresentato come stringa di caratteri di 16 cifre esadecimali. Non vengono tuttavia specificati i caratteri di formato. Esempio: "A6FC3404E534047C"

Programmazione NC flessibile 1.23 Calcolo del checksum mediante un campo (CHECKSUM)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 163

Nome del campo mediante il quale deve essere formato il checksum (parametro Call-By-Value) Tipo: STRING Lunghezza stringa max.: 32

<campo>:

I campi consentiti sono campi da mono a tridimensionali dei tipi: BOOL, CHAR, INT, REAL, STRING Nota: I campi dei dati macchina non sono ammessi.

<colonna_iniziale>: Numero della colonna iniziale del campo per il calcolo del checksum (parametro opzionale)

<colonna_finale>: Numero della colonna finale del campo per il calcolo del checksum (parametro opzionale)

Nota I parametri <colonna_iniziale> e <colonna_finale> sono facoltativi. Se non vengono specificati indici delle colonne, il checksum viene formato considerando il campo completo. Il risultato del checksum è sempre univoco. In caso di variazioni di un elemento di campo, si ha anche un'altra stringa di risultato.

Esempio Codice di programma Commento

N10 DEF INT ERROR ; Definizione delle variabili di errore.

N20 DEF STRING[16] MY_CHECKSUM ; Definizione delle variabili di risultato.

N30 DEF INT MY_VAR[4,4] ; Definizione del campo.

N40 MY_VAR=...

N50 ERROR=CHECKSUM(MY_CHECKSUM,"MY_VAR",0,2)

...

L'esempio potrebbe fornire nella variabile di risultato MY-CHECKSUM ad es. il seguente risultato: "A6FC3404E534047C"

Programmazione NC flessibile 1.24 Arrotondamento (ROUNDUP)

Preparazione del lavoro 164 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.24 1.24 Arrotondamento (ROUNDUP)

Funzione Attraverso la funzione "ROUNDUP" è possibile arrotondare i valori di impostazione di tipo REAL (numeri con punto decimale) al numero intero maggiore successivo.

Sintassi ROUNDUP(<valore>)

Significato ROUNDUP: Comando per l'arrotondamento di un valore di impostazione <valore>: Valore di impostazione di tipo REAL

Nota I valori di impostazione di tipo INTEGER (un numero intero) vengono restituiti invariati.

Esempi Esempio 1: Diversi valori di impostazione e relativi risultati di arrotondamento Esempio Risultato dell'arrotondamento ROUNDUP(3.1) 4.0 ROUNDUP(3.6) 4.0 ROUNDUP(-3.1) -3.0 ROUNDUP(-3.6) -3.0 ROUNDUP(3.0) 3.0 ROUNDUP(3) 3.0

Esempio 2: ROUNDUP nel programma NC Codice di programma

N10 X=ROUNDUP(3.5) Y=ROUNDUP(R2+2)

N15 R2=ROUNDUP($AA_IM[Y])

N20 WHEN X=100 DO Y=ROUNDUP($AA_IM[X])

...

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 165

1.25 1.25 Tecnica dei sottoprogrammi

1.25.1 Generalità

1.25.1.1 Sottoprogramma

Funzione Il termine "sottoprogramma" è legato all'epoca in cui i partprogram erano suddivisi in programmi principali e sottoprogrammi. I programmi principali erano i partprogram che venivano selezionati per l'elaborazione e quindi avviati sul controllo numerico. I sottoprogrammi erano i partprogram che venivano richiamati dal programma principale. Oggi questa suddivisione fissa non esiste più con l'attuale linguaggio NC SINUMERIK. In linea di massima ogni partprogram può essere selezionato e avviato come programma principale oppure essere richiamato come sottoprogramma da un altro partprogram. In questo manuale si definirà quindi sottoprogramma un partprogram che viene richiamato da un altro partprogram.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 166 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Applicazione Come in tutti i linguaggi di programmazione più evoluti, anche nel linguaggio NC i sottoprogrammi vengono impiegati per salvare le parti di programma che vengono utilizzate più volte in programmi autonomi a sé stanti. I sottoprogrammi offrono i seguenti vantaggi: ● Aumentano la chiarezza e la leggibilità dei programmi ● Aumentano la qualità riutilizzando programmi testati ● Offrono la possibilità di creare librerie di elaborazione specifiche ● Risparmiano spazio in memoria

1.25.1.2 Nomi dei sottoprogrammi

Regole per la denominazione Nell'assegnazione dei nomi dei sottoprogrammi si devono rispettare le seguenti regole: ● I primi due caratteri devono essere lettere (A - Z, a - z). ● I caratteri seguenti possono essere una combinazione qualsiasi di lettere, cifre (0 - 9) e

caratteri di sottolineatura ("_"). ● Si possono utilizzare 31 caratteri al massimo.

Nota Nel linguaggio NC SINUMERIK non si fa distinzione tra caratteri maiuscoli e minuscoli.

Estensioni del nome del programma Il nome del programma immesso al momento della creazione del programma viene ampliato all'interno del controllo numerico con un prefisso e un suffisso: ● Prefisso: _N_ ● Suffisso:

– Programmi principali: _MPF – Sottoprogrammi: _SPF

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 167

Utilizzo del nome del programma Quando si utilizza un nome di programma, ad es. in un richiamo di sottoprogramma, tutte le combinazioni di prefisso, nome programma e suffisso sono possibili. Esempio: Il sottoprogramma con il nome di programma "SUB_PROG" può essere avviato con i seguenti richiami:

1. SUB_PROG

2. _N_SUB_PROG

3. SUB_PROG_SPF

4. _N_SUB_PROG_SPF

Nota Nomi identici di programmi principali e sottoprogrammi Se esistono programmi principali (.MPF) e sottoprogrammi (.SPF) con gli stessi nomi, quando si utilizza il nome del programma nel partprogram occorre specificare il relativo suffisso allo scopo di identificare chiaramente il programma.

1.25.1.3 Annidamento dei sottoprogrammi Un programma principale può richiamare sottoprogrammi che a loro volta richiamano dei sottoprogrammi. Le esecuzioni dei programmi sono quindi annidate l'una nell'altra. Ogni programma viene eseguito in un proprio livello di programma.

Profondità di annidamento Il linguaggio NC mette attualmente a disposizione 16 livelli di programma. Il programma principale viene sempre eseguito nel livello di programma superiore 0. Un sottoprogramma viene sempre eseguito nel livello di programma immediatamente inferiore in base al richiamo. Il livello di programma 1 è quindi il primo livello di sottoprogramma.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 168 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Suddivisione dei livelli di programma: ● Livello di programma 0: livello del programma principale ● Livello di programma 1 - 15: livello del sottoprogramma 1 - 15

... ...

Routine di interrupt (ASUP) Se nell'ambito di una routine di interrupt viene richiamato un sottoprogramma, questo non viene elaborato nel livello di programma attualmente attivo nel canale, ma nel livello di programma immediatamente inferiore (n+1). Perché ciò sia possibile anche nel livello di programma più basso, in relazione con le routine di interrupt sono disponibili 2 ulteriori livelli di programma (16 e 17). Se sono necessari più di 2 livelli di programma, questo deve essere considerato esplicitamente nella strutturazione del partprogram elaborato nel canale. Ciò significa il numero massimo di livelli di programma utilizzabile deve essere tale da lasciare disponibili ancora abbastanza livelli di programma per l'elaborazione degli interrupt. Se l'elaborazione degli interrupt necessita ad es. di 4 livelli di programma, il partprogram deve essere strutturato in modo da occupare al massimo 13 livelli di programma. Se si verifica un interrupt, questo avrà a disposizione i 4 livelli di programma (da 14 a 17) necessari.

Cicli Siemens I cicli Siemens necessitano di 3 livelli di programma. Il richiamo di un ciclo Siemens deve quindi avvenire al più tardi in: ● Elaborazione del partprogram: livello di programma 12 ● Routine di interrupt: livello di programma 14

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 169

1.25.1.4 Percorso di ricerca Se un sottoprogramma viene richiamato senza indicazione del percorso, il controllo numerico cerca nell'ordine specificato nelle seguenti directory: Sequenza Directory Descrizione 1. Directory attuale Directory del programma richiamante 2. /_N_SPF_DIR / Directory globale dei sottoprogrammi 3. /_N_CUS_DIR / Cicli utente 4. /_N_CMA_DIR / Cicli costruttore 5. /_N_CST_DIR / Cicli standard

1.25.1.5 Parametri formali e attuali Si parla di parametri formali e attuali in relazione alla definizione e al richiamo di sottoprogrammi con trasferimento di parametri.

Parametri formali Nella definizione di un sottoprogramma i parametri che devono essere trasferiti al sottoprogramma, i cosiddetti parametri formali, devono essere definiti con tipo e nome del parametro. I parametri formali definiscono quindi l'interfaccia del sottoprogramma. Esempio: Codice di programma Commento

PROC KONTUR (REAL X, REAL Y) ; Parametri formali: X e Y entrambi del tipo REAL

N20 X1=X Y1=Y ; Traslazione dell'asse X1 alla posizione X e dell'asse Y1 alla posizione Y

...

N100 RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 170 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Parametri attuali Nel richiamo di un sottoprogramma occorre trasferire al sottoprogramma valori assoluti o variabili, i cosiddetti parametri attuali. Al momento del richiamo i parametri attuali forniscono quindi i valori attuali all'interfaccia del sottoprogramma. Esempio: Codice di programma Commento

N10 DEF REAL BREITE ; Definizione delle variabili

N20 BREITE=20.0 ; Assegnazione variabili

N30 KONTUR(5.5, BREITE) ; Richiamo del sottoprogramma con parametri attuali: 5.5 e BREITE

...

N100 M30

1.25.1.6 Trasferimento di parametri

Definizione di un sottoprogramma con trasferimento dei parametri La definizione di un sottoprogramma con trasferimento dei parametri avviene con la parola chiave PROC e un elenco completo di tutti i parametri attesi dal sottoprogramma.

Assegnazione incompleta di parametri Nel richiamo del sottoprogramma non è sempre necessario trasferire esplicitamente tutti i parametri definiti nell'interfaccia del sottoprogramma. Se un parametro viene omesso, per questo parametro viene trasferito il valore standard "0". Per identificare in modo univoco la sequenza dei parametri occorre comunque specificare sempre le virgole come separatori dei parametri. Un'eccezione è costituita dall'ultimo parametro. Se questo viene omesso nel richiamo, anche l'ultima virgola può venire a mancare. Esempio: Sottoprogramma: Codice di programma Commento

PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Parametri formali: X, Y e Z

...

N100 RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 171

Programma principale: Codice di programma Commento

PROC MAIN_PROG

...

N30 SUB_PROG(1.0,2.0,3.0) ; Richiamo del sottoprogramma con trasferimento di parametri:

X=1.0, Y=2.0, Z=3.0

N100 M30

Esempi di richiamo di un sottoprogramma in N30 con trasferimento di parametri incompleto: N30 SUB_PROG( ,2.0,3.0) ; X=0.0, Y=2.0, Z=3.0 N30 SUB_PROG(1.0, ,3.0) ; X=1.0, Y=0.0, Z=3.0 N30 SUB_PROG(1.0,2.0) ; X=1.0, Y=2.0, Z=0.0 N30 SUB_PROG( , ,3.0) ; X=0.0, Y=0.0, Z=3.0 N30 SUB_PROG( , , ) ; X=0.0, Y=0.0, Z=0.0

CAUTELA Trasferimento di parametri Call-by-Reference I parametri trasferiti mediante Call-by-Reference non devono essere omessi nel richiamo del sottoprogramma.

CAUTELA Tipo di dati AXIS I parametri del tipo di dati AXIS non devono essere omessi nel richiamo del sottoprogramma.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 172 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Verifica dei parametri di trasferimento La variabile di sistema $P_SUBPAR [ n ] con n = 1, 2, ... consente di verificare nel sottoprogramma se un parametro è stato esplicitamente trasferito o omesso. L'indice n si riferisce alla sequenza dei parametri formali. L'indice n = 1 si riferisce al primo parametro formale, l'indice n = 2 al secondo parametro formale, ecc. La seguente sezione di programma mostra come si può realizzare una verifica ad es. per il primo parametro formale: Programmazione Commento

PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Parametri formali: X, Y e Z

N20 IF $P_SUBPAR[1]==TRUE ; Verifica del primo parametro formale X.

... ; Queste azioni vengono eseguite se il parametro formale X è stato trasferito in modo esplicito.

N40 ELSE

... ; Queste azioni vengono eseguite se il parametro formale X non è stato trasferito.

N60 ENDIF

... ; Azioni generali

N100 RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 173

1.25.2 Definizione di un sottoprogramma

1.25.2.1 Sottoprogramma senza trasferimento di parametri

Funzione Nella definizione dei sottoprogrammi senza trasferimento di parametri può venire a mancare la riga della definizione all'inizio del programma.

Sintassi [PROC <nome_programma>]

...

Significato PROC: Istruzione di definizione all'inizio di un programma <nome_programma>: Nome del programma

Esempio Esempio 1: Sottoprogramma con istruzione PROC Codice di programma Commento

PROC SUB_PROG ; Riga di definizione

N10 G01 G90 G64 F1000

N20 X10 Y20

...

N100 RET ; Ritorno al sottoprogramma

Esempio 2: Sottoprogramma senza istruzione PROC Codice di programma Commento

N10 G01 G90 G64 F1000

N20 X10 Y20

...

N100 RET ; Ritorno al sottoprogramma

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 174 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.2.2 Sottoprogramma con trasferimento di parametri Call-by-Value (PROC)

Funzione La definizione di un sottoprogramma con trasferimento di parametri Call-by-Value avviene con la parola chiave PROC, seguita dal nome del programma e da un elenco completo di tutti i parametri attesi dal sottoprogramma con tipo e nome. L'istruzione di definizione deve trovarsi nella prima riga del programma. Il trasferimento di parametri Call-by-Value non ha alcuna ripercussione sul programma richiamante. Il programma richiamante trasferisce al sottoprogramma solo i valori dei parametri attuali.

Nota Possono essere trasferiti al massimo 127 parametri.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 175

Sintassi PROC <nome_programma> (<tipo_parametro> <nome_parametro>, ...)

Significato PROC: Istruzione di definizione all'inizio di un programma <nome_programma>: Nome del programma <tipo_parametro>: Tipo di dati del parametro (ad es. REAL, INT, BOOL) <nome_parametro>: Nome del parametro

ATTENZIONE Il nome del programma specificato dopo la parola chiave PROC deve coincidere con il nome del programma assegnato sulla superficie operativa.

Esempio Definizione di un sottoprogramma con 2 parametri del tipo REAL: Codice di programma Commento

PROC SUB_PROG (REAL LAENGE, REAL BREITE) ; Parametro 1: Tipo: REAL, nome: LAENGE

Parametro 2: Tipo: REAL, nome: BREITE

...

N100 RET ; Ritorno al sottoprogramma

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 176 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.2.3 Sottoprogramma con trasferimento di parametri Call-by-Reference (PROC, VAR)

Funzione La definizione di un sottoprogramma con trasferimento di parametri Call-by-Reference avviene con la parola chiave PROC, seguita dal nome del programma e da un elenco completo di tutti i parametri attesi dal sottoprogramma con la parola chiave VAR, tipo e nome. L'istruzione di definizione deve trovarsi nella prima riga del programma. Nel trasferimento di parametri Call-by-Reference possono anche essere trasferiti riferimenti ai campi. Il trasferimento di parametri Call-by-Reference ha ripercussioni sul programma richiamante. Il programma richiamante trasferisce al sottoprogramma un riferimento al parametro attuale, consentendo così al sottoprogramma un accesso diretto alla variabile corrispondente.

Nota Possono essere trasferiti al massimo 127 parametri.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 177

Nota Un trasferimento di parametri Call-by-Reference è necessario solo se la variabile trasferita è stata definita nel programma richiamante (LUD). Le variabili globali a livello di canale o di NC non devono essere trasferite perché si può accedere a queste variabili anche direttamente dal sottoprogramma.

Sintassi PROC <nome_programma> (VAR <tipo_parametro> <nome_parametro>, ...) PROC <nome programma> (VAR <tipo_campo> <nome_campo> [<m>,<n>,<o>], ...)

Significato PROC: Istruzione di definizione all'inizio di un programma VAR: Parola chiave per il trasferimento di parametri per riferimento <nome_programma>: Nome del programma <tipo parametro>: Tipo di dati del parametro (ad es. REAL, INT, BOOL) <nome parametro>: Nome del parametro <tipo campo>: Tipo di dati degli elementi del campo (ad es. REAL, INT,

BOOL) <nome_campo>: Nome del campo

Dimensioni del campo Attualmente sono possibili al massimo campi tridimensionali: <m>: Dimensione del campo per la prima dimensione <n>: Dimensione del campo per la seconda dimensione

[<m>,<n>,<o>]:

<o>: Dimensione del campo per la terza dimensione

ATTENZIONE Il nome del programma specificato dopo la parola chiave PROC deve coincidere con il nome del programma assegnato sulla superficie operativa.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 178 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Con i campi di lunghezza non definita quali parametri formali, i sottoprogrammi possono elaborare campi di lunghezza variabile. Per questo, durante la definizione di un campo ad es. bidimensionale come parametro formale non viene indicata la lunghezza della prima dimensione. Tuttavia, la virgola deve essere scritta. Esempio: PROC <nome_programma> (VAR REAL FELD[ ,5])

Esempio Definizione di un sottoprogramma con 2 parametri come riferimento al tipo REAL:

Codice di programma Commento

PROC SUB_PROG(VAR REAL LAENGE, VAR REAL BREITE) ; Parametro 1: Riferimento al tipo: REAL, nome: LAENGE

Parametro 2: Riferimento al tipo: REAL, nome: BREITE

...

N100 RET

1.25.2.4 Salvataggio delle funzioni G modali (SAVE)

Funzione Attraverso l'attributo SAVE, le funzioni G modali attive prima del richiamo del sottoprogramma vengono salvate e riattivate al termine del sottoprogramma.

CAUTELA Funzionamento continuo senza interruzioni SAVE non deve essere utilizzato quando un funzionamento continuo è attivo e non deve essere interrotto dal richiamo del sottoprogramma.

Sintassi PROC <nome_sottoprogramma> SAVE

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 179

Significato SAVE: Salvataggio delle funzioni G modali prima del richiamo del sottoprogramma e

ripristino al termine del sottoprogramma

Esempio Nel sottoprogramma KONTUR (PROFILO) agisce la funzione G modale G91 (incrementi fissi). Nel programma principale agisce la funzione G modale G90 (incrementi fissi). Attraverso la definizione del sottoprogramma con SAVE, al termine del sottoprogramma nel programma principale è attiva di nuovo G90. Definizione del sottoprogramma: Codice di programma Commento

PROC KONTUR (REAL WERT1) SAVE ; Definizione del sottoprogramma con il parametro SAVE.

N10 G91 … ; Funzioni G modali G91: Incrementi fissi

N100 M17 ; Fine sottoprogramma

Programma principale: Codice di programma Commento

N10 G0 X… Y… G90 ; Funzioni G modali G90: Quota assoluta

N20…

...

N50 KONTUR (12.4) ; Richiamo sottoprogramma

N60 X… Y… ; Funzione G modale G90 riattivata con SAVE.

Condizioni marginali Frame Il comportamento di frame in riferimento ai sottoprogrammi con l'attributo SAVE dipende dal tipo di frame e può essere impostato tramite dato macchina.

Bibliografia Manuale di guida alle funzioni, Funzioni di base; Assi, sistemi di coordinate, frame (K2), capitolo: "Ritorno al sottoprogramma con SAVE"

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 180 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.2.5 Soppressione esecuzione blocco singolo (SBLOF, SBLON)

Funzione Soppressione blocco singolo per l'intero programma Con esecuzione blocco singolo attiva, i programmi contrassegnati con SBLOF vengono elaborati completamente come un blocco, ossia per tutto il programma l'esecuzione blocco singola viene soppressa. SBLOF si trova nella riga PROC e risulta valido fino alla fine o all'interruzione del sottoprogramma. Con il comando di ritorno si stabilisce se alla fine del sottoprogramma deve avvenire l'arresto oppure no. Ritorno con M17: arresto al termine del sottoprogramma Ritorno con RET: nessun arresto al termine del sottoprogramma

Soppressione blocco singolo all'interno del programma SBLOF deve essere presente solo nel blocco. A partire da questo blocco, il blocco singolo viene disattivato fino: ● al successivo comando SBLON

oppure ● alla fine del livello di sottoprogramma attivo

Sintassi Soppressione blocco singolo per l'intero programma: PROC ... SBLOF

Soppressione blocco singolo all'interno del programma: SBLOF

...

SBLON

Significato PROC: Prima istruzione di un programma SBLOF: Comando per la disattivazione dell'esecuzione blocco singolo

SBLOF può trovarsi in un blocco PROC o soltanto nel blocco. SBLON: Comando per l'attivazione dell'esecuzione blocco singolo

SBLON deve trovarsi in un proprio blocco.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 181

Condizioni marginali ● Soppressione blocco singolo e visualizzazione del blocco

La visualizzazione del blocco attuale può essere disattivata nei cicli/sottoprogrammi mediante DISPLOF. Se DISPLOF viene programmato assieme a SBLOF, in caso di arresto blocco singolo all'interno del ciclo/sottoprogramma continua ad essere visualizzato il richiamo del ciclo/sottoprogramma.

● Soppressione blocco singolo nell'ASUP sistema o ASUP utente Se l'arresto blocco singolo viene soppresso nell'ASUP sistema o utente attraverso le impostazioni nel dato macchina MD10702 $MN_IGNORE_SINGLEBLOCK_MASK (Bit0 = 1 o Bit1 = 1), l'arresto blocco singolo può essere riattivato attraverso la programmazione di SBLON nell'ASUP. Se l'arresto blocco singolo viene soppresso nell'ASUP utente tramite l'impostazione nel dato macchina MD20117 $MC_IGNORE_SINGLEBLOCK_ASUP, l'arresto blocco singolo non può essere riattivato attraverso la programmazione di SBLON nell'ASUP.

● Particolarità della soppressione blocco singolo nei diversi tipi di esecuzione blocco singolo Con esecuzione blocco singolo SBL2 attiva (arresto dopo ogni blocco del partprogram), nel blocco SBLON non viene effettuato l'arresto se nel dato macchina MD10702 $MN_IGNORE_SINGLEBLOCK_MASK (inibizione arresto blocco singolo) il bit 12 è impostato su "1". Con esecuzione blocco singolo SBL3 attiva (arresto dopo ogni blocco del partprogram anche nel ciclo), il comando SBLOF viene soppresso.

Esempi Esempio 1: Soppressione blocco singolo all'interno di un programma Codice di programma Commento

N10 G1 X100 F1000

N20 SBLOF ; Disattivare il blocco singolo

N30 Y20

N40 M100

N50 R10=90

N60 SBLON ; Riattivare il blocco singolo

N70 M110

N80 ...

La sezione tra N20 e N60 viene eseguita nel funzionamento blocco singolo come un passo.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 182 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: Ciclo che per l'utente deve avere l'effetto di un comando Programma principale: Codice di programma

N10 G1 X10 G90 F200

N20 X-4 Y6

N30 CYCLE1

N40 G1 X0

N50 M30

Ciclo CYCLE1: Codice di programma Commento

N100 PROC CYCLE1 DISPLOF SBLOF ; Soppressione blocco singolo

N110 R10=3*SIN(R20)+5

N120 IF (R11 <= 0)

N130 SETAL(61000)

N140 ENDIF

N150 G1 G91 Z=R10 F=R11

N160 M17

Il ciclo CYCLE1 viene elaborato con esecuzione blocco singolo attiva, per l'esecuzione del CYCLE1 è necessario quindi premere una volta il tasto di start.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 183

Esempio 3: Un ASUP avviato dal PLC per l'attivazione di spostamento origine e correzioni utensile modificati non deve essere visibile. Codice di programma N100 PROC NV SBLOF DISPLOF N110 CASE $P_UIFRNUM OF 0 GOTOF _G500 1 GOTOF _G54 2 GOTOF _G55 3 GOTOF _G56 4 GOTOF _G57 DEFAULT GOTOF END N120 _G54: G54 D=$P_TOOL T=$P_TOOLNO N130 RET N140 _G54: G55 D=$P_TOOL T=$P_TOOLNO N150 RET N160 _G56: G56 D=$P_TOOL T=$P_TOOLNO N170 RET N180 _G57: G57 D=$P_TOOL T=$P_TOOLNO N190 RET N200 END: D=$P_TOOL T=$P_TOOLNO N210 RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 184 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 4: Con dato macchina MD10702 bit 12 = 1 non si verifica l'arresto Situazione iniziale: ● Esecuzione blocco singolo attiva. ● MD10702 $MN_IGNORE_SINGLEBLOCK_MASK Bit12 = 1 Programma principale: Codice di programma Commento

N10 G0 X0 ; Arresto in questa riga del partprogram.

N20 X10 ; Arresto in questa riga del partprogram.

N30 CYCLE ; Blocco di movimento generato dal ciclo.

N50 G90 X20 ; Arresto in questa riga del partprogram.

M30

Ciclo CYCLE: Codice di programma Commento

PROC CYCLE SBLOF ; Soppressione arresto blocco singolo

N100 R0 = 1

N110 SBLON ; A causa del dato macchina MD10702 bit 12= 1, in questa riga del partprogram non si verifica l'arresto.

N120 X1 ; In questa riga del partprogram si verifica l'arresto.

N140 SBLOF

N150 R0 = 2

RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 185

Esempio 5: Soppressione blocco singolo con annidamento del programma Situazione iniziale: Esecuzione blocco singolo attiva. Annidamento del programma: Codice di programma Commento

N10 X0 F1000 ; In questo blocco si verifica l'arresto.

N20 UP1(0)

PROC UP1(INT _NR) SBLOF ; Soppressione arresto blocco singolo.

N100 X10

N110 UP2(0)

PROC UP2(INT _NR)

N200 X20

N210 SBLON ; Attivazione arresto blocco singolo.

N220 X22 ; In questo blocco si verifica l'arresto.

N230 UP3(0)

PROC UP3(INT _NR)

N300 SBLOF ; Soppressione arresto blocco singolo.

N305 X30

N310 SBLON ; Attivazione arresto blocco singolo.

N320 X32 ; In questo blocco si verifica l'arresto.

N330 SBLOF ; Soppressione arresto blocco singolo.

N340 X34

N350 M17 ; SBLOF è attivo.

N240 X24 ; In questo blocco si verifica l'arresto. SBLON è attivo.

N250 M17 ; In questo blocco si verifica l'arresto. SBLON è attivo.

N120 X12

N130 M17 ; In questo blocco di ritorno si verifica l'arresto. SBLOF dell'istruzione PROC è attivo.

N30 X0 ; In questo blocco si verifica l'arresto.

N40 M30 ; In questo blocco si verifica l'arresto.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 186 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Disattivazione del blocco singolo per sottoprogrammi asincroni Per elaborare un ASUP in un passo, è necessario che nell'ASUP venga programmata un'istruzione PROC con SBLOF. Ciò vale anche per la funzione "ASUP sistema editabile" (MD11610 $MN_ASUP_EDITABLE). Esempio di ASUP sistema editabile: Codice di programma Commento

N10 PROC ASUP1 SBLOF DISPLOF

N20 IF $AC_ASUP=='H200'

N30 RET ; Nessun REPOS al cambio di modo operativo.

N40 ELSE

N50 REPOSA ; REPOS in tutti gli altri casi.

N60 ENDIF

Influenze sul programma in blocco singolo Nell'esecuzione blocco singolo, l'utente può utilizzare il partprogram blocco a blocco. Sono possibili i seguenti tipi di impostazione: ● SBL1: blocco singolo IPO con stop dopo ogni blocco contenente funzioni di macchina. ● SBL2: blocco singolo IPO con stop dopo ogni blocco. ● SBL3: arresto in ciclo (selezionando SBL3 viene disattivata l'istruzione SBLOF). Soppressione blocco singolo nell'annidamento programmi Se in un sottoprogramma è stato programmato SBLOF nell'istruzione PROC, si verifica l'arresto sul ritorno al sottoprogramma con M17. In questo modo si evita che nel programma che ha eseguito il richiamo possa essere eseguito subito il blocco successivo. Se in un sottoprogramma viene attivata la soppressione blocco singolo con SBLOF, senza SBLOF nell'istruzione PROC, l'arresto si verifica soltanto dopo il primo blocco funzione della macchina del programma da cui si effettua il richiamo. Se non si desidera che ciò accada, è necessario programmare nuovamente nel sottoprogramma SBLON ancora prima che sia effettuato il ritorno (M17). In caso di ritorno con RET in un programma sovraordinato, non si verifica l'arresto.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 187

1.25.2.6 Disattivazione della visualizzazione del blocco attuale (DISPLOF, DISPLON, ACTBLOCNO)

Funzione Nella visualizzazione del blocco viene di norma mostrato il blocco di programma attivo al momento. Nei cicli o sottoprogrammi la visualizzazione del blocco attuale può essere disattivata con il comando DISPLOF. Al posto del blocco attuale viene visualizzato il richiamo del ciclo o del sottoprogramma. Il comando DISPLON consente di eliminare la soppressione della visualizzazione del blocco. DISPLOF o DISPLON viene programmato con l'istruzione PROC nella riga del programma, è attivo per l'intero sottoprogramma e implicitamente per tutti i sottoprogrammi richiamati a partire da questo sottoprogramma che non contengono un comando DISPLON o DISPLOF. Questo comportamento vale anche per gli ASUP.

Sintassi PROC … DISPLOF PROC … DISPLOF ACTBLOCNO PROC … DISPLON

Significato

Comando per la disattivazione della visualizzazione del blocco attuale. Posizionamento: Alla fine della riga di programma con l'istruzione PROCAttivazione: Fino al ritorno dal sottoprogramma o alla fine del

programma.

DISPLOF:

Nota: Se dal sottoprogramma vengono richiamati con il comando DISPLOF altri sottoprogrammi, la visualizzazione del blocco attuale viene disattivata anche in questi ultimi, a meno che non sia programmato esplicitamente DISPLON.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 188 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Comando per la rimozione della soppressione della visualizzazione del blocco attuale Posizionamento: Alla fine della riga di programma con l'istruzione PROCAttivazione: Fino al ritorno dal sottoprogramma o alla fine del

programma.

DISPLON:

Nota: Se dal sottoprogramma vengono richiamati con il comando DISPLON altri sottoprogrammi, il blocco di programma attuale viene visualizzato anche in questi ultimi, a meno che non sia programmato esplicitamente DISPLOF.

ACTBLOCNO: DISPLOF, unitamente all'attributo ACTBLOCNO, fa sì che in caso di allarme venga emesso il numero del blocco attuale nel quale si è verificato l'allarme. Questo vale anche nel caso in cui in un livello di programma inferiore sia programmato solo DISPLOF. Con DISPLOF senza ACTBLOCNO, al contrario, viene visualizzato il numero di blocco del richiamo del ciclo o del sottoprogramma dall'ultimo livello di programma non contrassegnato con DISPLOF.

Esempi Esempio 1: Disattivazione della visualizzazione del blocco attuale nel ciclo

Codice di programma Commento

PROC CYCLE (AXIS TOMOV, REAL POSITION) SAVE DISPLOF ; Disattivazione della visualizzazione del blocco attuale. Al suo posto va visualizzato il richiamo del ciclo, ad es.: CYCLE(X,100.0)

DEF REAL DIFF ; Contenuto cicli

G01 ...

...

RET ; Ritorno al sottoprogramma. Nella visualizzazione del blocco viene mostrato il blocco che fa seguito al richiamo del ciclo.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 189

Esempio 2: Visualizzazione del blocco durante l'emissione dell'allarme Sottoprogramma SUBPROG1 (con ACTBLOCNO): Codice di programma Commento

PROC SUBPROG1 DISPLOF ACTBLOCNO

N8000 R10 = R33 + R44

...

N9040 R10 = 66 X100 ; Attivazione dell'allarme 12080

...

N10000 M17

Sottoprogramma SUBPROG2 (senza ACTBLOCNO): Codice di programma Commento

PROC SUBPROG2 DISPLOF

N5000 R10 = R33 + R44

...

N6040 R10 = 66 X100 ; Attivazione dell'allarme 12080

...

N7000 M17

Programma principale: Codice di programma Commento

N1000 G0 X0 Y0 Z0

N1010 ...

...

N2050 SUBPROG1 ; Emissione dell'allarme = "12080 canale K1 blocco N9040 Errore di sintassi nel testo R10="

N2060 ...

N2350 SUBPROG2 ; Emissione dell'allarme = "12080 canale K1 blocco N2350 Errore di sintassi nel testo R10="

...

N3000 M30

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 190 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 3: Rimozione della soppressione della visualizzazione del blocco attuale Sottoprogramma SUB1 con soppressione della visualizzazione: Codice di programma Commento

PROC SUB1 DISPLOF ; Soppressione della visualizzazione del blocco attuale nel sottoprogramma SUB1. Al suo posto deve essere visualizzato il blocco con il richiamo SUB1.

...

N300 SUB2 ; Richiamare il sottoprogramma SUB2.

...

N500 M17

Sottoprogramma SUB2 senza soppressione della visualizzazione: Codice di programma Commento

PROC SUB2 DISPLON ; Rimozione della soppressione della visualizzazione del blocco attuale nel sottoprogramma SUB2.

...

N200 M17 ; Ritorno al sottoprogramma SUB1. In SUB1 la visualizzazione del blocco attuale viene nuovamente soppressa.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 191

Esempio 4: Comportamento di visualizzazione con combinazioni diverse di DISPLON/DISPLOF

① Nella visualizzazione del blocco attuale vengono visualizzate le righe del partprogram dal livello di programma 0. ② Nella visualizzazione del blocco attuale vengono visualizzate le righe del partprogram dal livello di programma 3. ③ Nella visualizzazione del blocco attuale vengono visualizzate le righe del partprogram dal livello di programma 3. ④ Nella visualizzazione del blocco attuale vengono visualizzate le righe del partprogram dal livello di programma 7/8.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 192 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.2.7 Identificazione di sottoprogrammi con preparazione (PREPRO)

Funzione Con la parola chiave PREPRO durante l'avviamento alla fine della riga di istruzioni PROC è possibile contrassegnare tutti i dati.

Nota Questo tipo di preparazione dipende dal corrispondente dato macchina impostato. Rispettare le indicazioni fornite dal costruttore della macchina. Bibliografia: Manuale di guida alle funzioni, Funzioni speciali; Preelaborazione (V2)

Sintassi PROC … PREPRO

Significato PREPRO: Parola chiave per l'identificazione di tutti i file preparati al caricamento, dei

programmi NC salvati nelle directory dei cicli

Lettura dei sottoprogrammi con preparazione e chiamata ai sottoprogrammi Sia durante l'avviamento dei sottoprogrammi predisposti con parametri, sia durante la chiamata ai sottoprogrammi, gli elenchi dei cicli vengono trattati nella stessa sequenza: 1. _N_CUS_DIR cicli utente 2. _N_CMA_DIR cicli costruttore 3. _N_CST_DIR cicli standard In caso di programmi NC con lo stesso nome e di diverso tipo, viene attivata la prima istruzione PROCtrovata e l'altra istruzione PROC viene ignorata senza messaggio di allarme.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 193

1.25.2.8 Ritorno al sottoprogramma M17

Funzione Alla fine di un sottoprogramma si trova il comando di ritorno M17 (oppure il comando di fine partprogram M30). Esso provoca il ritorno al programma richiamante nel blocco di partprogram successivo al richiamo del sottoprogramma.

Nota M17 e M30 vengono trattati in modo equivalente nel linguaggio NC.

Sintassi PROC <nome_programma>

...

M17/M30

Condizioni marginali Effetto del ritorno al sottoprogramma sul funzionamento continuo Se M17 (oM30) si trova da solo nel blocco del partprogram, un funzionamento continuo attivo nel canale viene interrotto. Per evitare che il funzionamento continuo venga interrotto, M17 (o M30) deve essere scritto nell'ultimo blocco di movimento. Inoltre il seguente dato macchina deve essere impostato a "0": MD20800 $MC_SPF_END_TO_VDI = 0 (nessuna emissione di M30/M17 all'interfaccia NC/PLC)

Esempio 1. sottoprogramma con M17 in blocco a sé stante Codice di programma Commento

N10 G64 F2000 G91 X10 Y10

N20 X10 Z10

N30 M17 ; Ritorno con interruzione del funzionamento continuo.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 194 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

2. sottoprogramma con M17 nell'ultimo blocco di movimento Codice di programma Commento

N10 G64 F2000 G91 X10 Y10

N20 X10 Z10 M17 ; Ritorno senza interruzione del funzionamento continuo.

1.25.2.9 Ritorno al sottoprogramma RET

Funzione In sostituzione del comando di ritorno M17, nel sottoprogramma si può anche utilizzare il comando RET. RET deve essere programmato in un blocco a sé stante del partprogram. Come M17, RET provoca il ritorno al programma richiamante nel blocco di partprogram successivo al richiamo del sottoprogramma.

Nota Con la programmazione dei parametri è possibile modificare il comportamento di ritorno di RET (vedere "Ritorno al sottoprogramma parametrizzabile (RET ...) (Pagina 195)").

Applicazione L'istruzione RET deve essere utilizzata se un funzionamento continuo G64 (G641 ... G645) non deve essere interrotto dallo spostamento a ritroso.

Presupposti Il presupposto per l'utilizzo di RET è che il sottoprogramma non possieda un attributo SAVE.

Sintassi PROC <nome_programma>

...

RET

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 195

Esempio Programma principale: Codice di programma Commento

PROC MAIN_PROGRAM ; Inizio del programma

...

N50 SUB_PROG ; Richiamo di sottoprogramma: SUB_PROG

N60 ...

...

N100 M30 ; Fine programma

Sottoprogramma: Codice di programma Commento

PROC SUB_PROG

...

N100 RET ; Il ritorno avviene al blocco N60 del programma principale.

1.25.2.10 Ritorno al sottoprogramma parametrizzabile (RET ...)

Funzione Con una fine di sottoprogramma quale RET o M17, in generale si ritorna da un sottoprogramma al programma dal quale è stato richiamato il sottoprogramma e la lavorazione viene proseguita con la riga di programma successiva al richiamo del sottoprogramma. Oltre a ciò sono presenti anche casi applicativi nei quali la lavorazione del programma deve essere proseguita in un altro punto, ad es.: ● prosecuzione della lavorazione del programma in seguito al richiamo dei cicli di

sgrossatura nella modalità di linguaggio ISO (descrizione del profilo). ● Ritorno al programma principale da un qualsiasi livello di sottoprogramma (anche dopo

ASUP) nella gestione errori. ● Ritorno attraverso più livelli di programma per applicazioni speciali in cicli Compile e in

modalità di linguaggio ISO. In questi casi, il comando RET viene programmato assieme ai "Parametri di ritorno".

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 196 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi RET("<blocco_destinazione>") RET("<blocco_destinazione>", <blocco_verso_blocco_destinazione>) RET("<blocco_destinazione>",<Blocco verso blocco di destinazione>,<numero_livelli_ritorno>) RET("<blocco_destinazione>", , <numero_livelli_ritorno>) RET("<blocco_destinazione>",<blocco_verso_blocco_destinazione>,<numero_livelli_ritorno>, <ritorno_a_inizio_programma>) RET( , ,<numero_livelli_ritorno>,<ritorno_a_inizio_programma>)

Significato RET: Fine del sottoprogramma (utilizzo al posto di M17)

Parametro di ritorno 1 Definisce come destinazione del salto il blocco su cui deve essere proseguita la lavorazione del programma. Se il parametro di ritorno 3 non è programmato, la destinazione del salto viene a trovarsi nel programma dal quale è stato richiamato il sottoprogramma corrente. I possibili dati sono i seguenti: "<numero_blocco>" Numero del blocco di destinazione "<etichetta_salto>" Etichetta di salto che deve essere

impostata nel blocco di destinazione.

<blocco_destinazione>:

"<stringa_caratteri>" Stringa di caratteri che deve essere nota nel programma (ad es. nome del programma o della variabile). Per la programmazione della stringa di caratteri nel blocco di destinazione sono valide le seguenti regole: • Spazio vuoto alla fine (a

differenza dell'etichetta di salto, contrassegnata alla fine con ":").

• A monte della stringa di caratteri possono essere impostati soltanto un numero di blocco e/o un'etichetta di salto, ma non comandi di programma.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 197

Parametro di ritorno 2 Si riferisce al parametro di ritorno 1. Tipo: INT

0 Il ritorno si verifica sul blocco indicato con il parametro di ritorno 1.

<blocco_verso_blocco_ destinazione>:

Valore:

> 0 Il ritorno si verifica sul blocco successivo al blocco indicato con il parametro di ritorno 1.

Parametro di ritorno 3 Indica il numero di livelli di cui si deve retrocedere per poter ritornare al livello di programma nel quale deve essere proseguita la lavorazione del programma. Tipo: INT

1 Il programma viene proseguito nel "livello di programma attuale - 1" (come RET senza parametro).

2 Il programma viene proseguito nel "livello di programma attuale - 2" saltando quindi un livello.

3 Il programma viene proseguito nel "livello di programma attuale - 3" saltando quindi due livelli.

Valore:

...

<numero_ livelli_ritorno>:

Campo dei valori: 1 ... 15 Parametro di ritorno 4 Tipo: BOOL

<Ritorno all'inizio del programma>:

Valore: 1 Se si verifica il ritorno al programma principale e in esso è attiva una modalità di linguaggio ISO, ha luogo una diramazione all'inizio del programma.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 198 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota In caso di ritorno al sottoprogramma con una sequenza di caratteri quale indicazione per la ricerca del blocco di destinazione, nel programma da cui si effettua il richiamo viene sempre eseguita prima la ricerca di un'etichetta di salto. Se una destinazione di salto deve essere definita in modo univoco attraverso una sequenza di caratteri, la sequenza stessa non dovrà allora coincidere con il nome di un'etichetta di salto, poiché altrimenti il ritorno al sottoprogramma verrà eseguito sempre sull'etichetta di salto e non sulla sequenza di caratteri (ved. esempio 2).

Condizioni marginali In caso di ritorno attraverso più livelli di programma, vengono analizzate le istruzioni SAVE dei singoli livelli di programma. Se in caso di ritorno attraverso più livelli di programma è attivo un sottoprogramma modale e se in uno dei programmi saltati è programmato il comando di deselezione MCALL per il sottoprogramma modale, il sottoprogramma modale rimane attivo.

CAUTELA Il programmatore deve prestare attenzione al fatto che durante il ritorno attraverso più livelli di programma la prosecuzione deve rispettare le impostazioni modali corrette. Ciò è possibile ad esempio programmando un blocco principale corrispondente.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 199

Esempi Esempio 1: Risincronizzazione nel programma principale dopo l'elaborazione di un ASUP Programmazione Commento

N10010 CALL "UP1" ; Livello di programma 0 (programma principale)

N11000 PROC UP1 ; Livello di programma 1

N11010 CALL "UP2"

N12000 PROC UP2 ; Livello di programma 2

...

N19000 PROC ASUP ; Livello di programma 3 (elaborazione di un ASUP)

...

N19100 RET("N10900", ,$P_STACK) ; Ritorno al sottoprogramma

N10900 ; Ritorno al programma principale

N10910 MCALL ; Disabilitazione del sottoprogramma modale.

N10920 G0 G60 G40 M5 ; Correzione di ulteriori impostazioni modali.

Esempio 2: Sequenza di caratteri (<Stringa>) quale indicazione per la ricerca del blocco di destinazione Programma principale: Codice di programma Commento

PROC MAIN_PROGRAM

N1000 DEF INT iVar1=1, iVar2=4

N1010 ...

N1200 subProg1 ; Richiamo del sottoprogramma "subProg1"

N1210 M2 S1000 X10 F1000

N1220 ......

N1400 subProg2 ; Richiamo del sottoprogramma "subProg2"

N1410 M3 S500 Y20

N1420 ..

N1500 lab1: iVar1=R10*44

N1510 F500 X5

N1520 ...

N1550 subprog1: G1 X30 ; "subProg1" è qui definito come etichetta di salto.

N1560 ...

N1600 subProg3 Richiamo del sottoprogramma "subProg3"

N1610 ...

N1900 M30

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 200 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sottopogramma subProg1: Codice di programma Commento

PROC subProg1

N2000 R10=R20+100

N2010 ...

N2200 RET("subProg2") ; Ritorno al programma principale sul blocco N1400

Sottopogramma subProg2: Codice di programma Commento

PROC subProg2

N2000 R10=R20+100

N2010 ...

N2200 RET("iVar1") ; Ritorno al programma principale sul blocco N1500

Sottopogramma subProg3: Codice di programma Commento

PROC subProg3

N2000 R10=R20+100

N2010 ...

N2200 RET("subProg1") ; Ritorno al programma principale sul blocco N1550

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 201

Ulteriori informazioni Le figure che seguono hanno lo scopo di illustrare i diversi effetti dei parametri di ritorno da 1 a 3. 1. parametro di ritorno 1= "N200", parametro di ritorno 2 = 0

Dopo il comando RET, la lavorazione del programma viene proseguita con il blocco N200 nel programma principale.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 202 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

2. parametro di ritorno 1= "N200", parametro di ritorno 2 = 1

Dopo il comando RET, la lavorazione del programma viene proseguita con il blocco (N210), che fa seguito al blocco N200 nel programma principale. 3. parametro di ritorno 1 = "N200", parametro di ritorno 3 = 2

Dopo il comando RET, si torna indietro di due livelli di programma e la lavorazione del programma viene proseguita con il blocco N220.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 203

1.25.3 Richiamo di un sottoprogramma

1.25.3.1 Richiamo del sottoprogramma senza assegnazione di parametri

Funzione Il richiamo di un sottoprogramma avviene con indirizzo L e numero del sottoprogramma oppure specificando il nome del programma. Anche un programma principale può essere richiamato come un sottoprogramma. In questo caso la fine programma M2 o M30 impostata nel programma principale viene valutata come se si trattasse di M17 (fine programma con ritorno al programma che l'ha richiamato).

Nota Analogamente, un sottoprogramma può essere avviato anche come un programma principale. Strategia di ricerca del controllo numerico: Esiste *_MPF ? Esiste *_SPF ? Ne consegue: se il nome del sottoprogramma da richiamare è identico a quello del programma principale, viene richiamato nuovamente il programma principale. Per evitare questo inconveniente occorre attribuire ai sottoprogrammi e programmi principali nomi univoci.

Nota I sottoprogrammi che non richiedono trasmissione di parametri possono essere richiamati anche da un file di inizializzazione.

Sintassi L<numero>/<nome_programma>

Nota Il richiamo di un sottoprogramma deve essere sempre programmato in un blocco NC a sé stante.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 204 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato L: Indirizzo per il richiamo del sottoprogramma

Numero del sottoprogramma Tipo: INT

<numero>:

Valore: Massimo 7 cifre decimali Attenzione: per l'assegnazione del nome, gli zero in prima posizione sono significativi (⇒ L123, L0123 e L00123 sono tre sottoprogrammi diversi).

<nome_programma>: Nome del sottoprogramma (o del programma principale)

Esempi Esempio 1: Richiamo di un sottoprogramma senza assegnazione di parametri

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 205

Esempio 2: Richiamo di un programma principale come sottoprogramma

1.25.3.2 Richiamo del sottoprogramma con assegnazione di parametri (EXTERN)

Funzione In caso di richiamo del sottoprogramma con assegnazione di parametri è possibile assegnare direttamente variabili o valori (non per i parametri VAR). I sottoprogrammi con assegnazione di parametri devono essere contrassegnati con EXTERN prima del richiamo nel programma principale (ad es. all'inizio del programma). Vengono impostati il nome del sottoprogramma ed i tipi delle variabili nella sequenza dell'assegnazione.

CAUTELA Sia i tipi di variabile sia la sequenza dell'assegnazione devono coincidere con le definizioni che sono state stabilite nel sottoprogramma sotto PROC. I nomi dei parametri nel programma principale e nel sottoprogramma possono essere diversi.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 206 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi EXTERN <nome_programma>(<Tipo_Par1>,<Tipo_Par2>,<Tipo_Par3>)

...

<nome_programma>(<valore_Par1>,<valore_Par2>,<valore_Par3>)

CAUTELA il richiamo del sottoprogramma deve essere sempre programmato in un blocco NC a sé stante.

Significato <nome_programma>: Nome del sottoprogramma EXTERN: Parola chiave per l'identificazione di un

sottoprogramma con assegnazione di parametri. Nota: EXTERN deve essere impostato solo se il sottoprogramma si trova nella directory pezzo o nella directory globale dei sottoprogrammi. I cicli non devono essere definiti con EXTERN.

<Tipo_par1>,<tipo_par2>,<tipo_par3>: Tipi di variabili dei parametri da assegnare nella sequenza di assegnazione

<valore_par1>,<valore_par2>, <valore_par3>:

Valori di variabili per i parametri da assegnare

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 207

Esempi Esempio 1: Richiamo di un sottoprogramma con notifica preventiva Codice di programma Commento

N10 EXTERN CORNICE (REAL,REAL,REAL) ; Indicazione del sottoprogramma.

...

N40 CORNICE(15.3,20.2,5) ; Richiamo del sottoprogramma con assegnazione di parametri.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 208 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: Richiamo di un sottoprogramma senza notifica Codice di programma Commento

N10 DEF REAL LUNGHEZZA, LARGHEZZA, PROFONDITA'

N20 …

N30 LUNGHEZZA=15.3,LARGHEZZA=20.2, PROFONDITÀ=5

N40 CORNICE(LUNGHEZZA,LARGHEZZA,PROFONDITÀ) ; oppure: N40 CORNICE(15.3,20.2,5)

1.25.3.3 Numero di ripetizioni del programma (P)

Funzione Se si vuole eseguire più volte in sequenza un sottoprogramma, nel blocco contenente il richiamo del sottoprogramma è possibile programmare sotto l'indirizzo P il numero di ripetizioni del programma desiderato.

CAUTELA Richiamo del sottoprogramma con ripetizione del programma e trasferimento dei parametri I parametri vengono trasferiti solo al momento del richiamo del programma oppure alla prima ripetizione. Per le ripetizioni successive i parametri restano invariati. Se si desidera modificare i parametri nelle ripetizioni del programma, occorre effettuare le impostazioni corrispondenti nel sottoprogramma.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 209

Sintassi <nome_programma> P<valore>

Significato <nome_programma>: Richiamo di sottoprogramma P: Indirizzo per la programmazione di ripetizioni del programma

Numero di ripetizioni del programma Tipo: INT

<valore>:

Campo dei valori: 1 … 9999 (senza segno)

Esempio Codice di programma Commento

...

N40 TELAIO P3 ; Il sottoprogramma CORNICE deve essere eseguito tre volte in sequenza.

...

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 210 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.4 Richiamo sottoprogramma modale (MCALL)

Funzione In caso di richiamo modale del sottoprogramma con MCALL, il sottoprogramma viene richiamato ed eseguito automaticamente con movimento vettoriale dopo ogni blocco. In tal modo è possibile automatizzare il richiamo di sottoprogrammi che devono essere eseguiti in diverse posizioni del pezzo (ad esempio per la creazione di dime di foratura). La funzione viene disattivata tramite MCALL senza richiamo del sottoprogramma oppure programmando un nuovo richiamo modale del sottoprogramma per un nuovo sottoprogramma.

CAUTELA Nell'esecuzione di un programma può essere attivo contemporaneamente un solo richiamo MCALL. I parametri vengono trasferiti una sola volta durante il richiamo MCALL. Il sottoprogramma modale viene richiamato nelle seguenti situazioni anche senza la programmazione di un movimento: • Durante la programmazione degli indirizzi S e F se G0 o G1 risultano attivi; • Se G0/G1 è stato programmato solo nel blocco oppure con altri codici G.

Sintassi MCALL <nome_programma>

Significato MCALL: Comando per il richiamo modale del sottoprogramma <nome_programma>: Nome del sottoprogramma

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 211

Esempi Esempio 1: Codice di programma Commento

N10 G0 X0 Y0

N20 MCALL L70 ; Richiamo sottoprogramma modale.

N30 X10 Y10 ; La posizione programmata viene raggiunta e quindi viene eseguito il sottoprogramma L70.

N40 X50 Y50 ; La posizione programmata viene raggiunta e quindi viene eseguito il sottoprogramma L70.

Esempio 2: Codice di programma

N10 G0 X0 Y0

N20 MCALL L70

N30 L80

In questo esempio, i blocchi NC seguenti e la programmazione degli assi di contornitura, si trovano nel sottoprogramma L80. L70 viene richiamato da L80.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 212 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.5 Richiamo indiretto di sottoprogramma (CALL)

Funzione A seconda delle condizioni assegnate può anche essere possibile richiamare diversi sottoprogrammi. A questo scopo in una variabile del tipo STRING va deposto il nome del sottoprogramma. Il richiamo del sottoprogramma viene effettuato con CALL e il nome della variabile.

CAUTELA Possono essere richiamati indirettamente soltanto sottoprogrammi senza assegnazione di parametri. Per il richiamo diretto di un sottoprogramma, memorizzare il nome in una costante STRING.

Sintassi CALL <nome_programma>

Significato CALL: Comando per il richiamo indiretto del sottoprogramma <nome_programma>: Nome del sottoprogramma (variabile o costante) Tipo: STRING

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 213

Esempio Richiamo diretto con costante STRING: Codice di programma Commento

CALL "/_N_WKS_DIR/_N_SUBPROG_WPD/_N_PEZZO1_SPF" ; Richiamo diretto del sottoprogramma PEZZO1 con CALL

Richiamo indiretto tramite variabile: Codice di programma Commento

DEF STRING[100] PROGNAME ; Definizione della variabile.

PROGNAME="/_N_WKS_DIR/_N_SUBPROG_WPD/_N_PEZZO1_SPF" ; Assegnazione del sottoprogramma PEZZO1 alla variabile PROGNAME.

CALL PROGNAME ; Richiamo indiretto del sottoprogramma PEZZO1 tramite CALL e variabile PROGNAME.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 214 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.6 Richiamo indiretto del sottoprogramma con indicazione della parte di programma da eseguire (CALL BLOCK ... TO ...)

Funzione Con CALL e la combinazione di parole chiave BLOCK ... TO, viene richiamato un sottoprogramma in maniera indiretta ed eseguita la parte di programma contrassegnata con Startlabel e Endlabel.

Sintassi CALL <nome programma> BLOCK <startlabel> TO <endlabel> CALL BLOCK <startlabel> TO <endlabel>

Significato CALL: Comando per il richiamo indiretto del sottoprogramma

Nome del sottoprogramma (variabile o costante) contenente la parte di programma da elaborare (indicazione opzionale).

<nome_programma>:

Tipo: STRING Nota:

Se non è programmato alcun <nome programma>, la parte di programma contrassegnata con <startlabel> e <endlabel> viene ricercata ed eseguita nel programma corrente.

BLOCK ... TO ...: Combinazione di parole chiave per l'esecuzione indiretta della parte di programma Variabile che rimanda all'inizio della parte di programma da eseguire.

<startlabel>:

Tipo: STRING Variabile che rimanda alla fine della parte di programma da eseguire.

<endlabel>:

Tipo: STRING

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 215

Esempio Programma principale: Codice di programma Commento

...

DEF STRING[20] STARTLABEL, ENDLABEL ; Definizione della variabile per startlabel ed endlabel.

STARTLABEL="LABEL_1"

ENDLABEL="LABEL_2"

...

CALL "CONTUR_1" BLOCK STARTLABEL TO ENDLABEL ... ; Richiamo indiretto di un sottoprogramma e indicazione della parte di programma da eseguire.

...

Sottoprogramma: Codice di programma Commento

PROC CONTUR_1 ...

LABEL_1 ; Startlabel: inizio dell'esecuzione del programma

N1000 G1 ...

...

LABEL_2 ; Endlabel: fine dell'esecuzione della parte di programma

...

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 216 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.7 Richiamo indiretto di un programma programmato in linguaggio ISO (ISOCALL)

Funzione Con il richiamo indiretto del programma ISOCALL, è possibile richiamare un programma programmato in un linguaggio ISO. In tal caso viene attivata la modalità ISO impostata nei dati macchina. Alla fine del programma ritorna attiva la modalità di elaborazione originale. Se nei dati macchina non è impostata alcuna modalità ISO, il richiamo del sottoprogramma viene effettuato in modalità Siemens. Per ulteriori informazioni sulla modalità ISO, vedere: Bibliografia: Descrizione delle funzioni, Linguaggi ISO

Sintassi ISOCALL <nome programma>

Significato ISOCALL: Parola chiave per il richiamo indiretto del sottoprogramma con il

quale viene attivata la modalità ISO impostata nei dati macchina <nome_programma>: Nome del programma programmato in un linguaggio ISO

(variabile o costante di tipo STRING)

Esempio: Richiamo di un profilo con programmazione dei cicli dalla modalità ISO Codice di programma Commento

0122_SPF ; Descrizione del profilo in modalità ISO

N1010 G1 X10 Z20

N1020 X30 R5

N1030 Z50 C10

N1040 X50

N1050 M99

N0010 DEF STRING[5] PROGNAME = "0122" ; Partprogram Siemens (ciclo)

...

N2000 R11 = $AA_IW[X]

N2010 ISOCALL PROGNAME

N2020 R10 = R10+1 ; Esecuzione del programma 0122.spf in modalità ISO

...

N2400 M30

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 217

1.25.3.8 Richiamo sottoprogramma con indicazione del percorso e parametri (PCALL)

Funzione Con PCALL è possibile richiamare sottoprogrammi con indicazione del percorso e assegnazione di parametri assolute.

Sintassi PCALL <Percorso/Nome programma>(<Parametro 1>,…,<Parametro n>)

Significato PCALL: Parola chiave per il richiamo di un sottoprogramma con

indicazione assoluta del percorso. <percorso/nome programma>:

Indicazione assoluta delle percorso iniziante con "/", compresi i nomi dei sottoprogrammi. Se non è stato indicato alcun percorso assoluto, PCALL si comporta come richiamo di sottoprogramma standard con identificatore programma. L'identificatore programma viene indicato senza intestazione _N_ e senza estensione. Se il nome del programma deve essere programmato con intestazione ed estensione, deve essere dichiarato in maniera esplicita unitamente all'intestazione e all'estensione attraverso il comando EXTERN.

<parametro 1>, ...: Parametro attuale corrispondente all'istruzione PROC del sottoprogramma.

Esempio Codice di programma

PCALL/_N_WKS_DIR/_N_WELLE_WPD/WELLE(parameter1,parameter2,…)

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 218 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.9 Estensione del percorso di ricerca nei richiami di sottoprogrammi (CALLPATH)

Funzione Con il comando CALLPATH è possibile estendere il percorso di ricerca per i richiami di sottoprogrammi. In questo modo è possibile richiamare anche sottoprogrammi da una directory pezzo non selezionata, senza dover indicare il nome del percorso completo e assoluto del sottoprogramma. L'estensione del percorso di ricerca va effettuata prima della voce per i cicli utente (_N_CUS_DIR). Attraverso i seguenti eventi, viene nuovamente disattivata l'estensione del percorso di ricerca: ● CALLPATH con spazio ● CALLPATH senza parametri ● Fine del partprogram ● Reset

Sintassi CALLPATH("<Nome percorso>")

Significato CALLPATH: Parola chiave per l'estensione del percorso di ricerca programmabile.

Viene programmata in una propria riga del partprogram. <Percorso>: Costante o variabile di tipo STRING. Contiene l'indicazione assoluta del

percorso di una directory del cui valore deve essere ampliato il percorso di ricerca. L'indicazione del percorso inizia con "/". Il percorso deve essere indicato in maniera completa con prefissi e suffissi. La lunghezza massima del percorso è 128 byte. Se il <Nome percorso> contiene uno spazio oppure CALLPATH viene richiamato senza parametri, l'istruzione del percorso di ricerca viene reimpostata.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 219

Esempio Codice di programma

CALLPATH("/_N_WKS_DIR/_N_MYWPD_WPD")

In questo modo viene impostato il seguente percorso di ricerca (la posizione 5. è nuova): 1. Directory attuale/identificatore sottoprogramma 2. Directory attuale/identificatore sottoprogramma_SPF 3. Directory attuale/identificatore sottoprogramma_MPF 4. /_N_SPF_DIR/identificatore sottoprogramma_SPF 5. /_N_WKS_DIR/_N_MYWPD/identificatore sottoprogramma_SPF 6. /N_CUS_DIR/_N_MYWPD/identificatore sottoprogramma_SPF 7. /_N_CMA_DIR/identificatore sottoprogramma_SPF 8. /_N_CST_DIR/identificatore sottoprogramma_SPF

Condizioni marginali ● CALLPATH verifica se il nome del percorso programmato sia effettivamente disponibile. In

caso di errore, l'esecuzione del partprogram viene interrotta con l'allarme del blocco di correzione 14009.

● CALLPATH può essere programmato anche in file INI. In questo caso funziona per la durata di elaborazione del file INI (file WPD-INI o programma di inizializzazione per dati NC attivi, ad es. frame nel 1° canale _N_CH1_UFR_INI). Dopodiché il percorso di ricerca sarà reimpostato.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 220 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1.25.3.10 Esecuzione di un sottoprogramma esterno (EXTCALL)

Funzione Con EXTCALL è possibile caricare un programma da HMI nel modo "Elaborazione dall'esterno". In questo modo si possono caricare ed eseguire tutti i programmi disponibili nelle directory della struttura dell’'HMI.

Sintassi EXTCALL("<percorso/nome programma>")

Significato EXTCALL: Comando per richiamare un sottoprogramma esterno <percorso/nome programma>:

Costante/variabile del tipo STRING È possibile inserire un percorso assoluto (risp. un percorso relativo) o un nome di programma. Il nome del programma viene immesso con/senza intestazione _N_ e senza estensione. È possibile aggiungere un'estensione al nome del programma con il carattere <_>. Esempio: "/_N_WKS_DIR/_N_WELLE_WPD/_N_WELLE_SPF" oppure "ALBERO"

Nota I sottoprogrammi esterni non possono contenere istruzioni di salto come GOTOF, GOTOB, CASE, FOR, LOOP, WHILE o REPEAT. Sono consentiti costrutti IF-ELSE-ENDIF. Inoltre sono possibili richiami di sottoprogrammi e annidamenti di richiami EXTCALL.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 221

RESET, POWER ON Con RESET e POWER ON vengono interrotte le chiamate esterne ai sottoprogrammi e cancellata la relativa memoria di caricamento (swapping). Un sottoprogramma selezionato per l'"Elaborazione dall'esterno", anche con attivazione di RESET/fine partprogram rimane selezionato per l'"elaborazione dall'esterno". La selezione perde valore se si attiva POWER ON.

Esempi 1. Elaborazione dal disco rigido locale Sistemi: SINUMERIK solution line/powerline con HMI Advanced Il programma principale "_N_MAIN_MPF" si trova nella memoria NC ed è selezionato per l'elaborazione: Codice di programma

N010 PROC MAIN

N020 ...

N030 EXTCALL ("SGROSSARE")

N040 ...

N050 M30

Il sottoprogramma da caricare "_N_SGROSSARE_SPF" si trova sul disco rigido locale, nella directory "_N_WKS_DIR/_N_WST1". Il percorso per il sottoprogramma è predefinito in SD42700: SD42700 $SC_EXT_PROG_PATH = "_N_WKS_DIR/_N_WST1" Codice di programma

N010 PROC SGROSSARE

N020 G1 F1000

N030 X= ... Y= ... Z= ...

N040 ...

...

...

N999999 M17

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 222 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

2. Elaborazione dell'unità di rete Sistemi: SINUMERIK solution line/powerline con HMI sl/HMI Advanced/HMI Embedded Il sottoprogramma da caricare "Contorno2.spf" si trova sull'unità di rete, nella directory "\\R4711\Pezzi". Codice di programma

...

N... EXTCALL("\\R4711\Pezzi\Contorno2.spf")

...

Impostazione di un percorso esterno del programma Il percorso per la directory del sottoprogramma esterna può essere preimpostato con il dato setting: SD42700 $SC_EXT_PROG_PATH Insieme al percorso e/o all'identificatore del sottoprogramma definito con il richiamo EXTCALL, si ottiene il percorso assoluto del programma da richiamare.

Conseguenze Richiamo EXTCALL con indicazione del percorso assoluto Se il sottoprogramma esiste sotto il percorso indicato, viene eseguito dopo il richiamo EXTCALL. Se non esiste, l'esecuzione del programma viene interrotta. Richiamo EXTCALL con indicazione del percorso relativo/senza indicazione del percorso Con un richiamo EXTCALL con indicazione del percorso relativo oppure senza indicazione del percorso, viene effettuata una ricerca nelle memorie di programma disponibili in base al modello seguente: ● Se in SD42700 è preimpostata un'indicazione del percorso, la ricerca viene effettuata

innanzituitto a partire da questo percorso, in base all'indicazione nel richiamo EXTCALL (nome programma ev. con indicazione percorso relativo). Il percorso assoluto si ottiene dalla concatenazione di caratteri: – l'indicazione di percorso preimpostata in SD42700 – il carattere "/" come separatore – il percorso e/o l'identificatore del sottoprogramma definito con EXTCALL

● Se il sottoprogramma richiamato non viene individuato nel percorso preimpostato, la successiva ricerca viene effettuata nelle directory della memoria utente in base all'indicazione nel richiamo EXTCALL.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 223

● Se il sottoprogramma richiamato non viene individuato nella memoria di programma in esame (ad es. CompactFlash Card), la ricerca viene effettuata nella memoria di programma successiva (ad es. unità di rete) in base al punto 1 e 2.

● La ricerca termina quando il sottoprogramma viene individuato per la prima volta. Qualora la ricerca non portasse ad alcun risultato, si ha un'interruzione del programma.

Nota SINUMERIK powerline con HMI Embedded Con SINUMERIK powerline con HMI Embedded occorre sempre indicare un percorso assoluto.

Memoria di programma esterna In base al sistema (SINUMERIK solution line/powerline), all'interfaccia presente (HMI sl/HMI Advanced/HMI Embedded) e alle opzioni, memorie di programma esterne possono trovarsi sui seguenti supporti dati: ● CompactFlash Card ● Unità di rete ● Unità USB ● Disco rigido locale

Nota Elaborazione dall'esterno tramite interfaccia USB con SINUMERIK solution line Se occorre trasferire programmi esterni da un'unità USB esterna tramite interfaccia USB (FlashDrive USB), è possibile utilizzare solo l'interfaccia tramite X203 con il nome "TCU_1". ATTENZIONE • Le FlashDrive USB non sono adatte all'uso quali supporti di memoria persistenti. • Le FlasDrive USB non sono consigliate per l'"Elaborazione dall'esterno".

Motivazioni: – Le FlashDrive USB potrebbero staccarsi dall'apparecchio o presentare problemi di

contatto durante il funzionamento. Di conseguenza, si verificherebbero interruzioni nell'esecuzione.

– Le FlashDrive USB possono rompersi in caso di urto e danneggiare il pannello operativo.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 224 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Elaborazione dall'esterno tramite interfaccia V24 con SINUMERIK solution line Con HMI Embedded, utilizzando il softkey "Elaborazione dall'esterno" è possibile trasferire programmi esterni tramite l'interfaccia V24 in NC.

Memoria di caricamento impostabile (buffer FIFO) Per l'elaborazione di un programma nel modo "Elaborazione dall'esterno" (programma principale o sottoprogramma) è necessaria una memoria di caricamento nell'NCK. La dimensione della memoria di caricamento è preimpostata a 30 KB e può essere modificata in funzione delle esigenze, come altri dati macchina attinenti alla memoria, solo dal costruttore della macchina. Per tutti i programmi (programmi principali o sottoprogrammi) che devono essere elaborati contemporaneamente nel modo "Elaborazione dall'esterno", deve essere impostata una memoria di caricamento. Costruttore della macchina Rivolgersi al costruttore della macchina se si rende necessario ampliare le dimensioni e il numero delle memorie di caricamento. Per ulteriori informazioni sulla "Elaborazione dall'esterno" vedere: Bibliografia: Manuale delle funzioni di base; BAG, canale, funzionamento del programma (K1)

Visualizzazione blocco, blocco singolo e comportamento con arresto NC In caso di elaborazione dal disco rigido, nonché diEXTCALL, è possibile solo la visualizzazione blocco 3 HMI Advanced "Svolgimento del programma". Questa impostazione viene mantenuta per blocco singolo o stato arresto NC.

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 225

1.25.4 Cicli

1.25.4.1 Cicli: Parametrizzazione dei cicli utente

Funzione Con i file cov.com e uc.com si possono parametrizzare cicli propri. Il file cov.com viene fornito con i cicli standard e deve essere opportunamente ampliato. Il file uc.com deve essere creato dall'utilizzatore. Entrambi i file sono da caricare nella directory “Cicli utente” del file system passivo (oppure con l'indicazione del relativo percorso): ;$PATH=/_N_CUS_DIR.

File e percorsi cov.com_COM Panoramica dei cicli uc.com Descrizione del richiamo dei cicli

Adattamento di cov.com – panoramica dei cicli Il file cov.com fornito con i cicli standard ha la seguente struttura: %_N_COV_COM nome del file ;$PATH=/_N_CST_DIR indicazione del percorso ;Vxxx 11.12.95 panoramica dei cicli riga di commento C1(CYCLE81) foratura, centratura richiamo del 1° ciclo C2(CYCLE82) foratura, svasatura richiamo del 2° ciclo ... C24(CYCLE98) sequenza di filetti richiamo dell'ultimo ciclo M17 fine del file

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 226 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi Per ogni nuovo ciclo inserito si deve inserire una riga con la seguente sintassi: C<Numero> (<Nome del ciclo>) Blocco di commento Numero: un numero intero qualsiasi non ancora utilizzato nel file; Nome del ciclo: nome del ciclo da implementare Testo del commento: testo di commento al ciclo Esempio: C25 (MIO_CICLO_1) Ciclo_utente_1 C26 (CICLO_SPECIALE)

Esempio di file uc.com - descrizione cicli utente La descrizione avviene nel proseguimento dell'esempio: per entrambi i cicli seguenti deve avvenire una nuova parametrizzazione. Programmazione Commento

PROC MIO_CICLO_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4)

Il ciclo dispone dei seguenti parametri di trasferimento:

PAR1: ; valore REAL nel campo da -1000.001 <= PAR2 <= 123.456, preimpostato con 100

PAR2: ; valore positivo intero tra 0 <= PAR3 <= 999999, preimpostazione con 0

PAR3: ; 1 carattere ASCII

PAR4: ; stringa di lunghezza 10 per il nome di un sottoprogramma

...

M17 ;

Programmazione Commento

PROC CICLO_SPECIALE (REAL VALORE1, INT VALORE2)

Il ciclo dispone dei seguenti parametri di trasferimento:

VALORE1: ; valore REAL senza limitazione del campo dei valori e senza preimpostazione

VALORE2: ; valore intero senza limitazione del campo dei valori e senza preimpostazione

...

M17 ;

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 227

Relativo file uc.com: Programmazione

%_N_UC_COM

;$PATH=/_N_CUS_DIR

//C25 (MIO_CICLO_1) Ciclo_utente_1

(R/-1000.001 123.456 / 100 /Parametro_2 del ciclo)

(I/0 999999 / 1 / Valore intero)

(C//"A" / Parametro carattere)

(S///Nome del sottoprogramma)

//C26 (CICLO_SPECIALE)

(R///Lunghezza totale)

(I/*123456/3/Tipo di elaborazione)

M17

Esempio di entrambi i cicli Maschera di visualizzazione per il ciclo MIO_CICLO_1

Maschera di visualizzazione per il ciclo CICLO_SPECIALE

Programmazione NC flessibile 1.25 Tecnica dei sottoprogrammi

Preparazione del lavoro 228 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione della sintassi per il file uc.com - descrizione cicli utente Riga di intestazione per ogni ciclo: come nel file cov.com preceduto da “//” //C <Numero> (<Nome del ciclo>) Testo di commento Esempio: //C25 (MIO_CICLO_1) Ciclo_utente_ Riga di descrizione per ogni parametro: (<Codice tipo dato>> / <valore minimo> <valore massimo> / <preimpostazione> /<commento>) Codice tipo dato: R per REAL I per Integer C per carattere (1 carattere) S per String

Valore minimo, valore massimo (può mancare) Limiti del valore da impostare che vengono verificati al momento dell’introduzione; non possono essere impostati valori al di fuori di questo campo. Possono essere impostati valori di conteggio gestibili con il tasto di Toggle; essi vengono conteggiati a partire da “*”, non sono possibili altri valori. Esempio: (I/*123456/1/Tipo di elaborazione) per i tipi String e Char non sono previsti limiti; Valore di preimpostazione (può mancare) Valore preimpostato al richiamo del ciclo nella relativa maschera; esso può essere modificato dalle pagine operative. Commento Testo, al massimo di 50 caratteri, che viene visualizzato nella maschera di richiamo per il ciclo prima del campo di introduzione del parametro.

Programmazione NC flessibile 1.26 Tecnica delle macro (DEFINE ... AS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 229

1.26 1.26 Tecnica delle macro (DEFINE ... AS)

CAUTELA Con la tecnica macro si può modificare pesantemente il linguaggio di programmazione del controllo Utilizzare quindi la tecnica macro con accortezza!

Funzione Come macro si intende il raggruppamento di singole istruzioni in un'unica istruzione con un proprio nome. Anche le funzioni G, M, H oppure i nomi dei sottoprogrammi L possono essere creati come macro. Al richiamo della macro durante l'elaborazione del programma, le istruzioni programmate come nome della macro vengono eseguite in sequenza.

Applicazioni Sequenze di istruzioni che si ripetono possono essere programmate solo una volta come macro in un proprio blocco (file macro) oppure una sola volta all'inizio del programma. Questa macro può essere poi richiamata ed eseguita in qualunque programma principale o sottoprogramma.

Attivazione Per poter utilizzare le macro di un file macro nel programma NC, è necessario caricare il file macro nell'NC.

Sintassi Definizione macro: DEFINE <Nome macro> AS <Istruzione 1> <Istruzione 2> ...

Richiamo nel programma NC: <Nome macro>

Programmazione NC flessibile 1.26 Tecnica delle macro (DEFINE ... AS)

Preparazione del lavoro 230 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato DEFINE ... AS: Combinazione di parole chiave per la definizione di una macro <Nome macro>: Nome della macro

Come nomi di macro sono consentiti solo identificatori. Attraverso il nome della macro, la macro viene richiamata dal programma NC.

<Istruzione>: Istruzione di programmazione che deve essere contenuta nella macro.

Regole per la definizione delle macro ● Nella macro è possibile definire identificatori, funzioni G, M e H e programmi L a piacere. ● Le macro possono essere definite anche nel programma NC. ● Le macro delle funzioni G possono essere definite nel blocco solo a livello globale del

controllo. ● Le funzioni H e L possono essere programmate a 2 cifre. ● Le funzioni M e G possono essere programmate a tre cifre.

CAUTELA

Le parole chiave e i nomi riservati non devono essere sovradefiniti con le macro.

Condizioni marginali Non è possibile l'annidamento di macro.

Esempi Esempio 1: Definizione di macro all'inizio del programma Codice di programma Commento

DEFINE LINIE AS G1 G94 F300 ; Definizione macro

...

...

N70 LINIE X10 Y20 ; Richiamo macro

...

Programmazione NC flessibile 1.26 Tecnica delle macro (DEFINE ... AS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 231

Esempio 2: Definizioni di macro in un file macro Codice di programma Commento

DEFINE M6 AS L6 ; Durante il cambio utensile viene richiamato un sottoprogramma che gestisce il trasferimento dei dati necessari. Nel sottoprogramma viene emessa la funzione M di cambio utensile vera e propria (ad es. M106).

DEFINE G81 AS DRILL(81) ; Riproduzione della funzione G DIN.

DEFINE G33 AS M333 G333 ; Durante la filettatura viene richiesta la sincronizzazione con il PLC. La funzione G originaria G33 è stata rinominata tramite dati macchina in G333, per l'utilizzatore la programmazione resta inalterata.

Esempio 3: File macro esterno Dopo la lettura del file macro esterno nel controllo, il file macro deve essere caricato nell'NC. Soltanto a questo punto è possibile utilizzare le macro nel programma NC. Codice di programma Commento

%_N_UMAC_DEF

;$PATH=/_N_DEF_DIR ; Macro specifiche per il cliente

DEFINE PI AS 3.14

DEFINE TC1 AS M3 S1000

DEFINE M13 AS M3 M7 ; Mandrino a destra, refrigerante On

DEFINE M14 AS M4 M7 ; Mandrino a sinistra, refrigerante On

DEFINE M15 AS M5 M9 ; Arresto mandrino, refrigerante Off

DEFINE M6 AS L6 ; Richiamo del programma per il cambio utensile

DEFINE G80 AS MCALL ; Disattivazione del ciclo di foratura

M30

Programmazione NC flessibile 1.26 Tecnica delle macro (DEFINE ... AS)

Preparazione del lavoro 232 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 233

Gestione dei file e dei programmi 22.1 2.1 Memoria dei programmi

Funzione Nella memoria dei programmi i file e i dati (ad es. programmi principali e sottoprogrammi, definizioni macro) vengono salvati in modo persistente (→ system file passivi). Bibliografia: Manuale di guida alle funzioni, Funzioni di ampliamento; Configurazione memoria (S7) Esistono inoltre alcuni tipi di file che possono essere memorizzati e che, se necessario, devono essere trasferiti nella memoria di lavoro (es. nel caso dell'esecuzione di un determinato pezzo o per inizializzazione).

Gestione dei file e dei programmi 2.1 Memoria dei programmi

Preparazione del lavoro 234 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Directory standard Le seguenti directory sono standard: Directory Contenuto _N_DEF_DIR Blocchi dati e blocchi macro _N_CST_DIR Cicli standard _N_CMA_DIR Cicli costruttore _N_CUS_DIR Cicli utente _N_WKS_DIR Pezzi _N_SPF_DIR Sottoprogrammi globali _N_MPF_DIR Programmi principali _N_COM_DIR Commenti

Tipi di file Nella memoria dei programmi possono essere inseriti i seguenti tipi di file: Tipo di file Descrizione name_MPF Programma principale name_SPF Sottoprogramma name_TEA Dati macchina name_SEA Dati setting name_TOA Correzioni utensile name_UFR Spostamenti origine/Frame name_INI File di inizializzazione name_GUD Dati utente globali name_RPA Parametri R name_COM Commento name_DEF Definizioni per dati utente globali e macro

Directory principale dei pezzi (_N_WKS_DIR) La directory principale dei pezzi è configurata nella memoria dei programmi sotto l'identificativo _N_WKS_DIR. La directory principale dei pezzi contiene le relative directory di tutti i pezzi programmati.

Gestione dei file e dei programmi 2.1 Memoria dei programmi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 235

Directory dei pezzi ( ..._WPD) Per una gestione più flessibile dei dati e dei programmi, è consigliabile raggruppare i dati e i programmi all'interno di un'unica directory. La directory di un pezzo contiene tutti i file necessari per la lavorazione del pezzo stesso. I file contenuti possono essere programmi principali, sottoprogrammi, programmi di inizializzazione qualsiasi, e file di commento. I programmi di inizializzazione vengono eseguiti una volta dopo la selezione del programma con il primo avvio del partprogram (in base al dato macchina MD11280 $MN_WPD_INI_MODE). Esempio: La directory dei pezzi _N_ALBERO_WPD, che è stata creata per il pezzo ALBERO, contiene i seguenti file: File Descrizione _N_ALBERO_MPF Programma principale _N_PART2_MPF Programma principale _N_PART1_SPF Sottoprogramma _N_PART2_SPF Sottoprogramma _N_ALBERO_INI Programma generico di inizializzazione dei dati per il pezzo _N_ALBERO_SEA Programma di inizializzazione dei dati di setting _N_PART2_INI Programma generico di inizializzazione dei dati per il programma

Part 2 _N_PART2_UFR Programma di inizializzazione per dati di frame per il programma

Part 2 _N_ALBERO_COM File di commento

Creazione di una directory pezzo su un PC esterno La procedura che segue viene eseguita su una stazione dati esterna. Per la gestione dei dati e dei programmi (dal PC al controllo numerico) direttamente a bordo del controllo numerico, consultare il manuale operativo.

Gestione dei file e dei programmi 2.1 Memoria dei programmi

Preparazione del lavoro 236 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Creazione directory pezzi con indicazione del percorso ($PATH=…) Nella seconda riga di un file viene indicato il percorso di destinazione con $PATH=…. Il file viene quindi salvato nel percorso indicato. Esempio: Codice di programma

%_N_ALBERO_MPF

;$PATH=/_N_WKS_DIR/_N_ALBERO_WPD

N10 G0 X… Z…

...

M2

Il file _N_ALBERO_MPF viene salvato nella directory /_N_WKS_DIR/_N_ALBERO_WPD. Creazione directory pezzi senza indicazione del percorso Se manca l'indicazione del percorso, i file che terminano con _SPF vengono salvati nella directory /_N_SPF_DIR, quelli che terminano con _INI nella memoria di lavoro e tutti i restanti file nella directory /_N_MPF_DIR. Esempio: Codice di programma

%_N_ALBERO_SPF

...

M17

Il file _N_ALBERO_SPF viene salvato nella directory /_N_SPF_DIR.

Selezione di un pezzo per la lavorazione Una directory del pezzo può essere selezionata per l'elaborazione in un determinato canale. Se in questa directory è presente un programma principale con nome uguale oppure soltanto un unico programma principale (_MPF), questo viene selezionato automaticamente per l'elaborazione. Bibliografia: /BAD/ Manuale d'uso HMI Advanced; Capitolo "Joblist" nonché "Selezione di un programma per l'elaborazione"

Gestione dei file e dei programmi 2.1 Memoria dei programmi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 237

Percorso di ricerca per il richiamo di un sottoprogramma Se per il richiamo di un sottoprogramma (o file di inizializzazione) da un partprogram non si indica il percorso di richiamo, il programma richiamato verrà cercato in base ad un percorso prestabilito. Richiamo sottoprogramma con indicazione del percorso assoluto Esempio: Codice di programma

...

CALL"/_N_CST_DIR/_N_CYCLE1_SPF"

...

Richiamo sottoprogramma senza indicazione del percorso assoluto Di solito i programmi vengono richiamati senza indicazione del percorso. Esempio: Codice di programma

...

CYCLE1

...

In base al programma richiamato, la ricerca nelle directory viene effettuata con la successione seguente: N. Directory Descrizione 1 directory attuale/nome Directory principale dei pezzi senza directory

standard _N_MPF_DIR 2 directory attuale/nome_SPF 3 directory attuale/nome_MPF 4 /_N_SPF_DIR/nome_SPF Sottoprogrammi globali 5 /_N_CUS_DIR/nome_SPF Cicli utente 6 /_N_CMA_DIR/nome_SPF Cicli costruttore 7 /_N_CST_DIR/nome_SPF Cicli standard

Gestione dei file e dei programmi 2.1 Memoria dei programmi

Preparazione del lavoro 238 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione del percorso di ricerca per il richiamo di sottoprogrammi (CALLPATH) Il percorso di ricerca per il richiamo di un sottoprogramma può essere ampliato con il comando partprogram CALLPATH. Esempio: Codice di programma

CALLPATH ("/_N_WKS_DIR/_N_MYWPD_WPD")

...

Il percorso di ricerca viene definito a partire dalla 5a posizione (ciclo utente) in funzione della programmazione indicata. Per ulteriori informazioni sul percorso di ricerca programmabile per i richiami di sottoprogrammi con CALLPATH, vedere Capitolo "Estensione del percorso di ricerca nei richiami di sottoprogrammi con CALLPATH".

Gestione dei file e dei programmi 2.2 Memoria di lavoro (CHANDATA, COMPLETE, INITIAL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 239

2.2 2.2 Memoria di lavoro (CHANDATA, COMPLETE, INITIAL)

Funzione La memoria di lavoro contiene i dati di sistema e i dati utente correnti con i quali funziona il controllo (file system attivo), ad es.: ● Dati macchina attivi ● Dati di correzione utensile ● Spostamenti origine ● ...

Programmi di inizializzazione In questo caso si tratta di programmi tramite i quali vengono preimpostati i dati della memoria di lavoro (inizializzazione). A questo scopo possono essere utilizzati i seguenti tipi di file. Tipo di file Descrizione name_TEA Dati macchina name_SEA Dati setting name_TOA Correzioni utensile name_UFR Spostamenti origine/Frame name_INI File di inizializzazione name_GUD Dati utente globali name_RPA Parametri R

Per informazioni su tutti i tipi di file si rimanda al Manuale d'uso della superficie operativa.

Settori dati I dati possono essere suddivisi in diversi settori, nei quali devono avere validità. Un controllore può disporre ad esempio di più canali o anche di più assi. Ci sono: Codice Aree dati NCK Dati specifici NCK CH<n> Dati specifici per canale (<n> indica il numero di canale) AX<n> Dati specifici per asse (<n> indica il numero di asse macchina) TO Dati dell'utensile COMPLETE Tutti i dati

Gestione dei file e dei programmi 2.2 Memoria di lavoro (CHANDATA, COMPLETE, INITIAL)

Preparazione del lavoro 240 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Creazione di un programma di inizializzazione sul PC esterno Con l'aiuto della codifica delle aree dati e del tipo di dati, è possibile definire l'area da considerare come unità al momento del salvataggio dei dati: _N_AX5_TEA_INI Dati macchina per l'asse 5 _N_CH2_UFR_INI Frame del canale 2 _N_COMPLETE_TEA_INI Tutti i dati macchina

Dopo la messa in servizio del controllo numerico, nella memoria di lavoro si trova un set di dati che garantisce il corretto funzionamento dello stesso.

Procedura per controlli multicanale (CHANDATA) CHANDATA(<numero_canale>) per più canali è consentito solo nel file _N_INITIAL_INI. Si tratta del file per la messa in servizio, con il quale vengono inizializzati tutti i dati del controllo. Codice di programma Commento

%_N_INITIAL_INI

CHANDATA(1)

; Assegnazione dell'asse macchina canale 1:

$MC_AXCONF_MACHAX_USED[0]=1

$MC_AXCONF_MACHAX_USED[1]=2

$MC_AXCONF_MACHAX_USED[2]=3

CHANDATA(2)

; Assegnazione dell'asse macchina canale 2:

$MC_AXCONF_MACHAX_USED[0]=4

$MC_AXCONF_MACHAX_USED[1]=5

CHANDATA(1)

; Dati macchina assiali:

; Finestra di arresto preciso grossolano:

$MA_STOP_LIMIT_COARSE[AX1]=0.2 ; Asse 1

$MA_STOP_LIMIT_COARSE[AX2]=0.2 ; Asse 2

; Finestra di arresto preciso fine:

$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Asse 1

$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Asse 2

Gestione dei file e dei programmi 2.2 Memoria di lavoro (CHANDATA, COMPLETE, INITIAL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 241

CAUTELA Istruzione CHANDATA Nel partprogram, l'istruzione CHANDATA può essere impostata solo per il canale sul quale viene elaborato il programma NC, ossia l'istruzione può essere utilizzata per proteggere programmi NC dall'esecuzione su un canale non previsto. In caso di errore, l'elaborazione viene interrotta.

Nota I file INI nelle liste di job non contengono istruzioni CHANDATA.

Salvataggio di programmi di inizializzazione (COMPLETE, INITIAL) I file della memoria di lavoro possono essere salvati su un PC esterno, dal quale poi possono essere nuovamente letti. ● I file vengono salvati con COMPLETE. ● Con INITIAL viene generato per tutti i settori un file INI (_N_INITIAL_INI).

Lettura di programmi di inizializzazione

ATTENZIONE Se il file viene letto con il nome "INITIAL_INI", tutti i dati non forniti nel file vengono inizializzati con dati standard. Fanno eccezione soltanto i dati macchina. Vengono quindi forniti di dati standard (normalmente "ZERO") i dati di setting, dati utensile, SO, valori GUD, ....

Per la lettura di singoli dati macchina è disponibile ad esempio il file COMPLETE_TEA_INI. In questo file, il controllo si aspetta solo dati macchina. Gli altri settori di dati non vengono quindi in questo caso riguardati.

Caricamento di programmi di inizializzazione I programmi INI possono anche essere selezionati e richiamati come partprogram se utilizzano soltanto i dati di un canale. È quindi anche possibile inizializzare dati controllati tramite programma.

Gestione dei file e dei programmi 2.3 Istruzione di strutturazione nell'editor Step (SEFORM)

Preparazione del lavoro 242 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

2.3 2.3 Istruzione di strutturazione nell'editor Step (SEFORM)

Funzioni L'istruzione di strutturazione SEFORM viene analizzata nell'editor Step (supporto alla programmazione basato sull'editor), per generare da questo la visualizzazione dei passi per HMI Advanced. La visualizzazione dei passi è funzionale a una migliore leggibilità del sottoprogramma NC.

Sintassi SEFORM(<Nome della sezione>,<Piano>,<Icona>)

Significato SEFORM() Richiamo della funzione dell'istruzione di strutturazione con i

parametri <Nome della sezione>, <Piano> e <Icona> Identificatore del passo di lavoro <Nome della

sezione> Tipo: STRING Indice per il piano principale e subordinato Tipo: INT Valore: 0 Piano principale

<Piano>

1, ..., <n> Piano subordinato 1, ..., piano subordinato <n>

Nome dell'icona da visualizzare per questo passo di lavorazione.

<Icona>

Tipo: STRING

Nota Le istruzioni SEFORM vengono create nell'editor Step. La sequenza di caratteri trasmessa tramite il parametro <Nome della sezione> viene creata nella variabile BTSS analogamente all'istruzione MSG in maniera sincrona all'elaborazione principale. L'informazione viene mantenuta fino alla sovrascrittura dell'istruzione SEFORM successiva. Con Reset e alla fine del partprogram il contenuto viene cancellato. I parametri <Piano> e <Icona> vengono verificati dall'NCK durante l'esecuzione del partprogram, ma non ulteriormente elaborati.

Bibliografia Per ulteriori informazioni sul supporto alla programmazione basato sull'editor ved.: Manuale d'uso HMI Advanced

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 243

Settori di protezioni 33.1 3.1 Definizione dei settori di protezione (CPROTDEF, NPROTDEF)

Funzione Con l'ausilio dei settori di protezione si possono proteggere i diversi elementi di una macchina da movimenti indesiderati, dall'attrezzatura al pezzo. Settori di protezione riferiti all'utensile: per elementi che appartengono all'utensile (ad es. utensile, portautensile). Settori di protezione riferiti all'utensile: per elementi che appartengono al pezzo (ad es. parti del pezzo, tavola portapezzo, griffe di bloccaggio, autocentrante, contropunta).

Sintassi DEF INT NOT_USED CPROTDEF(<n>,<t>,<applim>,<applus>,<appminus>) NPROTDEF(<n>,<t>,<applim>,<applus>,<appminus>) EXECUTE(NOT_USED)

Settori di protezioni 3.1 Definizione dei settori di protezione (CPROTDEF, NPROTDEF)

Preparazione del lavoro 244 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato DEF INT NOT_USED: variabile locale, definire il tipo di dati INTEGER

(cfr. capitolo "Azione sincrona al movimento") CPROTDEF: Definizione dei settori di protezione specifici per canale (solo per

NCU 572/573) NPROTDEF: Definizione dei settori di protezione specifici della macchina EXECUTE: Terminare la definizione <n>: Numero del settore di protezione definito

Tipo di settore di protezione TRUE: settore di protezione riferito all'utensile

<t>:

FALSE: settore di protezione riferito al pezzo Tipo della limitazione nella 3a dimensione 0: nessuna limitazione 1: limitazione in direzione positiva 2: limitazione in direzione negativa

<applim>:

3: limitazione in direzione positiva e negativa <applus>: Valore della limitazione in direzione positiva della 3a dimensione<appminus>: Valore della limitazione in direzione negativa della 3a

dimensione NOT_USED: La variabile di errore non ha alcun significato per i settori di

protezione con EXECUTE

Ulteriori informazioni Definizione dei settori di protezione Fanno parte della definizione dei settori di protezione: ● CPROTDEF per settori di protezione specifici per canale ● NPROTDEF per settori di protezione specifici per la macchina ● Descrizione del profilo del settore di protezione ● Fine della definizione con EXECUTE Attivando il settore di protezione nel partprogram NC, si può spostare il punto di riferimento in modo relativo.

Settori di protezioni 3.1 Definizione dei settori di protezione (CPROTDEF, NPROTDEF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 245

Punto di riferimento della descrizione del profilo I settori di protezione riferiti al pezzo vengono definiti nel sistema di coordinate di base. I settori di protezione riferiti all’utensile vengono indicati rispetto al punto di riferimento F del portautensile. Descrizione del profilo dei settori di protezione Il profilo dei settori di protezione viene impostato con al massimo 11 movimenti nel piano indicato. In questo caso, il primo movimento è quello sul profilo. Come settore di protezione viene considerato quindi quello alla sinistra del profilo. I movimenti situati tra CPROTDEF oppure NPROTDEF e EXECUTE non vengono eseguiti ma servono a definire il settore di protezione. Piano di lavoro Il piano desiderato viene selezionato prima di CPROTDEF o NPROTDEF e G17, G18, G19 e non può essere modificato prima di EXECUTE. Non è consentita una programmazione delle applicate tra CPROTDEF o NPROTDEF e EXECUTE. Elementi del profilo Sono consentiti: ● G0, G1 per elementi di profilo rettilinei ● G2 per tratti circolari in senso orario (solo per settori di protezione riferiti al pezzo) ● G3 per tratti circolari in senso antiorario

Nota Se il settore di protezione deve descrivere un cerchio completo, è necessario suddividerlo in due semicerchi. La sequenza G2, G3 o G3, G2 non è consentita. Eventualmente occorre inserire un breve blocco con G1. L'ultimo punto della descrizione del profilo deve coincidere con il primo punto.

I settori di protezione esterni (possibile solo per settori di protezione riferiti al pezzo) devono essere definiti in senso orario. Con settori di protezione simmetrici alla rotazione (ad es. autocentrante) si deve descrivere il profilo globale (non solo fino al centro di rotazione!).

Settori di protezioni 3.1 Definizione dei settori di protezione (CPROTDEF, NPROTDEF)

Preparazione del lavoro 246 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

I settori di protezione riferiti all’utensile devono essere sempre convessi. Nel caso sia necessario un settore di protezione concavo, esso deve essere realizzato con più settori convessi.

Condizioni marginali Durante la definizione dei settori di protezione: ● non possono essere attive le correzioni del raggio fresa o raggio utensile, ● non vi possono essere trasformazioni attive, ● non vi possono essere frame attivi. Inoltre non si possono programmare la ricerca del punto di riferimento (G74), l'accostamento a un punto fisso (G75), il blocco preelaborazione oppure un fine programma.

Settori di protezioni 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 247

3.2 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Funzione Attivazione dei settori di protezione precedentemente definiti per la sorveglianza anticollisione, preattivazione o disattivazione dei settori di protezione attivi. Il numero massimo dei settori di protezione attivi in un canale viene impostato tramite i dati macchina. Se non è attivo alcun settore di protezione riferito all’utensile, il percorso dell’utensile viene verificato rispetto al settore di protezione riferito al pezzo.

Nota Se non è attivo alcun settore di protezione riferito al pezzo, non avviene alcuna sorveglianza del settore di protezione.

Sintassi CPROT(<n>,<state>,<xMov>,<yMov>,<zMov>) NPROT(<n>,<state>,<xMov>,<yMov>,<zMov>)

Significato CPROT: Richiamo dei settori di protezione specifici per canale

(solo per NCU 572/573) NPROT: Richiamo del settore di protezione specifico per la

macchina <n>: Numero del settore di protezione

Indicazione dello stato 0: disattivare il settore di protezione 1: preattivare il settore di protezione 2: attivare il settore di protezione

<state>:

3: preattivare il settore di protezione con Stop condizionato

<xMov>,<yMov>,<zMov>: Traslazione lungo gli assi geometrici del settore di protezione già definito

Settori di protezioni 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Preparazione del lavoro 248 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio In una fresatrice deve essere sorvegliata una possibile collisione della fresa con il tastatore di misura. La posizione del tastatore di misura deve essere impostata all’attivazione con una traslazione. Per questo motivo vengono definiti i seguenti settori di protezione: ● un settore di protezione specifico per la macchina e riferito al pezzo per il porta tastatore

di misura (n-SB1) e per il tastatore di misura stesso (n-SB2). ● un settore di protezione specifico per il canale e riferito all’utensile per il porta fresa (c-

SB1), per il codolo (c-SB2) e per la fresa stessa (c-SB3). L'orientamento di tutti i settori di protezione avviene in direzione di Z. La posizione del punto di riferimento del tastatore di misura all'attivazione deve trovarsi in X = -120, Y = 60 e Z = 80.

Settori di protezioni 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 249

Codice di programma Commento

DEF INT SCHUTZB ; Definizione di una variabile ausiliaria

Definizione dei settori di protezione G17 ; Impostazione dell’orientamento

NPROTDEF(1,FALSE,3,10,–10)G01 X0 Y–10

X40

Y10

X0

Y–10

EXECUTE(SCHUTZB)

; Settore di protezione n-SB1

NPROTDEF(2,FALSE,3,5,–5)

G01 X40 Y–5

X70

Y5

X40

Y–5

EXECUTE(SCHUTZB)

; Settore di protezione n-SB2

CPROTDEF(1,TRUE,3,0,–100)

G01 X–20 Y–20

X20

Y20

X–20

Y–20

EXECUTE(SCHUTZB)

; Settore di protezione c-SB1

CPROTDEF(2,TRUE,3,–100,–150)

G01 X0 Y–10

G03 X0 Y10 J10

X0 Y–10 J–10

EXECUTE(SCHUTZB)

; Settore di protezione c-SB2

CPROTDEF(3,TRUE,3,–150,–170)

G01 X0 Y–27,5

G03 X0 Y27,5 J27,5

X0 Y27,5 J–27,5

EXECUTE(SCHUTZB)

; Settore di protezione c-SB3

Attivazione dei settori di protezione:

NPROT(1,2,–120,60,80) ; Attivazione del settore di protezione n-SB1 con traslazione

NPROT(2,2,–120,60,80) ; Attivazione del settore di protezione n-SB2 con traslazione

CPROT(1,2,0,0,0) ; Attivazione del settore di protezione c-SB1 con traslazione

CPROT(2,2,0,0,0) ; Attivazione del settore di protezione c-SB2 con traslazione

CPROT(3,2,0,0,0) ; Attivazione del settore di protezione c-SB3 con traslazione

Settori di protezioni 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Preparazione del lavoro 250 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Stato di attivazione (<state>) ● <state>=2

Un settore di protezione normalmente viene attivato nel partprogram con lo stato = 2. Lo stato è sempre specifico per canale anche per i settori di protezione riferiti alla macchina.

● <state>=1 Se è previsto che un settore di protezione debba essere attivato dal programma PLC utente, la relativa preattivazione necessaria avviene con lo stato = 1.

● <state>=3 Nella preattivazione con stop condizionato non si verifica necessariamente un arresto prima di un settore di protezione violato e preattivato. Lo stop avviene solo se il settore di protezione è stato attivato. Ciò consente di non interrompere la lavorazione quando i settori di protezione vengono attivati solo in casi speciali. Occorre considerare che a seguito della rampa di frenatura in certi casi può essere raggiunto un settore di protezione, se quest'ultimo è stato attivato subito prima del raggiungimento della posizione. La preattivazione con stop condizionato avviene tramite lo stato = 3.

● <state>=0 La disattivazione, e conseguentemente l'esclusione dei settori di protezione, avviene con lo stato = 0. Non è necessaria alcuna traslazione.

Traslazione dei settori di protezione durante l'attivazione/preattivazione La traslazione può avvenire in 1, 2 o 3 dimensioni. L’impostazione della traslazione si riferisce al: ● punto zero macchina per i settori di protezione specifici del pezzo, ● punto di riferimento F del portautensile per i settori di protezione specifici dell’utensile.

Settori di protezioni 3.2 Attivazione/disattivazione dei settori di protezione (CPROT, NPROT)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 251

Stato dopo l'avviamento I settori di protezione si possono attivare già dopo aver eseguito l’avviamento e la ricerca del punto di riferimento. Per questo motivo le variabili di sistema $SN_PA_ACTIV_IMMED [<n>] o $SN_PA_ACTIV_IMMED[<n>] si devono impostare = TRUE. Esse vengono subito impostate con lo stato = 2 e non hanno alcuna traslazione. Attivazione multipla dei settori di protezione Un settore di protezione può essere attivo contemporaneamente anche in diversi canali (ad es. contropunta di due slitte contrapposte). La sorveglianza dei settori di protezione avviene solo quando tutti gli assi geometrici sono stati riferiti. In questo caso vale quanto segue: ● il settore di protezione non può essere attivato nello stesso canale contemporaneamente

con diverse traslazioni. ● il settori di protezione riferiti alla macchina devono avere lo stesso orientamento in

entrambi i canali.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro 252 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

3.3 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Funzioni La funzione CALCPOSI serve a verificare se, a partire da un determinato punto iniziale, gli assi geometrici possono eseguire un percorso impostato senza che vengano superati i limiti degli assi stessi (limiti software), le limitazioni del campo di lavoro o i settori di protezione. Se il percorso impostato non può essere eseguito, viene restituito il valore massimo consentito. La funzione CALCPOSI è un sottoprogramma predefinito. Essa deve essere programmata in un blocco a sè stante.

Sintassi Stato=CALCPOSI(_STARTPOS, _MOVDIST, _DLIMIT, _MAXDIST, _BASE_SYS, _TESTLIM)

Significato Stato 0: Funzione corretta,

il percorso indicato può essere interamente eseguito. –: In _DLIMIT almeno un componente è negativo –: In un calcolo di trasformazione si è verificato un errore Se non è possibile eseguire interamente il percorso impostato, viene restituito un valore positivo, con codifica decimale: Posizione delle unità (tipo di limite superato): 1: I limiti software circoscrivono il tratto di percorso. 2: La limitazione del campo di lavoro circoscrive il tratto di percorso. 3: I settori di protezione circoscrivono il tratto di percorso. Se vengono superati contemporaneamente più limiti (ad es. limiti software e settori di protezione), nella posizione delle unità viene segnalato il limite che porta alla limitazione più restrittiva del tratto di percorso impostato.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 253

Posizione delle decine 10: Il valore iniziale supera il limite 20: La retta impostata supera il limite. Questo valore viene restituito anche se lo stesso punto finale non supera i limiti, tuttavia potrebbe verificarsi il superamento di un valore limite durante il percorso dal punto iniziale a quello finale (ad es. attraversamento di un settore di protezione, limiti software curvi nel sistema di coordinate pezzo (SCP) in presenza di trasformazioni non lineari, ad es. Transmit).

Posizione delle centinaia 100: Il valore limite positivo è superato (solo se la posizione delle unità è 1 o 2, ossia con limiti software e limitazione del campo di lavoro) 100: Un settore di protezione dell'NCK è stato superato (solo se la posizione delle unità è 3). 200: Il valore limite negativo è superato (solo se la posizione delle unità è 1 o 2, ossia con limiti software e limitazione del campo di lavoro) 200: Un settore di protezione specifico per il canale è stato superato (solo se la posizione delle unità è 3).

Posizione delle migliaia 1000: Fattore con il quale viene moltiplicato il numero degli assi che superano il limite (solo se la posizione delle unità è 1 o 2, ossia con limiti software e limitazione del campo di lavoro). Il conteggio degli assi inizia da 1 e si riferisce, in caso di superamento dei limiti software (posizione delle unità = 1) agli assi macchina e in caso di superamento della limitazione del campo di lavoro (posizione delle unità = 2) agli assi geometrici. 1000: Fattore con il quale viene moltiplicato il numero dei settori di protezione superati (solo se la posizione delle unità è 3). Se vengono superati più settori di protezione, nelle posizioni delle centinaia e delle migliaia viene segnalato il settore di protezione che provoca la limitazione maggiore del tratto di spostamento impostato.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro 254 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

_STARTPOS Valore iniziale per ascisse [0], ordinate [1] e applicate [2] nel sistema di coordinate pezzo (SCP)

_MOVEDIST Impostazione incrementale del percorso per ascisse [0], ordinate [1] e applicate [2]

_DLIMIT [0] - [2]: Distanze minime assegnate agli assi geometrici. [3]: Distanza minima assegnata a un asse macchina lineare in caso di trasformazione non lineare, se non è possibile assegnare in modo univoco l'asse geometrico. [4]: Distanza minima assegnata a un asse macchina rotante in caso di trasformazione non lineare, se non è possibile assegnare in modo univoco l'asse geometrico. Solo per trasformazioni speciali, se vanno monitorati i limiti software.

_MAXDIST Campo [0] - [2] per valore di ritorno. Percorso incrementale in tutti i tre assi geometrici, senza che venga superata in negativo negli assi macchina coinvolti la distanza minima impostata per un limite asse. Se il tratto di percorso non è limitato, il contenuto di questo parametro di ritorno è identico al contenuto di _MOVDIST.

_BASE_SYS FALSE oppure parametro non indicato: Durante l'analisi dei valori di posizione e lunghezza, viene valutato il codice G del gruppo 13 (G70, G71, G700, G710; inch/metrico). Con G70 attivo e sistema di base metrico (oppure con G71 attivo e inch), le variabili di sistema del sistema di coordinate pezzo $AA_IW[X] e $AA_MW[X]) vengono fornite nel sistema di base e devono eventualmente essere convertite per l'utilizzo attraverso la funzione CALCPOSI. TRUE: Durante l'analisi dei valori di posizione e lunghezza viene sempre utilizzato il sistema di base del controllo, indipendentemente dal valore di G attivo del gruppo 13.

_TESTLIM Limitazioni da verificare (codifica binaria): 1: Monitoraggio limiti software 2: Monitoraggio limitazioni del campo di lavoro 3: Monitoraggio settori di protezione attivati 4: Monitoraggio settori di protezione preattivati Combinazioni attraverso addizione dei valori. Default: 15; verificare tutti.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 255

Esempio Nell'esempio (ved. figura) sono indicati nell'asse X i limiti software e le limitazioni del campo di lavoro. Sono inoltre definiti tre settori di protezione, i due settori di protezione C2 e C4 specifici per il canale nonché il settore di protezione dell'NCK N3. C2 è un settore di protezione circolare attivo, riferito all'utensile, con 2 mm di raggio. C4 è un settore di protezione quadrato, preattivato e riferito al pezzo, con lunghezza laterale di 10 mm, mentre N3 è un settore di protezione rettangolare attivo con lunghezza laterale di 10 mm o 15 mm. Nel seguente NC vengono definiti in forma di schizzo in primo luogo i settori di protezione e le limitazioni del campo di lavoro, quindi viene richiamata la funzione CALCPOSI con diverse parametrizzazioni. I risultati dei singoli richiami di CALCPOSI sono riassunti nella tabella riportata in calce all'esempio.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro 256 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N10 def real _STARTPOS[3]

N20 def real _MOVDIST[3]

N30 def real _DLIMIT[5]

N40 def real _MAXDIST[3]

N50 def int _SB

N60 def int _STATUS

N70 cprotdef(2, true, 0)

N80 g17 g1 x–y0

N90 g3 i2 x2

N100 i–x–

N110 execute(_SB)

; Settore di protezione riferito all'utensile

N120 cprotdef(4, false, 0)

N130 g17 g1 x0 y15

N140 x10

N150 y25

N160 x0

N170 y15

N180 execute(_SB)

; Settore di protezione riferito al pezzo

N190 nprotdef(3, false, 0)

N200 g17 g1 x10 y5

N210 x25

N220 y15

N230 x10

N240 y5

N250 execute(_SB)

; Settore di protezione riferito alla macchina

N260 cprot(2,2,0, 0, 0)

N270 cprot(4,1,0, 0, 0)

N280 nprot(3,2,0, 0, 0)

; Attivazione o preattivazione dei settori di protezione

N290 g25 XX=–YY=–

N300 g26 xx= 20 yy= 21

N310 _STARTPOS[0] = 0.

N320 _STARTPOS[1] = 0.

N330 _STARTPOS[2] = 0.

; Definizione delle limitazioni del campo di lavoro

N340 _MOVDIST[0] = 35.

N350 _MOVDIST[1] = 20.

N360 _MOVDIST[2] = 0.

N370 _DLIMIT[0] = 0.

N380 _DLIMIT[1] = 0.

N390 _DLIMIT[2] = 0.

N400 _DLIMIT[3] = 0.

N410 _DLIMIT[4] = 0.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 257

Codice di programma Commento

;Diversi richiami delle funzioni

N420 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST)

N430 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,3)

N440 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,1)

; Altro punto di partenza

N450 _STARTPOS[0] = 5.

N460 _STARTPOS[1] = 17.

N470 _STARTPOS[2] = 0.

; Altra destinazione

N480 _MOVDIST[0] = 0.

N490 _MOVDIST[1] =–.

N500 _MOVDIST[2] = 0.

;Diversi richiami delle funzioni

N510 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,,14)

N520 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 6)

N530 _DLIMIT[1] = 2.

N540 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 6)

N550 _STARTPOS[0] = 27.

N550 _STARTPOS[1] = 17,1.

N330 _STARTPOS[2] = 0.

N580 _MOVDIST[0] =–.

N590 _MOVDIST[1] = 0.

N600 _MOVDIST[2] = 0.

N610 _DLIMIT[3] = 2.

N620 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST,, 12)

N630 _STARTPOS[0] = 0.

N640 _STARTPOS[1] = 0.

N650 _STARTPOS[2] = 0.

N660 _MOVDIST[0] = 0.

N670 _MOVDIST[1] = 30.

N680 _MOVDIST[2] = 0.

N690 trans x10

N700 arot z45

N710 _STATUS = calcposi(_STARTPOS,_MOVDIST, _DLIMIT, _MAXDIST)

N720 M30

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro 258 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Risultati delle verifiche nell'esempio: N. blocco N...

_STATUS _MAXDIST [0] (= X)

_MAXDIST [1] (= Y)

Note

420 3123 8.040 4.594 Il settore di protezione SB N3 viene superato.

430 1122 20.000 11.429 Monitoraggio del settore di protezione assente, la limitazione del campo di lavoro viene superata.

440 1121 30.000 17.143 Soltanto il monitoraggio dei limiti software è ancora attivo.

510 4213 0.000 0.000 Il punto di partenza supera il settore di protezione C4

520 0000 0.000 –.000 Il settore di protezione preattivato C4 non viene monitorato. Il percorso impostato può essere eseguito completamente.

540 2222 0.000 –.000 A causa di _DLIMIT[1]=2, il tratto di percorso viene limitato attraverso la limitazione del campo di lavoro.

620 4223 –.000 0.000 La distanza da C4 dovuta a C2 e _DLIMIT[3] corrisponde in totale a 4 mm. La distanza C2 -N3 di 0,1 mm non provoca la limitazione del tratto di percorso.

710 1221 0.000 21.213 Frame con traslazione e rotazione attiva. Il tratto di percorso consentito in _MOVDIST è valido nel sistema di coordinate traslato e ruotato (SCP).

Casi speciali ed ulteriori dettagli Tutte le impostazioni del percorso si intendono in quote radiali, anche per assi radiali con codice G “DIAMON” attivo. Se il percorso di uno degli assi interessati non può essere eseguito completamente, nel valore restituito _MAXDIST vengono ridotti proporzionalmente anche i percorsi degli altri assi in modo che il punto finale risultante si trovi sulla traiettoria impostata. È consentito che per uno o più degli assi interessati non vengano definiti limiti software, limitazioni del campo di lavoro oppure settori di protezione. I limiti vengono solo verificati quando i relativi assi hanno eseguito la ricerca del punto di riferimento. Se gli stessi non sono stati dichiarati come assi modulo.

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 259

Le sorveglianze dei limiti software e delle limitazioni dei campi di lavoro dipendono, come durante il normale funzionamento, dalle impostazioni attive (segnali di interfaccia per la selezione dei limiti software 1 o 2, codice G WALIMON/WALIMOF, dati setting per l’attivazione individuale delle limitazioni dei campi di lavoro e per determinare se nella sorveglianza dei campi di lavoro deve essere o meno considerato il raggio dell’utensile attivo). Con determinate trasformazioni cinematiche (ad es. TRANSMIT) non è possibile determinare in modo univoco la posizione degli assi macchina dalle posizioni del sistema di coordinate pezzo SCP (ambiguità). Durante il normale funzionamento, l’univocità deriva normalmente dall’antefatto e dalla condizione che, un movimento continuo nel SCP deve corrispondere ad un movimento degli assi macchina. Nella sorveglianza dei limiti software con l’ausilio della funzione CALCPOSI, per ovviare all’ambiguità in questi casi viene utilizzata perciò la posizione attuale degli assi macchina. Eventualmente prima di CALCPOSI deve essere programmato uno STOPRE per poter utilizzare la funzione con posizioni degli assi macchina valide. Durante il movimento nel percorso impostato, dai settori di protezione non viene assicurato il mantenimento della distanza specificata in _DLIMIT[3]. Per questo al prolungamento del punto finale restituito in _MOVDIST, nessun settore di protezione viene superato di questa distanza. La retta però, nel suo andamento, può passare senza limitazioni davanti ad un settore di protezione.

Nota Per maggiori informazioni sulle limitazioni del campo di lavoro vedere /PG/ Manuale di programmazione, Concetti fondamentali, sui limiti software vedere /FB1/ Manuale delle funzioni di base; Sorveglianze assi, Settori di protezione (A3).

Settori di protezioni 3.3 Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI)

Preparazione del lavoro 260 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 261

Istruzioni di percorso speciali 44.1 4.1 Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP,

CACN)

Funzioni Attraverso i seguenti comandi è possibile spostare mediante numeri di posizione gli assi lineari e rotanti sulle posizioni dell'asse fisse definite nelle tabelle dei dati macchina. Questo tipo di programmazione viene definito "Spostamento di posizioni codificate".

Sintassi CAC(<n>) CIC(<n>) CACP(<n>) CACN(<n>)

Significato CAC(<n>) Spostamento della posizione codificata dal numero di posizione n CIC(<n>) Spostamento della posizione codificata, partendo dal numero di

posizione corrente, di n posti in avanti (+n) o all'indietro (-n) CDC(<n>) Spostamento della posizione codificata dal numero di posizione n

secondo il percorso più breve (solo per assi rotanti)

CACP(<n>) Spostamento della posizione codificata dal numero di posizione n in direzione positiva (solo per assi rotanti)

CACN(<n>) Spostamento della posizione codificata dal numero di posizione n in direzione negativa (solo per assi rotanti)

<n> Numero di posizione all'interno della tabella dei dati macchina Campo dei valori: 0, 1, … (numero max. di posti nella tabella - 1)

Istruzioni di percorso speciali 4.1 Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN)

Preparazione del lavoro 262 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Spostamento di posizioni codificate di un asse di posizionamento Codice di programma Commento

N10 FA[B]=300 ; Avanzamento per asse di posizionamento B

N20 POS[B]=CAC(10) ; Spostamento della posizione codificata dal numero di posizione 10

N30 POS[B]=CIC(-4) ; Spostamento della posizione codificata dal "numero di posizione corrente" - 4

Bibliografia ● Manuale di guida alle funzioni, Funzioni di ampliamento; Assi divisori (T1) ● Manuale di guida alle funzioni, Azioni sincrone

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 263

4.2 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Funzioni I profili dei pezzi che presentano curvatura libera non possono essere descritti analiticamente in maniera esatta. L'accostamento a questo tipo di profilo può quindi essere effettuato attraverso un numero limitato di punti di appoggio, ad esempio durante la digitalizzazione delle superfici. Per la creazione delle superfici digitalizzate su un pezzo è necessario che i punti di appoggio vengano collegati a una descrizione del profilo. Ciò rende possibile l'interpolazione spline. Uno spline definisce una curva che si compone di polinomi di 2° o 3° grado. Le proprietà dei punti di appoggio di uno spline possono essere definite a seconda del tipo di spline utilizzato.

I seguenti tipi di spline sono disponibili per SINUMERIK solution line: ● A-Spline ● B-Spline ● C-Spline

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 264 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi In generale: ASPLINE X... Y... Z... A... B... C... BSPLINE X... Y... Z... A... B... C... CSPLINE X... Y... Z... A... B... C...

Con B-Spline sono inoltre programmabili: PW=<n> SD=2 PL=<Valore>

Con A- e C-Spline sono inoltre programmabili: BAUTO/BNAT/BTAN EAUTO/ENAT/ETAN

Significato Tipo di interpolazione spline: ASPLINE Comando per l'attivazione dell'interpolazione A-Spline BSPLINE Comando per l'attivazione dell'interpolazione B-Spline CSPLINE Comando per l'attivazione dell'interpolazione C-Spline I comandi ASPLINE, BSPLINE e CSPLINE hanno effetto modale e

rientrano nel gruppo dei comandi di movimento. Punti di appoggio o punti di controllo: X... Y... Z... A... B... C... Posizioni in coordinate cartesiane

Peso del punto (solo B-Spline): PW Con il comando PW, per ciascun punto di appoggio è possibile la

programmazione di un cosiddetto"Peso del punto". "Peso del punto" Campo dei valori: 0 ≤ n ≤ 3 Gradino percentuale:

0.0001 n > 1 La curva viene stretta maggiormente

dal punto di controllo.

<n>

Effetto:

n < 1 La curva viene stretta in maniera minore dal punto di controllo.

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 265

Grado spline (solo B-Spline): SD

Come standard viene utilizzato un poligono di 3° grado. Attraverso la programmazione di SD=2, è anche possibile utilizzare un poligono di 2° grado.

Distanza tra i nodi (solo B-Spline): PL Le distanze tra i nodi vengono calcolate internamente nel modo

più adatto. Tuttavia, il controllo può anche elaborare distanze tra i nodi impostate, indicate con il comando PL come cosiddetta lunghezza intervalli parametri. Lunghezza intervalli parametri <Valore>

Campo dei valori: come quota del percorso Comportamento di raccordo all'inizio della curva spline (solo A- o C-Spline): BAUTO Nessuna impostazione per il comportamento di raccordo. L'inizio

si ottiene dalla posizione del primo punto. BNAT curvatura nulla BTAN Raccordo tangenziale al blocco precedente (posizione di

cancellazione) Comportamento di raccordo alla fine della curva spline (solo A- o C-Spline): EAUTO Nessuna impostazione per il comportamento di raccordo. La fine

si ricava dalla posizione dell'ultimo punto. ENAT Curvatura nulla ETAN Raccordo tangenziale al blocco precedente (posizione di

cancellazione)

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 266 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Il comportamento di raccordo programmabile non ha effetti sulla B-Spline. La B-Spline è sempre tangente al poligono di controllo, sia nel punto di partenza sia in quello di arrivo.

Condizioni marginali ● La correzione raggio utensile è applicabile. ● Il monitoraggio della collisione viene effettuato nella proiezione sul piano.

Esempi Esempio 1: B-Spline Codice di programma 1 (tutti i pesi a 1) N10 G1 X0 Y0 F300 G64 N20 BSPLINE N30 X10 Y20 N40 X20 Y40 N50 X30 Y30 N60 X40 Y45 N70 X50 Y0

Codice di programma 2 (pesi differenti) N10 G1 X0 Y0 F300 G64 N20 BSPLINE N30 X10 Y20 PW=2 N40 X20 Y40 N50 X30 Y30 PW=0.5 N60 X40 Y45 N70 X50 Y0

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 267

Codice di programma 3 (poligono di controllo) Commento

N10 G1 X0 Y0 F300 G64

N20 ; assente

N30 X10 Y20

N40 X20 Y40

N50 X30 Y30

N60 X40 Y45

N70 X50 Y0

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 268 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: C-Spline, all'inizio e alla fine della curvatura nulla Codice di programma N10 G1 X0 Y0 F300 N15 X10 N20 BNAT ENAT N30 CSPLINE X20 Y10 N40 X30 N50 X40 Y5 N60 X50 Y15 N70 X55 Y7 N80 X60 Y20 N90 X65 Y20 N100 X70 Y0 N110 X80 Y10 N120 X90 Y0 N130 M30

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 269

Esempio 3: Interpolazione spline (A-Spline) e trasformazione delle coordinate (ROT) Programma principale: Codice di programma Commento

N10 G00 X20 Y18 F300 G64 ; Raggiungere il punto di partenza.

N20 ASPLINE ; Attivare il tipo di interpolazione A-Spline.

N30 KONTUR ; Primo richiamo del sottoprogramma.

N40 ROT Z-45 ; Trasformazione di coordinate: Rotazione del sistema di coordinate pezzo di -45° attorno all'asse Z.

N50 G00 X20 Y18 ; Accostare il punto di partenza del profilo.

N60 KONTUR ; Secondo richiamo del sottoprogramma.

N70 M30 ; Fine programma

Sottoprogramma "Kontur" (Profilo) (contiene le coordinate del punto di appoggio): Codice di programma

N10 X20 Y18

N20 X10 Y21

N30 X6 Y31

N40 X18 Y31

N50 X13 Y43

N60 X22 Y42

N70 X16 Y58

N80 X33 Y51

N90 M1

Nella figura seguente, oltre alla curva spline risultante dall'esempio di programmazione (ASPLINE), sono contenute anche le curve spline che si sarebbero ottenute con l'attivazione di un'interpolazione B- o C-Spline (BSPLINE, CSPLINE):

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 270 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Vantaggi dell'interpolazione Spline Utilizzando l'interpolazione spline, contrariamente ai blocchi di rette G01 si ottengono i seguenti vantaggi: ● Riduzione del numero di blocchi di partprogram richiesti per la descrizione del profilo ● Andamento dolce, di minor impatto sulla meccanica, nei raccordi tra i blocchi di

partprogram

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 271

Caratteristiche e applicazione dei diversi tipi di spline Tipo di spline Caratteristiche e utilizzo A-Spline

Proprietà: • Andamento esatto attraverso i punti di appoggio impostati. • L'andamento della curva è a tangente, ma non a curvatura, costante. • Creazione ridotta di oscillazioni indesiderate. • L'azione delle modifiche dei punti di appoggio è locale, ciò significa che la

modifica di un punto di appoggio ha effetto al massimo su 6 punti vicini. Utilizzo La A-Spline è particolarmente adatta per l'interpolazione di andamenti di curve con rilevanti modifiche della pendenza (ad esempio curve con andamento a forma di scala).

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 272 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Tipo di spline Caratteristiche e utilizzo B-Spline

Proprietà: • Andamento non attraverso i punti di appoggio impostati, ma solo nelle loro

vicinanze. La curva viene stretta mediante i punti di appoggio. Ponderando i punti di appoggio con un fattore, è possibile influenzare ulteriormente l'andamento della curva.

• L'andamento della curva è a tangente e a curvatura costante. • Assenza di oscillazioni indesiderate. • L'azione delle modifiche dei punti di appoggio è locale, ciò significa che la

modifica di un punto di appoggio ha effetto al massimo su 6 punti vicini. Utilizzo La B-Spline è stata concepita fondamentalmente come interfaccia con i sistemi CAD.

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 273

Tipo di spline Caratteristiche e utilizzo C-Spline

Proprietà: • Andamento esatto attraverso i punti di appoggio impostati. • L'andamento della curva è a tangente e a curvatura costante. • Creazione frequente di oscillazioni indesiderate, in particolare nei punti con

rilevanti modifiche della pendenza. • L'azione delle modifiche dei punti di appoggio è globale, ciò significa che la

modifica di un punto di appoggio ha effetto sull'intero andamento della curva. Utilizzo La C-Spline può essere utilizzata correttamente se i punti di appoggio si trovano su una curva analiticamente nota (cerchio, parabola, iperbole).

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro 274 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Confronto tra i tre tipi di spline con gli stessi punti di appoggio

Numero minimo di blocchi per spline I codici G ASPLINE, BSPLINE e CSPLINE collegano i punti finali di blocchi con delle spline. In questa operazione deve essere calcolata contemporaneamente una sequenza di blocchi (punti finali). La dimensione standard del buffer per il calcolo è di 10 blocchi. Non tutte le informazioni del blocco sono punti finali di una spline. Il controllo numerico ha comunque bisogno nei 10 blocchi di un determinato numero di blocchi di punti finali di spline. Tipo di spline Numero minimo di blocchi per spline A-Spline: di ogni 10 blocchi, almeno 4 devono essere blocchi spline.

I blocchi di commento e i calcoli parametrici non vengono considerati in questo conteggio.

B-Spline: di ogni 10 blocchi, almeno 6 devono essere blocchi spline. I blocchi di commento e i calcoli parametrici non vengono considerati in questo conteggio.

C-Spline: Il numero minimo necessario di blocchi spline si ottiene dalla somma seguente: valore dato da MD20160 $MC_CUBIC_SPLINE_BLOCKS + 1 In MD20160 viene inserito il numero di punti per il calcolo della sezione spline. L'impostazione standard è 8. Di ogni 10 blocchi, almeno 9 devono essere blocchi spline.

Istruzioni di percorso speciali 4.2 Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 275

Nota Se il valore tollerato viene superato per difetto e se un asse compreso nella spline viene programmato come asse di posizionamento, viene emesso un allarme.

Raggruppamento di blocchi spline brevi Dall'interpolazione Spline si possono ottenere blocchi brevi, che determinano una riduzione superflua della velocità di avanzamento. Con la funzione "Raggruppamento di blocchi spline brevi" è possibile riunire questi blocchi in modo che la lunghezza del blocco risultante sia sufficientemente elevata e non determini una riduzione della velocità di avanzamento. La funzione viene attivata tramite il dato macchina specifico per canale: MD20488 $MC_SPLINE_MODE (impostazione per interpolazione Spline) Bibliografia: Manuale di guida alle funzioni; Funzioni di base; Funzionamento continuo, arresto preciso, LookAhead (B1), capitolo: Raggruppamento di blocchi spline brevi

Istruzioni di percorso speciali 4.3 Raggruppamento spline (SPLINEPATH)

Preparazione del lavoro 276 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

4.3 4.3 Raggruppamento spline (SPLINEPATH)

Funzioni Gli assi da interpolare nel raggruppamento spline vengono selezionati con il comando SPLINEPATH. In una interpolazione spline possono essere coinvolti fino ad 8 assi di contornatura.

Nota Se SPLINEPATH non viene programmato in maniera esplicita, i primi tre assi del canale vengono spostati come raggruppamento spline.

Sintassi La definizione del raggruppamento spline viene effettuata in un blocco a parte: SPLINEPATH(n,X,Y,Z,…)

Significato SPLINEPATH Comando per la definizione di un raggruppamento spline n =1 (valore fisso) X,Y,Z,… Identificatore degli assi di contornitura da interpolare nel

raggruppamento spline

Istruzioni di percorso speciali 4.3 Raggruppamento spline (SPLINEPATH)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 277

Esempio: Raggruppamento spline con tre assi di contornitura Codice di programma Commento

N10 G1 X10 Y20 Z30 A40 B50 F350

N11 SPLINEPATH(1,X,Y,Z) ; Raggruppamento spline

N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 ; C-Spline

N14 X30 Y40 Z50 A60 B70 ; Punti di appoggio

N100 G1 X… Y… ; Disattivazione dell'interpolazione spline

Istruzioni di percorso speciali 4.4 Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Preparazione del lavoro 278 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

4.4 4.4 Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Funzione I sistemi CAD/CAM forniscono generalmente blocchi lineari che rispettano la precisione parametrizzata. Questo provoca, nel caso di profili complessi, una considerevole quantità di dati ed eventualmente dei segmenti di percorso brevi. Questi segmenti brevi limitano la velocità di elaborazione. Utilizzando una funzione compressore ha luogo un avvicinamento al profilo impostato attraverso i blocchi lineari mediante blocchi di polinomi. Ne derivano i seguenti vantaggi: ● Riduzione del numero di blocchi di partprogram richiesti per la descrizione del profilo del

pezzo ● Raccordi di blocco costanti ● Aumento della massima velocità vettoriale possibile Sono disponibili le seguenti funzioni compressore: ● COMPON

I raccordi di blocco vengono eseguiti a velocità costante, mentre l'accelerazione degli assi interessati può subire dei salti in corrispondenza dei raccordi di blocco.

● COMPCURV I raccordi di blocco hanno accelerazione costante. In questo modo sui raccordi di blocco viene garantita una velocità e un'accelerazione costanti per tutti gli assi.

● COMPCAD Compressione richiedente un elevato tempo di calcolo e un considerevole spazio in memoria, ottimizzata in termini di qualità della superficie e velocità. COMPCAD si dovrebbe utilizzare solo se gli accorgimenti per il miglioramento della superficie non possono essere garantiti con programmi CAD/CAM.

La funzione compressore viene terminata con COMPOF.

Sintassi COMPON COMPCURV COMPCAD COMPOF

Istruzioni di percorso speciali 4.4 Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 279

Significato

Comando per l'attivazione della funzione compressore COMPON. COMPON: Azione: modale Comando per l'attivazione della funzione compressore COMPCURV. COMPCURV: Azione: modale Comando per l'attivazione della funzione compressore COMPCAD. COMPCAD: Azione: modale

COMPOF: Comando per la disattivazione della funzione compressore al momento attiva.

Nota Per ottenere un ulteriore miglioramento della qualità della superficie, è possibile utilizzare la funzione di raccordatura G642 e la limitazione dello strappo SOFT. Questi comandi vanno scritti all'inizio del programma.

Condizioni marginali ● La compressione blocco NC viene eseguita solo per blocchi lineari (G1). ● Vengono compressi soltanto i blocchi che rispettano una sintassi semplice:

N... G1X... Y... Z... F... ;Commento L'elaborazione degli altri blocchi avviene senza che vi siano modifiche (senza compressione).

● Vengono anche compressi i blocchi di movimento con indirizzi ampliati come C=100 oppure A=AC(100).

● I valori di posizione non devono essere programmati direttamente, ma possono anche essere indicati in maniera indiretta mediante l'assegnazione di parametri, ad esempio X=R1*(R2+R3).

● Se è disponibile l'opzione "Trasformazione dell'orientamento", è anche possibile comprimere blocchi NC nei quali l'orientamento utensile (ed eventualmente anche la rotazione utensile) è programmato mediante vettori di direzione (ved. " Compressione dell'orientamento (Pagina 402) ").

● Il processo di compressione viene interrotto attraverso ogni altra istruzione NC, ad es. l'emissione di una funzione ausiliaria.

Istruzioni di percorso speciali 4.4 Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Preparazione del lavoro 280 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: COMPON Codice di programma Commento

N10 COMPON ; Funzione compressore COMPON On.

N11 G1 X0.37 Y2.9 F600 ; G1 a monte del punto finale e avanzamento.

N12 X16.87 Y–.698

N13 X16.865 Y–.72

N14 X16.91 Y–.799

N1037 COMPOF ; Funzione compressore disattiva.

Esempio 2: COMPCAD Codice di programma Commento

G00 X30 Y6 Z40

G1 F10000 G642 ; Funzione di raccordatura G642 On.

SOFT ; Limitazione dello strappo SOFT On.

COMPCAD ; Funzione compressore COMPCAD On.

STOPFIFO

N24050 Z32.499

N24051 X41.365 Z32.500

N24052 X43.115 Z32.497

N24053 X43.365 Z32.477

N24054 X43.556 Z32.449

N24055 X43.818 Z32.387

N24056 X44.076 Z32.300

COMPOF ; Funzione compressore Off.

G00 Z50

M30

Bibliografia Manuale di guida alle funzioni, Funzioni di base; Funzionamento continuo, arresto preciso, LookAhead (B1), capitolo: "Compressione blocco NC"

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 281

4.5 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Funzione Propriamente, nel caso dell’interpolazione polinomiale (POLY), non si tratta di un tipo di interpolazione Spline. Essa è stata pensata inizialmente come interfaccia verso una programmazione di curve Spline generate esternamente. In questo caso le sezioni spline possono essere programmate direttamente. Questo tipo di interpolazione sgrava il NC dal calcolo dei coefficienti polinomiali. Essa può essere utilizzata in modo ottimale quando i coefficienti provengono direttamente da un sistema CAD o da un postprocessore.

Sintassi Polinomio di 3° grado: POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n

oppure ampliamento a polinomio di 5° grado e nuova sintassi del polinomio: POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5) PL=n POLYPATH("AXES","VECT")

Significato POLY Attivazione dell'interpolazione polinomica con un blocco con

POLY. POLYPATH Interpolazione polinomica selezionabile per entrambi i gruppi

degli assi, AXIS o VECT PO[Identificatore asse/Variabile] Punti finali e coefficienti del polinomio X, Y, Z Identificatore dell'asse xe, ye, ze Indicazione della posizione finale per l'asse in questione;

campo dei valori come quota del percorso

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro 282 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

a2, a3, a4, a5 I coefficienti a2, a3, a4, e a5 vengono scritti con il loro valore; campo dei valori come quota percorso. L'ultimo coefficiente rispettivamente può essere omesso se ha valore zero.

PL Lunghezza dell'intervallo parametro sul quale sono definiti i polinomi (campo di definizione della funzione f(p)). L'intervallo inizia sempre con 0, p può assumere valori da 0 a PL. Campo di valori teorico per PL: 0,0001 … 99 999,9999 Nota: Il valore PL è valido per il blocco in cui si trova. Se non è programmato alcun PL, si ha PL=1.

Attivazione/disattivazione POLY L'interpolazione polinomica, assieme a G0, G1, G2, G3, A-Spline, B-Spline e C-Spline, rientra nel primo gruppo G. Se è attiva, non è necessario programmare la sintassi del polinomio: Gli assi programmati solo con il loro nome e punto finale vengono spostati in modo lineare sul relativo punto finale. Se tutti gli assi sono programmati, il controllo si comporta come con G1. L'interpolazione polinomica viene disattivata mediante un altro comando del gruppo G (ad es. G0, G1).

Coefficiente del polinomio Il valore PO (PO[]=) o ...=PO(...) indica tutti i coefficienti del polinomio per un asse. Conformemente al grado del polinomio, più valori vengono indicati separati da virgole. All'interno di un blocco sono possibili differenti gradi del polinomio per diversi assi. Nuova sintassi del polinomio con PO: La sintassi precedente resta valida.

Richiamo del sottoprogramma POLYPATH Con POLYPATH è possibile indicare l'interpolazione del polinomio in maniera selettiva per i seguenti gruppi di assi:

● POLYPATH("AXES") Tutti gli assi di contornitura e gli assi supplementari.

● POLYPATH("VECT") Assi di orientamento (in caso di trasformazione dell'orientamento).

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 283

Di norma, per entrambi i gruppi di assi i polinomi programmati vengono interpolati anche come polinomio. Esempi: POLYPATH("VECT") Per l'interpolazione polinomica vengono selezionati soltanto gli assi di orientamento, tutti gli altri assi si muovono in modo lineare. POLYPATH( ) Disattiva l'interpolazione polinomica per tutti gli assi

Esempio Codice di programma Commento

N10 G1 X… Y… Z… F600

N11 POLY PO[X]=(1,2.5,0.7) PO[Y]=(0.3,1,3.2) PL=1.5 ; Interpolazione polinomica On

N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3

...

N20 M8 H126 …

N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ; Valori misti per gli assi

N27 PO[X]=(10,2.5) PO[Y]=(2.3) ; Nessun PL programmato; si ha PL=1

N30 G1 X… Y… Z. ; Interpolazione polinomica Off

Esempio: Sintassi del polinomio valida con PO La precedente sintassi del polinomio resta valida Nuova sintassi del polinomio (dal SW 6) PO[Identificatore asse]=(.. , ..) Identificatore asse=PO(.. , ..) PO[PHI]=(.. , ..) PHI=PO(.. , ..) PO[PSI]=(.. , ..) PSI=PO(.. , ..) PO[THT]=(.. , ..) THT=PO(.. , ..) PO[]=(.. , ..) PO(.. , ..) PO[variable]=IC(.. , ..) variable=PO IC(.. , ..)

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro 284 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Curva nel piano X/Y

Codice di programma

N9 X0 Y0 G90 F100

N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 285

Descrizione Il controllo è in grado di eseguire curve (traiettorie) per le quali ogni asse di contornitura selezionato segue una funzione polinomio max. 5° grado. La formula generica della funzione polinomiale è: f(p)= a0 + a1p + a2p2 + a3p3 oppure f(p)= a0 + a1p + a2p2 + a3p3 + a4p4 + a5p5 I relativi significati sono: an: coefficienti costanti p: Parametri

Definendo i coefficienti con valori concreti possono essere generati i più diversi tipi di curve (funzione retta, parabola, esponenziale). Impostando i coefficienti a2 = a3 = 0 oppure a2 = a3 = a4 = a5 = 0 si ottiene, ad esempio, una retta con: f(p) = a0 + a1p Vale: a0 = posizione dell'asse al termine del blocco precedente p = PL a1 = (xE - a0 - a2*p2 - a3*p3) / p

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro 286 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

È possibile programmare polinomi, senza che il codice G POLY sia attivo. In questo caso non vengono comunque interpolati i polinomi programmati, ma viene raggiunto in modo lineare (G1) il rispettivo punto finale programmato di ogni asse. Tramite la programmazione di POLY si attiva l'interpolazione polinomica. Inoltre, con codice G POLY attivo, con il sottoprogramma predefinito POLYPATH(...) è possibile selezionare quali assi devono essere interpolati con il polinomio.

Particolarità del polinomio denominatore Per gli assi geometrici è possibile programmare con PO[]=(…) senza indicazione del nome dell'asse, un polinomio denominatore comune. Questo significa che il movimento degli assi geometrici viene interpolato come quoziente di due polinomi. In questo modo è possibile per esempio rappresentare con esattezza sezioni coniche (cerchio, ellisse, parabola, iperbole). Esempio: Codice di programma Commento

POLY G90 X10 Y0 F100 ; Gli assi geometrici si muovono linearmente sulla posizione X10 Y0.

PO[X]=(0,–) PO[Y]=(10) PO[]=(2,1) ; Gli assi geometrici si muovono con un quarto di cerchio alla posizione X0 Y10.

Il coefficiente costante (a0) del polinomio denominatore viene considerato sempre 1, il punto finale indicato è indipendente da G90/G91. Dall'esempio sopraindicato si ha il seguente risultato: X(p) = 10(1) / (1+p2) e Y(p) = 20p / (1+p2) con 0 ≤ p ≤ 1 In funzione dei punti di partenza, dei punti di destinazione, del coefficiente a2 e PL=1 programmati si hanno i seguenti valori intermedi: Numeratore (X) = 10+0*p-p2 Numeratore (Y) = 0+20*p+0*p2 Denominatore = 1+2*p+1*p2

Istruzioni di percorso speciali 4.5 Interpolazione polinomica (POLY, POLYPATH, PO, PL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 287

Quando l'interpolazione polinomica è attiva, la programmazione di un polinomio denominatore con posizioni nulle nell'ambito dell'intervallo [0,PL] viene rifiutata con un allarme. Il polinomio denominatore non ha alcuna influenza sul movimento di assi supplementari.

Nota La correzione del raggio utensile è inseribile con G41, G42 anche per l'interpolazione polinomica, ed è utilizzabile analogamente all'interpolazione lineare e circolare.

Istruzioni di percorso speciali 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)

Preparazione del lavoro 288 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

4.6 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)

Funzioni Durante l'interpolazione polinomica, l'utente può scegliere due diverse relazioni tra gli assi FGROUP che determinano la velocità e i restanti assi di contornitura. Questi ultimi devono essere condotti in modo sincrono al percorso vettoriale degli assi FGROUP oppure sincrono al parametro della curva. Gli assi non contenuti in FGROUP hanno quindi due possibilità per seguire la traiettoria: ● in modo sincrono al percorso S (SPATH)

oppure ● in modo sincrono al parametro della curva U degli assi FGROUP (UPATH) Entrambi i tipi di interpolazione del percorso vengono utilizzati in applicazioni differenti e possono essere commutati attraverso i codici G SPATH e UPATH.

Sintassi SPATH UPATH

Significato SPATH Il riferimento di percorso per gli assi FGROUP è la lunghezza dell'arco UPATH Il riferimento di percorso per gli assi FGROUP è il parametro della curva FGROUP Definizione degli assi con avanzamento vettoriale

SPATH, UPATH Attraverso uno dei due codici G (SPATH,UPATH), è possibile selezionare e programmare il comportamento desiderato. I comandi hanno validità modale. Se è attivo SPATH gli assi vengono traslati in modo sincrono al percorso, se è attivo UPATH vengono traslati in modo sincrono al parametro di curvatura. UPATH e SPATH determinano anche la relazione del polinomio F-Wort (FPOLY, FCUB, FLIN) con il movimento vettoriale. Attivazione FGROUP Il riferimento vettoriale per gli assi non rientranti in FGROUP viene impostato attraverso i due comandi di linguaggio contenuti nel 45° gruppo codici G SPATH e UPATH.

Istruzioni di percorso speciali 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 289

Esempio 1 Nell'esempio che segue viene raccordato con G643 un quadrato con lunghezza dei lati pari a 20 mm. Gli scostamenti massimi dal profilo esatto vengono determinati per ogni asse mediante i dati macchina MD33100 $MA_COMPRESS_POS_TOL[...]. Codice di programma Commento

N10 G1 X… Y… Z… F500

N20 G643 ; Raccordo interno al blocco con G643

N30 X0 Y0

N40 X20 Y0 ; mm di lunghezza lati per gli assi

N50 X20 Y20

N60 X0 Y20

N70 X0 Y0

N100 M30

Esempio 2 Il seguente esempio illustra la differenza tra i due tipi di gestione del movimento. In entrambi i casi è attiva la preimpostazione FGROUP(X,Y,Z).

Istruzioni di percorso speciali 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)

Preparazione del lavoro 290 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione

N10 G1 X0 A0 F1000 SPATH

N20 POLY PO[X]=(10,10) A10

o Programmazione

N10 G1 X0 F1000 UPATH

N20 POLY PO[X]=(10,10) A10

Nel blocco N20 il percorso S degli assi FGROUP dipende dal quadrato del parametro della curva U. Pertanto, lungo il percorso di X si ottengono differenti posizioni dell'asse sincrono A, in base al fatto che sia attivo SPATH o UPATH.

Condizioni marginali Il riferimento vettoriale impostato non ha significato in caso di ● interpolazioni lineare e circolare, ● in blocchi di filettatura e ● se tutti gli assi di contornitura sono contenuti in FGROUP.

Descrizione Durante l'interpolazione polinomiale - e con questo siano sempre intese l'interpolazione polinomiale ● nel senso più stretto (POLY), ● tutti i tipi di interpolazione Spline (ASPLINE, BSPLINE, CSPLINE) e ● interpolazione lineare con compressore (COMPON, COMPCURV) vengono impostate le posizioni di tutti gli assi di contornitura i attraverso i polinomi pi(U). Il parametro di curvatura U si muove all'interno di un blocco NC da 0 a 1; è quindi normalizzato. Con l'istruzione FGROUP, tra gli assi di contornitura è possibile selezionare quelli ai quali riferire l'avanzamento vettoriale programmato. Una interpolazione a velocità costante sul percorso S di questi assi, durante l'interpolazione polinomiale, significa comunque generalmente una variazione non costante del parametro di curvatura U.

Istruzioni di percorso speciali 4.6 Riferimento vettoriale impostabile, (SPATH, UPATH)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 291

Comportamento del controllo numerico con Reset e dati macchina/opzionali Dopo Reset con il DM 20150: GCODE_RESET_VALUES [44] viene attivato il codice G attivo (45° gruppo codici G). Il valore di default per il tipo di raccordo viene impostato con il DM 20150: GCODE_RESET_VALUES [9] (10° gruppo codici G). Il valore del gruppo di codici G attivo dopo un reset viene determinato dal dato macchina DM 20150: GCODE_RESET_VALUES [44]. Per mantenere la compatibilità con gli impianti esistenti, come valore standard viene impostato SPATH. I dati macchina assiali DM 33100: COMPRESS_POS_TOL hanno un significato ampliato: essi contengono la tolleranza per le funzioni di compressione e per i raccordi con G642.

Istruzioni di percorso speciali 4.7 Misura con tastatore a commutazione (MEAS, MEAW)

Preparazione del lavoro 292 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

4.7 4.7 Misura con tastatore a commutazione (MEAS, MEAW)

Funzione Con la funzione "Misure con tastatore in commutazione" le posizioni reali sul pezzo vengono raggiunte e all'intervento del fronte del tastatore di misura vengono scritte per ogni asse nelle corrispondenti celle di memoria.

Programmazione dei blocchi di misura Per la programmazione di questa funzione sono disponibili i seguenti comandi:

● MEAS Con il comando MEAS viene cancellato il percorso residuo tra posizione reale e posizione di riferimento.

● MEAW Per particolari misure, per le quali è necessario raggiungere in ogni caso la posizione programmata, viene utilizzata la funzione MEAW.

MEAS e MEAW sono attivi blocco per blocco e vengono programmati con le istruzioni di movimento. Gli avanzamenti ed i tipi di interpolazione (G0, G1, ...), al pari del numero di assi, devono essere adattati al rispettivo problema di misura.

Istruzioni di percorso speciali 4.7 Misura con tastatore a commutazione (MEAS, MEAW)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 293

Lettura dei risultati delle misure I risultati delle misure, per gli assi rilevati con il tastatore, sono disponibile nelle seguenti variabili:

● $AA_MM[<asse>] Risultati delle misure nel sistema di coordinate macchina

● $AA_MW[<asse>] Risultati delle misure nel sistema di coordinate pezzo

Nella lettura di queste variabili non viene generato internamente alcuno stop preelaborazione.

Nota Con STOPRE nel programma NC si deve programmare uno stop preelaborazione nella posizione più idonea. Altrimenti vengono letti dei valori errati.

Sintassi MEAS=<TE> G... X... Y... Z... MEAW=<TE> G... X... Y... Z...

Significato

Istruzione: Misura con cancellazione del percorso residuo MEAS

Efficacia: blocco a blocco Istruzione: Misura senza cancellazione del percorso residuo MEAW

Efficacia: blocco a blocco Evento trigger per attivare la misura Tipo: INT Campo dei valori: -2, -1, 1, 2

Nota: Esistono al massimo 2 tastatori di misura (a seconda dell'esecuzione).

Significato: (+)1 fronte di salita del tastatore 1 (su ingresso di misura 1) -1 fronte di discesa del tastatore 1 (su ingresso di misura 1)

(+)2 fronte di salita del tastatore 2 (su ingresso di misura 2) -2 fronte di discesa del tastatore 2 (su ingresso di misura 2)

<TE>

Nota: Esistono al massimo 2 tastatori di misura (a seconda dell'esecuzione).

G... Tipo di interpolazione, ad es. G0, G1, G2 o G3 X... Y... Z... punto di arrivo in coordinate cartesiane

Istruzioni di percorso speciali 4.7 Misura con tastatore a commutazione (MEAS, MEAW)

Preparazione del lavoro 294 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Codice di programma Commento

N10 MEAS=1 G1 F1000 X100 Y730 Z40 ; Blocco di misura con tastatore di misura sul primo ingresso di misura ed interpolazione lineare. Lo stop preelaborazione viene generato automaticamente.

...

Ulteriori informazioni Stato dell'ordine di misura Nel caso in cui nel programma sia necessario valutare se il tastatore di misura si sia attivato o meno, è possibile interrogare la variabile di stato $AC_MEA[n] (n= numero del tastatore di misura): Valore Significato 0 Funzione di misura non eseguita 1 Funzione di misura terminata correttamente (il tastatore di misura si è attivato)

Nota Se il tastatore di misura viene deviato nel programma, la variabile viene impostata su 1. All'avvio di un blocco di misura, la variabile viene automaticamente impostata sullo stato iniziale del tastatore.

Rilevamento dei valori di misura Vengono rilevate le posizioni di tutti gli assi lineari e di posizionamento del blocco spostati (il numero massimo di assi dipende dalla configurazione del controllo). Con MEAS il movimento viene frenato in modo definito dopo la disattivazione del tastatore di misura.

Nota Se in un blocco di misura è programmato l'asse GEO, i valori di misura vengono memorizzatiper tutti gli assi GEO correnti. Se in un blocco di misura è programmato un asse coinvolto in una trasformazione, i valori di misura di tutti gli assi coinvolti nella suddetta trasformazione vengono memorizzati.

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 295

4.8 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Funzione Nelle misure assiali si possono utilizzare più tastatori di misura e più sistemi di misura. Con MEASA o MEAWA, per gli assi di volta in volta programmati vengono rilevati fino a quattro valori di misura per ciascuna misura e memorizzati nelle variabili di sistema in maniera adeguata all'evento trigger. I comandi di misura continui possono essere eseguiti con il comando MEAC. In questo caso i risultati delle misure vengono depositati nelle variabili FIFO. Anche per MEAC sono possibili al massimo quattro valori di misura per ogni misura.

Lettura dei risultati delle misure I risultati di misura sono disponibili nelle seguenti variabili: ● $AA_MM1...4[<asse>]

Risultati delle misure nel sistema di coordinate macchina ● $AA_MW1...4[<asse>]

Risultati delle misure nel sistema di coordinate pezzo

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 296 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi MEASA[<asse>]=(<modo>,<TE1>,...,<TE4>) MEAWA[<asse>]=(<modo>,<TE1>,...,<TE4>) MEAC[<asse>]=(<modo>,<memoria_misura>,<TE1>,...,<TE4>)

Nota MEASA e MEAWA sono attivi nel blocco e possono essere programmati insieme in un blocco a sè stante. Se MEASA/MEAWA vengono programmati in un blocco con MEAS/MEAW, viene emessa una segnalazione di errore.

Significato

Istruzione: Misura assiale con cancellazione del percorso residuo

MEASA

Efficacia: blocco a blocco Istruzione: Misura assiale senza cancellazione del percorso residuo

MEAWA

Efficacia: blocco a blocco Istruzione: Misura assiale continua senza cancellazione del percorso residuo

MEAC

Efficacia: blocco a blocco <asse> Nome dell'asse canale utilizzato per la misura

Numero a due cifre che specifica il modo operativo (modo di misura e sistema di misura) Modo di misura (decade delle unità): 0 Interruzione del comando di misura. 1 Fino a 4 eventi trigger attivabili contemporaneamente. 2 Fino a 4 eventi trigger attivabili in sequenza. 3 Fino a 4 eventi trigger attivabili in sequenza, ma nessun

monitoraggio dell'evento trigger 1 allo START (gli allarmi 21700/21703 vengono soppressi). Nota: Questo modo non è supportato con MEAC.

Sistema di misura (decade delle decine): 0 (o nessuna indicazione)

sistema di misura attivo

1 sistema di misura 1 2 sistema di misura 2

<modo>

3 entrambi i sistemi di misura

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 297

Evento trigger per attivare la misura Tipo: INT Campo dei valori: -2, -1, 1, 2 Significato:

(+)1 Fronte di salita del tastatore di misura 1 -1 Fronte di discesa del tastatore di misura 1

(+)2 Fronte di salita del tastatore di misura 2

<TE>

-2 Fronte di discesa del tastatore di misura 2 <memoria_misura> Numero del FIFO (memoria ad anello)

Esempi Esempio 1: Misura assiale con cancellazione del percorso residuo nel modo 1 (valutazione in sequenza temporale) a) con sistema di misura 1 Codice di programma Commento

...

N100 MEASA[X]=(1,1,-1) G01 X100 F100 ; Misura nel modo 1 con sistema di misura attivo. Attesa del segnale di misura con fronte di salita/discesa del tastatore di misura 1 nel tratto di percorso verso X = 100.

N110 STOPRE ; Arresto dell'avanzamento

N120 IF $AC_MEA[1]==FALSE GOTOF ENDE ; Verifica della corretta esecuzione della misura.

N130 R10=$AA_MM1[X] ; Salvataggio del valore di misura relativo al primo evento trigger programmato (fronte di salita).

N140 R11=$AA_MM2[X] ; Salvataggio del valore di misura relativo al secondo evento trigger programmato (fronte di discesa).

N150 END:

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 298 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

b) con 2 sistemi di misura Codice di programma Commento

...

N200 MEASA[X]=(31,1,-1) G01 X100 F100 ; Misura nel modo 1 con entrambi i sistemi di misura. Attesa del segnale di misura con fronte di salita/discesa del tastatore di misura 1 nel tratto di percorso verso X = 100.

N210 STOPRE ; Arresto dell'avanzamento

N220 IF $AC_MEA[1]==FALSE GOTOF ENDE ; Verifica della corretta esecuzione della misura.

N230 R10=$AA_MM1[X] ; Salvataggio del valore di misura del sistema di misura 1 con fronte di salita.

N240 R11=$AA_MM2[X] ; Salvataggio del valore di misura del sistema di misura 2 con fronte di salita.

N250 R12=$AA_MM3[X] ; Salvataggio del valore di misura del sistema di misura 1 con fronte di discesa.

N260 R13=$AA_MM4[X] ; Salvataggio del valore di misura del sistema di misura 2 con fronte di discesa.

N270 END:

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 299

Esempio 2: Misura assiale con cancellazione del percorso residuo nel modo 2 (valutazione in sequenza programmata)

Codice di programma Commento

...

N100 MEASA[X]=(2,1,-1,2,-2) G01 X100 F100 ; Misura nel modo 2 con sistema di misura attivo. Attesa del segnale di misura nella sequenza: fronte di salita del tastatore di misura 1, fronte di discesa del tastatore di misura 1, fronte di salita del tastatore di misura 2, fronte di discesa del tastatore di misura 2 nel tratto di percorso verso X=100.

N110 STOPRE ; Arresto dell'avanzamento

N120 IF $AC_MEA[1]==FALSE GOTOF MESSTASTER2 ; Verificare la corretta esecuzione della misura con il tastatore di misura 1.

N130 R10=$AA_MM1[X] ; Salvataggio del valore di misura relativo al primo evento trigger programmato (fronte di salita tastatore di misura 1).

N140 R11=$AA_MM2[X] ; Salvataggio del valore di misura relativo al secondo evento trigger programmato (fronte di salita tastatore di misura 1).

N150 TASTATORE_DI_MISURA2:

N160 IF $AC_MEA[2]==FALSE GOTOF ENDE ; Verificare la corretta esecuzione della misura con il tastatore di misura 2.

N170 R12=$AA_MM3[X] ; Salvataggio del valore di misura relativo al terzo evento trigger programmato (fronte di salita tastatore di misura 2).

N180 R13=$AA_MM4[X] ; Salvataggio del valore di misura relativo al quarto evento trigger programmato (fronte di salita tastatore di misura 2).

N190 END:

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 300 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 3: Misura assiale continua nel modo 1 (valutazione in sequenza temporale) a) Misura di fino a 100 valori di misura

Codice di programma Commento

...

N110 DEF REAL VALORE_MISURA[100]

N120 DEF INT Schleife=0

N130 MEAC[X]=(1,1,-1) G01 X1000 F100 ; Misura nel modo 1 con sistema di misura attivo, salvataggio dei valori di misura in $AC_FIFO1, attesa del segnale di misura con fronte di discesa dal tastatore di misura 1 al tratto di percorso verso X=1000.

N135 STOPRE

N140 MEAC[X]=(0) ; Interruzione della misura al raggiungimento della posizione dell'asse.

N150 R1=$AC_FIFO1[4] ; Salvataggio dei valori di misura accumulati nel parametro R1.

N160 FOR Schleife=0 TO R1-1

N170 MESSWERT[Schleife]=$AC_FIFO1[0] ; Lettura e salvataggio dei valori di misura da $AC_FIFO1.

N180 ENDFOR

b) Misura con cancellazione del percorso residuo secondo 10 valori Codice di programma Commento

...

N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ; Cancellazione del percorso residuo.

N20 MEAC[x]=(1,1,1,-1) G01 X100 F500

N30 MEAC [X]=(0)

N40 R1=$AC_FIFO1[4] ; Numero di valori di misura.

...

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 301

Ulteriori informazioni Job di misura La programmazione può avvenire nel partprogram oppure nelle azioni sincrone (vedere capitolo "Azioni sincrone al movimento"). Per ogni asse, nello stesso istante, può essere attiva una sola funzione di misura.

Nota L'avanzamento deve essere adeguato al tipo di misura. Con MEASA e MEAWA possono essere garantiti risultati di misura affidabili solo con avanzamenti che non generino più di un evento trigger uguale e non più di 4 diversi eventi trigger per ogni clock del regolatore di posizione. Con misure continue tramite MEAC, il rapporto tra il clock di interpolazione e quello di regolazione non può essere superiore a 8:1.

Evento trigger Un evento trigger è costituito dal numero di tastatori di misura e dal criterio di esecuzione (fronte di salita o di discesa) del segnale di misura. Per ogni misura possono essere elaborati fino a 4 eventi trigger del relativo tastatore, quindi fino a due tastatori di misura con due fronti ciascuno. La sequenza dell'elaborazione ed il numero massimo degli eventi trigger dipendono perciò dal modo selezionato.

Nota Per il modo di misura 1 vale: Un evento trigger analogo può essere programmato una sola volta in un ordine di misura!

Modo operativo Con la prima cifra (decade delle decine) del modo operativo si seleziona il sistema di misura desiderato. Se è presente un solo sistema di misura ma viene programmato comunque il secondo, viene utilizzato automaticamente quello esistente.

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 302 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Con la seconda cifra (decade delle unità) si seleziona il modo di misura desiderato. Così facendo si adatta il processo di misura alle possibilità offerte dal controllore utilizzato: ● Modo 1

La rilevazione degli eventi trigger avviene nella sequenza temporale in cui si sono verificati. In questo modo, impiegando moduli a sei assi, è possibile programmare solo un evento trigger oppure impostando più eventi trigger avviene la commutazione automatica al modo 2 (senza segnalazione).

● Modo 2 La rilevazione degli eventi trigger avviene nella sequenza in cui sono stati programmati.

● Modo 3 La rilevazione degli eventi trigger avviene nella sequenza in cui sono stati programmati, tuttavia non c'è alcuna verifica dell'evento trigger 1 allo START.

Nota Utilizzando 2 sistemi di misura si possono programmare solo due eventi trigger.

Misura con e senza cancellazione del percorso residuo Programmando MEASA, il percorso residuo viene cancellato solo dopo l'acquisizione di tutti i valori di misura richiesti. Per particolari misure, per le quali è necessario raggiungere in ogni caso la posizione programmata, viene utilizzata la funzione MEAWA.

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 303

Nota MEASA non è programmabile nelle azioni sincrone. Al suo posto, in una azione sincrona, si può utilizzare MEAWA seguito dalla cancellazione del percorso residuo Se la funzione di misura con MEAWA viene avviata in un'azione sincrona, i valori di misura sono disponibili solo nel sistema di coordinate macchina.

Risultati delle misure per MEASA, MEAWA I risultati di misura sono disponibili nelle seguenti variabili: ● Nel sistema di coordinate macchina: $AA_MM1[<asse>] Valore di misura del sistema di misura programmato con l'evento

trigger 1 ... ... $AA_MM4[<asse>] Valore di misura del sistema di misura programmato con l'evento

trigger 4 ● Nel sistema di coordinate pezzo: $AA_WM1[<asse>] Valore di misura del sistema di misura programmato con l'evento

trigger 1 ... ... $AA_WM4[<asse>] Valore di misura del sistema di misura programmato con l'evento

trigger 4

Nota Nella lettura di queste variabili non viene generato internamente alcuno stop preelaborazione. Con STOPRE si deve programmare uno stop di preelaborazione nella posizione più idonea. Altrimenti vengono letti dei valori errati.

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 304 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Assi geometrici/trasformazioni Se la misura assiale deve essere eseguita per un asse geometrico, è necessario programmare la stessa funzione di misura in modo esplicito anche per i restanti assi geometrici. La stessa cosa vale per gli assi coinvolti in una trasformazione. Esempio: N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1) MEASA[X]=(1,1) G0 Z100

oppure N10 MEASA[Z]=(1,1) POS[Z]=100

Misura con 2 sistemi di misura Quando una misura viene eseguita con due sistemi di misura, ognuno dei due eventi trigger possibili viene rilevato da entrambi i sistemi di misura del relativo asse. L'occupazione delle variabili riservate è definita nel seguente modo: $AA_MM1[<asse>] oppure $AA_MW1[<asse>] Valore di misura del sistema di

misura 1 con evento trigger 1 $AA_MM2[<asse>] oppure $AA_MW2[<asse>] Valore di misura del sistema di

misura 2 con evento trigger 1 $AA_MM3[<asse>] oppure $AA_MW3[<asse>] Valore di misura del sistema di

misura 1 con evento trigger 2 $AA_MM4[<asse>] oppure $AA_MW4[<asse>] Valore di misura del sistema di

misura 2 con evento trigger 2 Stato del tastatore di misura Lo stato del tastatore di misura è disponibile nelle seguenti variabili di sistema: $A_PROBE[<n>] <n>=tastatore_misura Valore Significato 1 Tastatore di misura flesso 0 Tastatore di misura non flesso

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 305

Stato della funzione di misura con MEASA, MEAWA Se nel programma è necessario eseguire un'analisi, si può interrogare lo stato della misura tramite $AC_MEA[<n>], dove n = numero del tastatore di misura. Non appena tutti gli eventi di trigger del tastatore di misura <n> programmati in un blocco sono stati eseguiti, il valore della variabile è 1. Diversamente il valore è 0.

Nota Se la misura viene avviata da azioni sincrone, $AC_MEA non viene più aggiornato. In questo caso devono essere interrogati nuovi segnali di stato del PLC DB31, … DBX62.3 oppure la variabile equivalente $AA_MEAACT[<asse>]. significato: $AA_MEAACT==1: misura attiva $AA_MEAACT==0: misura non attiva

Misura continua (MEAC) Utilizzando MEAC, i valori di misura vengono rilevati nel sistema di coordinate macchina e vengono depositati nella memoria FIFO[n] (memoria circolare). Se per la misura sono stati progettati due tastatori, i valori misurati del secondo tastatore vengono depositati separatamente nella memoria FIFO[n+1] aggiuntiva appositamente progettata (impostabile tramite dati macchina). FIFO è una memoria di tipo circolare nella quale i valori di misura vengono inseriti a rotazione nelle variabili $AC_FIFO, vedere il capitolo "Azioni sincrone al movimento".

Nota Il contenuto FIFO può essere letto solo una volta dalla memoria circolare. Per poter utilizzare più volte i valori di misura, è necessario che gli stessi vengano memorizzati temporaneamente nei dati utente. Se il numero dei valori di misura per la memoria FIFO supera il numero massimo impostato nel dato macchina, la misura viene automaticamente interrotta. Per realizzare una serie di misure senza fine, i valori di misura devono essere letti ciclicamente. La lettura deve avvenire almeno con la stessa frequenza di ingresso dei nuovi valori di misura.

Istruzioni di percorso speciali 4.8 Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione)

Preparazione del lavoro 306 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Errori di programmazione rilevati Vengono rilevati i seguenti errori di programmazione e visualizzati con un allarme: ● MEASA/MEAWA vengono programmati in un blocco con MEAS/MEAW

Esempio: N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100

● MEASA/MEAWA con numero dei parametri <2 oppure >5 Esempio: N01 MEAWA[X]=(1) G01 F100 POS[X]=100

● MEASA/MEAWA con evento trigger diverso da 1/ -1/ 2/ -2 Esempio: N01 MEASA[B]=(1,1,3) B100

● MEASA/MEAWA con modo errato Esempio: N01 MEAWA[B]=(4,1) B100

● MEASA/MEAWA con evento trigger programmato due volte Esempio: N01 MEASA[B]=(1,1,-1,2,-1) B100

● MEASA/MEAWA e asse GEO mancante Esempio: N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) G01 X50 Y50 Z50 F100 ;asse GEO X/Y/Z

● Funzione di misura non univoca con assi GEO Esempio: N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2) G01 X50 Y50 Z50 F100

Istruzioni di percorso speciali 4.9 Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 307

4.9 4.9 Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829)

Funzione Indirizzi OEM Il significato degli indirizzi OEM viene definito dallo stesso utente OEM. La funzionalità viene implementata con cicli compilati. 5 indirizzi OEM sono riservati. Gli identificatori degli indirizzi sono impostabili. Gli indirizzi OEM sono consentiti in ogni blocco.

Parametri Gruppi G riservati Gruppo 1 con OEMIPO1, OEMIPO2 L'utente OEM può definire due ulteriori nomi per le funzioni G OEMIPO1, OEMIPO2. Questa funzionalità viene implementata con i cicli compilati ed è riservata agli utenti OEM. ● Gruppo 31 con G810 ... G819 ● Gruppo 32 con G820 ... G829 Per l’utente OEM sono riservati due gruppi di funzioni G con ognuno 10 funzioni G disponibili. In questo modo le funzioni implementate dall’utente OEM possono essere utilizzate esternamente. Funzioni e sottoprogrammi Inoltre gli utenti OEM possono anche creare funzioni e sottoprogrammi predefiniti con trasferimento dei parametri.

Istruzioni di percorso speciali 4.10 Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621)

Preparazione del lavoro 308 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

4.10 4.10 Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621)

Funzioni Con il rallentamento automatico sugli spigoli, l’avanzamento viene ridotto a forma di campana poco prima dello spigolo interessato. Inoltre la misura dei comportamenti dell’utensile rilevanti per la lavorazione, può essere parametrizzata tramite dati di setting. Si tratta di: ● Inizio e fine della riduzione dell’avanzamento ● Override con il quale viene ridotto l’avanzamento ● riconoscimento degli spigoli rilevanti Come spigoli rilevanti vengono intesi quelli il cui angolo interno è inferiore al valore impostato nei dati di setting. Con il valore di default FENDNORM viene disattivata la funzione dell'override automatico sugli spigoli. Bibliografia: /FBA/ Descrizione delle funzioni, Linguaggi ISO

Sintassi FENDNORM G62 G41 G621

Significato FENDNORM Rallentamento automatico sullo spigolo OFF G62 Rallentamento d'angolo sugli spigoli interni con correzione raggio utensile

attiva G621 Rallentamento su tutti gli spigoli con correzione raggio utensile attiva

G62 ha effetto solo sugli spigoli interni con ● correzione raggio utensile attiva G41, G42 e ● funzionamento continuo attivo G64, G641 Il relativo spigolo viene raggiunto con l’avanzamento ridotto che deriva da: F * (override per la riduzione dell’avanzamento) * override dell’avanzamento La riduzione max. dell’avanzamento viene raggiunta esattamente quando l’utensile, con traiettoria riferita al centro, deve eseguire il cambio di direzione sul relativo spigolo. G621 ha un effetto analogo a G62 su ogni spigolo, degli assi definiti con FGROUP.

Istruzioni di percorso speciali 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 309

4.11 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Funzione In modo analogo al criterio di cambio blocco con interpolazione vettoriale (G601, G602 e G603), il criterio di fine movimento può essere programmato con interpolazione del singolo asse in un partprogram oppure in azioni sincrone per assi comandati/PLC. A seconda del criterio di fine movimento impostato, i blocchi di partprogram o i blocchi del ciclo tecnologico vengono terminati con movimenti del singolo asse con velocità diverse. La stessa cosa vale il PLC tramite i blocchi FC15, FC16 e FC18.

Sintassi FINEA[<asse>] COARSEA[<asse>] IPOENDA[<asse>] IPOBRKA(<asse>[,<istante>]) ADISPOSA(<asse>[,<modo>,<dimensioni_finestra>])

Significato FINEA: Fine movimento al raggiungimento dell'"arresto preciso fine" COARSEA: Fine movimento al raggiungimento dell'"arresto preciso

grossolano" IPOENDA: Fine movimento al raggiungimento dello "stop interpolatore" IPOBRKA: È possibile un cambio blocco nella rampa di frenatura ADISPOSA: Dimensioni della finestra di tolleranza per il criterio di fine

movimento <asse>: Nome dell'asse canale (X, Y, ....) <istante>: Istante in cui si verifica il cambio blocco, riferito alla rampa di

frenatura in % Modo Tipo: INT

0 finestra di tolleranza non attiva 1 finestra di tolleranza riferita alla

posizione di riferimento

<modo>:

Campo dei valori:

2 finestra di tolleranza riferita alla posizione attuale

Dimensioni della finestra di tolleranza Questo valore viene inserito in maniera sincrona all'elaborazione principale nel dato di setting SD43610 $SA_ADISPOSA_VALUE.

<dimensioni_ finestra>:

Tipo: REAL

Istruzioni di percorso speciali 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Preparazione del lavoro 310 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: Fine movimento al raggiungimento dello stop interpolatore

Codice di programma Commento

...

N110 G01 POS[X]=100 FA[X]=1000 ACC[X]=90 IPOENDA[X] ; Movimento alla posizione X100 con una velocità vettoriale di 1000 giri/min, con un valore di accelerazione del 90% e fine del movimento al raggiungimento dello stop interpolatore.

...

N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=2000 ACC[X]=140 IPOENDA[X] ; Movimento alla posizione X50 quando l'ingresso 1 è attivo, con una velocità vettoriale di 2000 giri/min, un valore di accelerazione del 140% e fine del movimento al raggiungimento dello stop interpolatore.

...

Esempio 2: Criterio di cambio blocco rampa di frenatura nel partprogram

Codice di programma Commento

; Impostazione di default attiva

N40 POS[X]=100 ; Il cambio blocco avviene quando l'asse X ha raggiunto la posizione 100 e l'arresto preciso fine.

N20 IPOBRKA(X,100) ; Attivazione del criterio di cambio blocco.

N30 POS[X]=200 ; Il cambio blocco avviene non appena l'asse X inizia a frenare.

N40 POS[X]=250 ; L'asse X non frena alla posizione 200, bensì prosegue fino alla posizione 250; il cambio blocco avviene non appena l'asse X inizia a frenare.

N50 POS[X]=0 ; L'asse X frena e ritorna alla posizione 0; il cambio blocco avviene al raggiungimento della posizione 0 e dell'arresto preciso fine.

N60 X10 F100

N70 M30

...

Istruzioni di percorso speciali 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 311

Esempio 3: Criterio di cambio blocco rampa di frenatura in azioni sincrone Codice di programma Commento

; Nel ciclo tecnologico:

FINEA ; Criterio di fine movimento arresto preciso fine.

POS[X]=100 ; Il cambio blocco del ciclo tecnologico avviene quando l'asse X ha raggiunto la posizione 100 e l'arresto preciso fine.

IPOBRKA(X,100) ; Attivazione del criterio di cambio blocco.

POS[X]=100 ; POS[X]=100; il cambio blocco del ciclo tecnologico avviene non appena l'asse X inizia a frenare.

POS[X]=250 ; L'asse X non frena alla posizione 200, bensì prosegue fino alla posizione 250; il cambio blocco nel ciclo tecnologico avviene non appena l'asse X inizia a frenare.

POS[X]=250 ; L'asse X frena e ritorna alla posizione 0; il cambio blocco avviene al raggiungimento della posizione 0 e dell'arresto preciso fine.

M17

Ulteriori informazioni Lettura del criterio di fine movimento Il criterio di fine movimento impostato può essere interrogato tramite la variabile di sistema $AA_MOTEND[<asse>]: Valore Significato 1 Fine movimento con "arresto preciso fine" 2 Fine movimento con "arresto preciso grossolano" 3 Fine movimento con "Stop-IPO" 4 Criterio di cambio blocco, rampa di frenatura del movimento asse 5 Cambio blocco nella rampa di frenatura con finestra di tolleranza riferita alla “posizione di

riferimento”. 6 Cambio blocco nella rampa di frenatura con finestra di tolleranza riferita alla “posizione

reale”.

Nota Dopo RESET viene mantenuto l'ultimo valore programmato.

Istruzioni di percorso speciali 4.11 Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Preparazione del lavoro 312 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Criterio di cambio blocco durante la rampa di frenatura Il valore percentuale viene impostato sincrono all'elaborazione principale nel dato setting: SD43600 $SA_IPOBRAKE_BLOCK_EXCHANGE Se non viene introdotto nessun valore, viene attivato quello attualmente impostato in questo dato di setting. Si può impostare un campo da 0 % a 100 %. Ulteriore finestra di tolleranza per IPOBRKA Oltre al criterio già presente di cambio blocco, durante la rampa di frenatura è possibile selezionare un ulteriore criterio di cambio blocco "finestra di tolleranza". L'abilitazione avviene solo quando l'asse: ● ha raggiunto come in precedenza il valore % impostato della rampa di frenatura

e ● la posizione attuale o di riferimento non dista dalla posizione finale dell'asse nel blocco di

più di una determinata tolleranza.

Bibliografia Per ulteriori informazioni sul criterio di cambio blocco degli assi di posizionamento, vedere: ● Manuale di guida alle funzioni, Funzioni di ampliamento; Assi di posizionamento (P2) ● Manuale di programmazione, Concetti fondamentali; capitolo "Regolazione

dell'avanzamento"

Istruzioni di percorso speciali 4.12 Blocco parametri servo programmabile (SCPARA)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 313

4.12 4.12 Blocco parametri servo programmabile (SCPARA)

Funzioni Con SCPARA il blocco di parametri (costituito da dati macchina) può essere programmato nel partprogram e in azioni sincrone (precedentemente solo tramite PLC). DB3n DBB9 Bit3 Per evitare conflitti tra richieste dal PLC e dall'NCK, è stato definito un ulteriore bit nelle interconnessioni PLC → NCK: DB3n DBB9 Bit3 ”Impostazione inibita del blocco di parametri tramite SCPARA”. Con l'impostazione del blocco di parametri inibita per SCPARA, non viene emessa alcuna segnalazione di errore nel caso la stessa venga comunque programmata.

Sintassi SCPARA[<Asse>]=<Valore>

Significato SCPARA Definizione del blocco di parametri <Asse> Nome dell’asse canale (X, Y, ...) <Valore> Blocco di parametri desiderato (1<= valore <=6)

Nota Il blocco di parametri attuale può essere interrogato tramite la variabile di sistema $AA_SCPAR[<Asse>]. Con G33, G331 o G332 viene selezionato dal controllo il blocco di parametri più appropriato.Se il blocco di parametri servo deve essere cambiato sia nel partprogram o in un'azione sincrona, sia nel PLC, è necessario ampliare il programma utente PLC.

Bibliografia: /FB1/ Manuale delle funzioni di base; Avanzamenti (V1), capitolo "Influenza sull'avanzamento".

Esempio Codice di programma Commento

...

N110 SCPARA[X]= 3 ; Il 3° blocco di parametri viene selezionato per l'asse X.

...

Istruzioni di percorso speciali 4.12 Blocco parametri servo programmabile (SCPARA)

Preparazione del lavoro 314 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 315

Trasformazioni delle coordinate (FRAME) 55.1 5.1 Trasformazione di coordinate con variabili Frame

Funzione Oltre alle possibilità di programmazione già descritte nel manuale di programmazione "Concetti fondamentali", è possibile determinare la posizione di sistemi di coordinate anche mediante variabili frame predefinite.

Vengono definiti i seguenti sistemi di coordinate: SCM: Sistema di coordinate macchina SCB: Sistema di coordinate base SPZ: Sistema di coordinate del punto zero di base SZI: Sistema di coordinate del punto zero impostabile SCP: Sistema di coordinate pezzo

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro 316 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Cos'è una variabile frame predefinita? Le variabili frame predefinite sono parole chiave, ben definite all'interno del linguaggio del controllo numerico e dotate di un effetto ben preciso e possono essere elaborate in un programma NC. Variabili frame possibili: ● Frame di base (spostamento base) ● Frame impostabili ● Frame programmabili

Assegnazioni di valori e lettura dei valori reali Relazione variabile frame/frame Una trasformazione di coordinate può essere attivata mediante l'assegnazione dei valori di un frame a una variabile frame. Esempio: $P_PFRAME=CTRANS(X,10) Variabile frame: $P_PFRAME significa: frame attuale programmabile. Frame: CTRANS(X,10) significa: spostamento origine programmabile dell’asse X di 10 mm.

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 317

Lettura dei valori reali Mediante variabili predefinite nel partprogram è possibile leggere i valori reali attuali dei sistemi di coordinate: $AA_IM[asse]: lettura valore reale nel MKS $AA_IB[asse]: Lettura valore reale nel SCB $AA_IBN[asse]: lettura valore reale nel BNS $AA_IEN[asse]: lettura valore reale nel ENS $AA_IW[asse]: lettura valore reale nel WKS

5.1.1 Variabili frame predefinite ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME)

$P_BFRAME Variabile frame di base impostabile che crea il riferimento tra il sistema di coordinate di base (BKS) e il sistema di coordinate del punto zero di base (BNS). Se il frame di base descritto con $P_UBFR deve diventare immediatamente attivo nel programma, occorre ● programmare un G500, G54...G599 oppure ● descrivere $P_BFRAME con $ $P_UBFR.

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro 318 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

$P_IFRAME Variabile frame attuale impostabile che crea il riferimento tra il sistema del punto zero di base (BNS) e il sistema del punto zero impostabile (ENS). ● $P_IFRAME corrisponde a $P_UIFR[$P_IFRNUM] ● $P_IFRAME contiene, avendo programmato per es. G54, la traslazione, la rotazione, il

fattore di scala e la specularità definite tramite G54.

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 319

$P_PFRAME Variabile frame attuale programmabile che crea il riferimento fra il sistema di punti zero impostabile (ENS) e il sistema di coordinate del pezzo (WKS). $P_PFRAME contiene il frame risultante ● dalla programmazione di TRANS/ATRANS, ROT/AROT, SCALE/ASCALE,

MIRROR/AMIRROR oppure ● dalla assegnazione di CTRANS, CROT, CMIRROR, CSCALE al FRAME programmabile

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro 320 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

$P_ACTFRAME Frame generale attuale risultante, costituito dalle ● variabili frame attuali $P_BFRAME, ● dalle variabili frame attuali impostabili $P_IFRAME con frame di sistema e ● dalle variabili frame attuali programmabili $P_PFRAME con frame di sistema. Frame di sistema, vedere capitolo "Frame attivi nel canale" $P_ACTFRAME descrive il punto zero attualmente valido del pezzo.

Nel caso che $P_BFRAME, $P_IFRAME oppure $P_PFRAME engano modificati, viene ricalcolata anche $P_ACTFRAME. $P_ACTFRAME corrisponde a $P_BFRAME:$P_IFRAME:$P_PFRAME

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 321

Frame di base e frame impostabile diventano attivi dopo un reset, se il DM 20110 RESET_MODE_MASK è impostato nel seguente modo: Bit0=1, Bit14=1 --> $P_UBFR (frame base) vale Bit0=1, Bit5=1 --> $P_UIFR[$P_UIFRNUM] (frame impostabile) vale

Frame predefiniti impostabili $P_UBFR Con $P_UBFR viene programmato il frame di base, che però non diventa contemporaneamente attivo nel partprogram. Il frame di base descritto con $P_UBFR viene calcolato una volta che: ● è stato attivato il reset e sono settati i bit 0 e 14 del DM RESET_MODE_MASK, ● vengono eseguite le istruzioni G500, G54...G599.

Trasformazioni delle coordinate (FRAME) 5.1 Trasformazione di coordinate con variabili Frame

Preparazione del lavoro 322 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Frame predefiniti impostabili $P_UIFR[n] Con la variabile predefinita $P_UIFR[n] è possibile leggere o scrivere gli spostamenti origine impostabili G54 ... G599 dal partprogram. Nella struttura tali variabili costituiscono un campo unidimensionale del tipo FRAME con il nome $P_UIFR[n].

Abbinamento alle istruzioni G Come default si possono definire 5 frame impostabili $P_UIFR[0]... $P_UIFR[4] oppure 5 istruzioni G equivalenti G500 e G54 ... G57, che con i relativi indirizzi si possono memorizzare valori. $P_IFRAME=$P_UIFR[0] corrisponde a G500 $P_IFRAME=$P_UIFR[1] corrisponde a G54 $P_IFRAME=$P_UIFR[2] corrisponde a G55 $P_IFRAME=$P_UIFR[3] corrisponde a G56 $P_IFRAME=$P_UIFR[4] corrisponde a G57 Mediante dati macchina è possibile modificare il numero dei frame: $P_IFRAME=$P_UIFR[5] corrisponde a G505 ... ... ... $P_IFRAME=$P_UIFR[99] corrisponde a G599

Nota In tal modo è possibile generare fino a 100 sistemi di coordinate, che possono essere richiamati indipendentemente dal programma, per esempio come punto zero per diversi attrezzaggi.

CAUTELA La programmazione di variabili frame e di frame richiede un blocco a sé stante all'interno del programma NC. Eccezione: la programmazione di un frame impostabile con G54, G55, ...

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 323

5.2 5.2 Variabili frame/assegnazione di valori frame

5.2.1 Assegnazione di valori diretti (valore asse, angolo, scala)

Funzioni Queste funzioni permettono di assegnare valori a frame o a variabili di frame direttamente nel programma NC.

Sintassi $P_PFRAME=CTRANS (X, valore asse, Y, valore asse, Z, valore asse, ...) $P_PFRAME=CROT (X, angolo, Y, angolo, Z, angolo, ...) $P_UIFR[..]=CROT (X, angolo, Y, angolo, Z, angolo, …) $P_PFRAME=CSCALE (X, scala, Y, scala, Z, scala, ..) $P_PFRAME=CMIRROR (X, Y, Z) La programmazione di $P_BFRAME avviene allo stesso modo di $P_PFRAME.

Significato CTRANS Spostamento degli assi indicati CROT Rotazione sugli assi indicati CSCALE Modifica della scala per gli assi indicati CMIRROR Inversione di direzione degli assi indicati X Y Z Valore di spostamento in direzione dell'asse geometrico

indicato Valore asse Assegnazione del valore asse della traslazione Angolo Assegnazione dell'angolo di rotazione agli assi indicati Scala Modificare la scala

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro 324 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Assegnando dei valori ai frame attuali programmabili vengono attivate la traslazione, la rotazione e la specularità.

N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)

Impostare con altri valori i componenti ROT del frame Impostare con CROT tutti e tre i componenti di UIFR Codice di programma Commento

$P_UIFR[5]=CROT (X, 0, Y, 0, Z, 0)

N100 $P_UIFR[5, y, rt]=0

N100 $P_UIFR[5, x, rt]=0

N100 $P_UIFR[5, z, rt]=0

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 325

Descrizione È possibile programmare più regole di calcolo l'una dopo l'altra. Esempio: $P_PFRAME=CTRANS(...):CROT(...):CSCALE... È importante tenere conto del fatto che i comandi devono essere concatenati l'uno con l'altro con il due punti (...):(...). In tal modo i comandi vengono collegati fra di loro e poi eseguiti nella sequenza programmata in modo additivo.

Nota I valori programmati con le istruzioni citate vengono assegnati ai frame e memorizzati. I valori diventano attivi solo dopo essere stati assegnati ad una variabile frame attiva $P_BFRAME oppure $P_PFRAME .

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro 326 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

5.2.2 Leggere e modificare le componenti frame (TR, FI, RT, SC, MI)

Funzioni Viene data la possibilità di accedere a singolo dati di un frame, per es. ad un determinato valore di traslazione o angolo di rotazione. Tali valori possono quindi essere modificati o assegnati ad un'altra variabile.

Sintassi R10=$P_UIFR[$P_UIFNUM,X,RT] L'angolo di rotazione RT dell'asse X dello

spostamento origine impostabile attualmente valido $P_UIFRNUM deve essere assegnato alla variabile R10.

R12=$P_UIFR[25,Z,TR] Il valore di spostamento TR in Z del blocco dati del frame impostabile numero 25 deve essere assegnato alla variabile R12.

R15=$P_PFRAME[Y,TR] Il valore di spostamento TR in Y del frame impostabile attuale deve essere assegnato alla variabile R15.

$P_PFRAME[X,TR]=25 Il valore di spostamento TR in X del frame programmabile attuale deve essere modificato. A partire da subito vale X25.

Significato $P_UIFRNUM Con questa variabile viene creata automaticamente la

relazione con lo spostamento origine impostabile attualmente valido.

P_UIFR[n,…,…] Indicando il numero di frame n è possibile accedere al numero di frame n impostabile.

Impostazione del componente che deve essere letto o modificato:

TR TR Translation

FI FI Translation Fine

RT RT Rotation

SC SC Scale, variazione della scala

MI MI Specularità

X Y Z Inoltre (vedere esempio) viene indicato il relativo asse X, Y, Z.

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 327

Campo dei valori per la rotazione RT Rotazione intorno al 1° asse geometrico: -180° ... +180° Rotazione intorno al 2° asse geometrico: -90° ... +90° Rotazione intorno al 3° asse geometrico: -180° ... +180°

Descrizione Richiamo di un frame Impostando le variabili di sistema $P_UIFRNUM è possibile accedere direttamente allo spostamento origine attualmente impostato mediante $P_UIFR oppure G54, G55, ... ($P_UIFRNUM contiene il numero del frame rappresentato attualmente). Tutti gli altri frame $P_UIFR impostabili memorizzati vanno richiamati impostando il corrispondente numero $P_UIFR[n]. Per le variabili frame predefinite e per frame definiti singolarmente va impostato il nome, per es. $P_IFRAME. Richiamare i dati Nelle parentesi quadre sono contenuti il nome dell'asse e il componente frame del valore a cui si intende accedere o che si desidera modificare, per es. [X, RT] oppure [Z, MI].

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro 328 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

5.2.3 Combinazione di frame completi

Funzioni Nel partprogram un frame completo può essere assegnato a un altro frame oppure si possono concatenare frame. I concatenamenti di frame sono opportuni per es. quando si tratta di descrivere diversi pezzi posizionati su un pallet e che devono essere lavorati nell'ambito di una sequenza di produzione.

Per la descrizione di lavorazioni con pallet i componenti frame possono contenere soltanto determinati valori parziali attraverso il cui concatenamento vengono generati diversi punti zero del pezzo.

Sintassi Assegnazione di frame DEF FRAME IMPOSTAZIONE1 IMPOSTAZIONE1=CTRANS(X,10) $P_PFRAME=IMPOSTAZIONE1

DEF FRAME IMPOSTAZIONE4 IMPOSTAZIONE4=$P_PFRAME $P_PFRAME=IMPOSTAZIONE4

Al frame programmabile attuale vengono assegnati i valori del frame autodefinito IMPOSTAZIONE1.

Il frame programmabile attuale viene memorizzato nella memoria intermedia e su richiesta rimemorizzato.

Trasformazioni delle coordinate (FRAME) 5.2 Variabili frame/assegnazione di valori frame

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 329

Catene di frame I frame vengono concatenati nella sequenza in cui sono stati programmati, i componenti frame invece, come ad esempio spostamenti, rotazioni, ecc.), vengono eseguiti in modo additivo uno dopo l'altro. $P_IFRAME=$P_UIFR[15]:$P_UIFR[16] $P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5]

$P_UIFR[15] contiene ad esempio dati per gli spostamenti origine. Al termine vengono elaborati, sulla base degli stessi, i dati di $P_UIFR[16], es. dati per rotazioni. Il frame impostabile 3 viene generato concatenando i frame impostabili 4 e 5.

Nota Occorre osservare che i frame devono essere collegati insieme con l'operatore di concatenamento due punti.

5.2.4 Definizione di nuovi frame (DEF FRAME)

Funzioni Oltre ai frame impostabili predefiniti di cui si è parlato finora è possibile generare anche nuovi frame. Si tratta in tal caso di variabili del tipo FRAME che vanno definite con un nome a libera scelta. Con le funzioni CTRANS, CROT, CSCALE e CMIRROR è possibile assegnare dei valori ai frame nel programma NC.

Sintassi DEF FRAME PALLET1 PALLET1=CTRANS(…):CROT(…)…

Significato DEF FRAME Creazione di un nuovo frame. PALLET1 Nome del nuovo frame =CTRANS(...): CROT(...)...

Assegnazione di valori alle possibili funzioni

Trasformazioni delle coordinate (FRAME) 5.3 Traslazione grossolana e fine (CFINE, CTRANS)

Preparazione del lavoro 330 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

5.3 5.3 Traslazione grossolana e fine (CFINE, CTRANS)

Funzioni Traslazione fine Con l'istruzione CFINE(X, ...,Y ...) può essere programmata una traslazione fine del frame di base e di tutti i frame impostabili. Una traslazione fine può avere luogo solo se il dato macchina MD18600 $MN_MM_FRAME_FINE_TRANS=1. Traslazione grossolana Con CTRANS(...) viene definita la traslazione grossolana.

Le traslazioni grossolane e fini vengono sommate e formano la traslazione complessiva.

Sintassi $P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) : CROT(x, 45) ;concatenamento di traslazione,

;traslazione fine e rotazione $P_UIFR[1]=CFINE(x, 0.5 y, 1.0, z, 0.1) ;tutto il frame viene sovrascritto

;con CFINE, inclusa ;la traslazione grossolana

Trasformazioni delle coordinate (FRAME) 5.3 Traslazione grossolana e fine (CFINE, CTRANS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 331

L'accesso ai singoli componenti della traslazione fine avviene con l'impostazione della FI (Translation Fine). DEF REAL FINEX ;definizione della variabile FINEX FINEX=$P_UIFR[$P_UIFNUM, x, FI] ;lettura della traslazione fine tramite

;la variabile FINEX FINEX=$P_UIFR[3, x, FI]$P ;lettura della traslazione fine

;dell'asse X nel 3.Frame ;tramite la variabile FINEX

Significato CFINE(x, valore, y, valore, z, valore )

Traslazione fine per più assi. Traslazione additiva (Translatation).

CTRANS(x, valore, y, valore, z, valore )

Traslazione grossolana per più assi. Traslazione assoluta (Translatation).

x y z Spostamento origine degli assi (max. 8) Valore Entità di traslazione

Costruttore della macchina Attraverso il dato macchina MD18600 $MN_ MM_FRAME_FINE_TRANS è possibile progettare la traslazione fine nelle seguenti varianti: 0: la traslazione fine non può essere impostata nè programmata. G58 e G59 non sono possibili. 1: la traslazione fine per frame impostabili, frame di base, frame programmabili, G58 e G59 può essere impostata o programmata

Descrizione Una traslazione fine modificata dalla superficie operativa HMI, diventa attiva solo dopo l’attivazione del relativo frame, cioè l’attivazione avviene con G500, G54...G599. Una traslazione fine attiva di un frame resta tale finchè anche il frame è attivo. Per un frame programmabile la traslazione fine non è possibile. Se ad un frame programmabile risulta assegnato un frame con traslazione fine, la traslazione complessiva verrà formata dalla somma della traslazione grossolana e fine. Leggendo il frame programmabile la traslazione fine è sempre pari a zero.

Trasformazioni delle coordinate (FRAME) 5.4 Spostamento origine esterno

Preparazione del lavoro 332 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

5.4 5.4 Spostamento origine esterno

Funzione Lo spostamento origine esterno costituisce un'ulteriore possibilità di spostare il punto zero fra sistema di coordinate di base e sistema di coordinate del pezzo. Per lo spostamento origine esterno possono essere impostati soltanto spostamenti lineari.

Programmazione La programmazione dei valori di spostamento, $AA_ETRANS avviene occupando le variabili di sistema specifiche degli assi. Assegnazione dei valori di spostamento $AA_ETRANS[asse]=RI R è la variabile di calcolo del tipo REAL che contiene il nuovo valore. Lo spostamento origine esterno in genere non viene impostato nel partprogram ma viene settato da PLC.

Nota Il valore scritto nel partprogram diventa attivo soltanto se nell'interfaccia VDI (interfaccia NCU-PLC) è settato il segnale corrispondente.

Trasformazioni delle coordinate (FRAME) 5.5 Traslazione del preset (PRESETON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 333

5.5 5.5 Traslazione del preset (PRESETON)

Funzioni Nel caso di impieghi speciali può rendersi necessario assegnare un nuovo valore reale programmato ad uno o più assi sulla posizione attuale (in stato di fermo).

CAUTELA Con la funzione PRESETON non è più valido il punto di riferimento. Per questo motivo è bene impiegare questa funzione solo nel caso di assi senza obbligo di punto di riferimento. Se si desidera ripristinare il sistema originario occorre eseguire la ricerca del punto di riferimento con G74 - vedere il capitolo "Gestione dei file e del programma".

Sintassi PRESETON(asse, valore, ...)

Significato PRESETON Impostazione del valore reale Asse Impostazione dell'asse macchina Valore Nuovo valore reale relativo all'asse impostato

Nota L'impostazione del valore attuale con azioni sincrone dovrebbe avvenire solo con la parola chiave "WHEN" o "EVERY" .

Trasformazioni delle coordinate (FRAME) 5.5 Traslazione del preset (PRESETON)

Preparazione del lavoro 334 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio L'assegnazione dei valori reali viene eseguita nel sistema di coordinate di macchina - i valori si riferiscono agli assi macchina. N10 G0 A760 N20 PRESETON(A1,60) L'asse A si porta sulla posizione 760. Su tale posizione l'asse di macchina A1 riceve il nuovo valore reale 60. A partire da questo momento il posizionamento avverrà nel nuovo sistema di valori reali.

Trasformazioni delle coordinate (FRAME) 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 335

5.6 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)

Funzioni MEAFRAME è un ampliamento del linguaggio 840D per il supporto dei cicli di misura. La funzione MEAFRAME calcola il frame risultante dai tre punti ideali e dai punti corrispondenti che vengono misurati. Se un pezzo viene posizionato per la lavorazione, nell'ambito del sistema di coordinate cartesiane della macchina, la sua posizione rispetto alla posizione ideale di lavorazione risulta sia spostata sia ruotata. Per una lavorazione o una misura precise sono necessarie una taratura impegnativa oppure modifiche dei movimenti nel partprogram. Un frame può essere definito mediante rilevamento di tre punti nello spazio, dei quali sono note le posizioni ideali. Il rilevamento può avvenire con sensore a contatto oppure ottico che eseguono la tastatura su fori precisi o su sfere di misura situati sulla piastra di supporto.

Sintassi MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY)

Significato MEAFRAME Calcolo frame con 3 punti di misura nello spazio IDEAL_POINT Campo Real bidimensionale che contiene le tre coordinate dei

punti ideali. MEAS_POINT Campo Real bidimensionale che contiene le tre coordinate dei

punti misurati. FIT_QUALITY Variabile REAL,

-1: -2: -4: Valore positivo:

che restituisce le seguenti informazioni: I punti ideali si trovano quasi su una retta: frame non può essere calcolato. La variabile Frame restituita contiene un Frame neutro. I punti di misura si trovano quasi su una retta: frame non può essere calcolato. La variabile Frame restituita contiene un Frame neutro. Il calcolo della matrice di rotazione può non andare a buon fine per un altro motivo. Somma delle deformazioni (distanze tra i punti), che servono per il trasferimento del triangolo misurato in un triangolo ideale congruente.

Trasformazioni delle coordinate (FRAME) 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)

Preparazione del lavoro 336 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Qualità della misura Affinché sia possibile assegnare le coordinate misurate alle coordinate ideali con una traslazione/rotazione combinata, occorre che il triangolo generato dai tre punti sia congruente al triangolo ideale. Ciò si ottiene con l'ausilio di un algoritmo di compensazione, che minimizza la somma dei quadrati degli scostamenti che risultano dal trasferimento del triangolo misurato in quello ideale. L'alterazione effettivamente necessaria dei punti di misura può essere vista come indicatore per la misura della qualità e viene quindi emessa come ulteriore variabile di MEAFRAME .

Nota Il frame creato da MEAFRAME può essere trasformato con la funzione ADDFRAME in un altro frame della catena. Vedere esempio: Concatenamento di Frame "Verkettung mit ADDFRAME". Per ulteriori informazioni sui parametri di ADDFRAME(FRAME, STRING) vedere /FB1/ Manuale delle funzioni di base; Assi, sistemi di coordinate, frame (K2), capitolo "Concatenamento di FRAME".

Esempio Codice di programma Commento

; Partprogram 1

DEF FRAME CORR_FRAME

Impostazione di punti di misura

Programmazione Commento

DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0, 0.0,0.0,10.0)

DEF REAL MEAS_POINT[3,3] = SET (10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8)

; Per la verifica

DEF REAL FIT_QUALITY = 0

DEF REAL ROT_FRAME_LIMIT = 5 ; Consente una torsione di max. 5 gradi della posizione del pezzo

DEF REAL FIT_QUALITY_LIMIT = 3 ; Consente una traslazione di max. 3 mm tra il triangolo ideale e quello misurato

DEF REAL SHOW_MCS_POS1[3]

DEF REAL SHOW_MCS_POS2[3]

DEF REAL SHOW_MCS_POS3[3]

Trasformazioni delle coordinate (FRAME) 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 337

Codice di programma Commento

N100 G01 G90 F5000

N110 X0 Y0 Z0

N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS

_POINT,FIT_QUALITY)

N230 IF FIT_QUALITY < 0

SETAL(65000)

GOTOF NO_FRAME

ENDIF

N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT

SETAL(65010)

GOTOF NO_FRAME

ENDIF

N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT ; Limitazione del 1° angolo RPY

SETAL(65020)

GOTOF NO_FRAME

ENDIF

N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT ; Limitazione del 2° angolo RPY

SETAL(65021)

GOTOF NO_FRAME

ENDIF

N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT ; Limitazione del 3° angolo RPY

SETAL(65022)

GOTOF NO_FRAME

ENDIF

N300 $P_IFRAME=CORR_FRAME ; Attivazione di un frame di campionatura con un frame impostabile

; Verifica del frame attraverso il posizionamento degli assi geometrici sui punti ideali

N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1] Z=IDEAL_POINT[0,2]

N410 SHOW_MCS_POS1[0]=$AA_IM[X]

N420 SHOW_MCS_POS1[1]=$AA_IM[Y]

N430 SHOW_MCS_POS1[2]=$AA_IM[Z]

N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1] Z=IDEAL_POINT[1,2]

N510 SHOW_MCS_POS2[0]=$AA_IM[X]

N520 SHOW_MCS_POS2[1]=$AA_IM[Y]

N530 SHOW_MCS_POS2[2]=$AA_IM[Z]

N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1] Z=IDEAL_POINT[2,2]

N610 SHOW_MCS_POS3[0]=$AA_IM[X]

Trasformazioni delle coordinate (FRAME) 5.6 Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME)

Preparazione del lavoro 338 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N620 SHOW_MCS_POS3[1]=$AA_IM[Y]

N630 SHOW_MCS_POS3[2]=$AA_IM[Z]

N700 G500 ; Disattivazione del frame impostabile, in quanto sono preassegnati frame zero (nessun valore inserito).

No_FRAME ; Disattivazione del frame impostabile, in quanto sono preassegnati frame zero (nessun valore inserito).

M0

M30

Esempio di concatenamento di Frame Concatenamento di MEAFRAME per correzioni La funzione MEAFRAME( ) fornisce un frame di correzione. Se questo frame di correzione viene concatenato con il frame impostabile $P_UIFR[1] che era attivo al richiamo della funzione, es. G54, si ottiene un frame impostabile per ulteriori calcoli del percorso oppure lavorazioni. Concatenamento con ADDFRAME Se questo frame di correzione deve avere effetto in un altro punto della catena dei frame oppure se sono attivi altri frame prima di quello impostabile, è possibile utilizzare la funzione ADDFRAME( ) per il concatenamento in uno dei frame base del canale oppure in un frame di sistema. Nei frame non possono essere attivi: ● specularità con MIRROR ● fattore di scala con SCALE I parametri di ingresso per i valori di riferimento ed i valori attuali sono le coordinate del pezzo. Nel sistema di base del controllo, queste coordinate devono essere sempre impostate in ● metrico oppure inch (G71/G70) e ● riferite al raggio (DIAMOF).

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 339

5.7 5.7 Frame NCU globali

Funzione In ogni NCU i frame globali NCU esistono una sola volta per tutti i canali. I frame globali NCU possono essere scritti e letti da tutti i canali. L'attivazione dei frame globali NCU avviene nel rispettivo canale. Con i frame globali si possono scalare e speculare gli assi canali e gli assi macchina con traslazioni. Relazioni geometriche e concatenamenti di frame Per i frame globali non esiste alcuna correlazione geometrica tra gli assi. Per questo motivo non possono essere eseguite rotazioni né programmazioni di identificatori di assi geometrici. ● Sui frame globali non è possibile applicare le rotazioni. La programmazione di una

rotazione viene rifiutata con l’allarme: "18310 Canale %1 Blocco %2 Frame: rotazione non consentita“.

● È possibile il concatenamento di frame globali e frame specifici per canale. Il frame risultante contiene tutte le parti di frame incluse le rotazioni per tutti gli assi. L'assegnazione di un frame con parti di rotazione a un frame globale viene rifiutata con l'allarme "Frame: rotazione non consentita“.

Frame NCU globali Frame base NCU globali $P_NCBFR[n] È possibile progettare fino a 8 frame base NCU globali. Contemporaneamente possono essere presenti frame di base specifici per canale. I frame globali possono essere scritti e letti da tutti i canali di una NCU. Nella scrittura di frame globali l'utente deve fare attenzione alla coordinazione dei canali. Questo può avvenire ad esempio mediante marker di Wait (WAITMC). Costruttore della macchina Il numero di frame base globali viene progettato; vedere /FB1/ Manuale delle funzioni di base; Assi, sistemi di coordinate, frame (K2).

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro 340 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Frame globali NCU impostabili $P_UIFR[n] Tutti i frame impostabili G500, G54...G599 possono essere progettati come frame globali NCU o specifici per canale. Costruttore della macchina Tutti i frame impostabili possono essere riprogettati in frame globali con l'ausilio di un dato macchina $MN_MM_NUM_GLOBAL_USER_FRAMES. Come indicatore assi nelle istruzioni per frame si possono utilizzare degli identificatori di assi canale e degli identificatori di assi di macchina. La programmazione di identificatori di assi geometrici viene respinta con un allarme.

5.7.1 Frame specifici per canali ($P_CHBFR, $P_UBFR)

Funzione I frame impostabili oppure i frame di base possono essere letti e scritti ● dal partprogram e ● tramite BTSS sia dalla superficie operativa HMI Advanced che dal PLC. La traslazione fine è possibile anche per i frame globali. La soppressione dei frame globali si verifica come per i frame specifici per canale tramite G53, G153, SUPA e G500. Costruttore della macchina Tramite il dato macchina DM28081 MM_NUM_BASE_FRAMES si può progettare il numero di frame di base nel canale. La configurazione standard è concepita in modo che vi sia almeno un frame di base per canale. Sono ammessi al massimo 8 frame di base per canale. Oltre agli 8 frame di base possono esservi anche 8 frame di base globali per l'NCU.

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 341

Frame specifici per un canale $P_CHBFR[n] I frame di base si possono leggere e scrivere tramite la variabile di sistema $P_CHBFR[n]. In fase di scrittura di un frame di base, il frame di base generale non viene attivato finché non viene eseguita un'istruzione G500, G54...G599. La variabile funge prevalentemente da memoria per i processi di scrittura sul frame di base dall'HMI o dal PLC. Queste variabili frame vengono salvate tramite il salvataggio dati. Primo frame di base nel canale Una scrittura sulla variabile predefinita $P_UBFR non attiva contemporaneamente il frame di base con l'indice di campo 0; l'attivazione si verifica solo quando viene eseguita un'istruzione G500, G54...G599. La variabile può anche essere scritta e letta nel programma. $P_UBFR $P_UBFR è identico a $P_CHBFR[0]. Come default è sempre presente un frame base nel canale in modo che la variabile di sistema sia sempre compatibile con le versioni precedenti. Se non vi sono frame di base specifici, durante la scrittura o lettura viene emesso l'allarme "Frame: Istruzione non consentita”.

5.7.2 Frame attivi nel canale

Funzione I frame attivi nel canale vengono impostati con le relative variabili di sistema di questi frame. Questo vale anche per i frame di sistema. Attraverso queste variabili di sistema, nel partprogram è possibile leggere e scrivere il frame di sistema attuale.

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro 342 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Frame attivi attualmente nel canale Panoramica Frame di sistema attuali per: $P_PARTFRAME TCARR e PAROT $P_SETFRAME impostazione valore reale e sfioro $P_EXTFRAME Spostamento origine esterno $P_NCBFRAME[n] Frame di base globali NCU attuali $P_CHBFRAME[n] Frame di base attuali del canale $P_BFRAME 1° frame base attuale nel canale $P_ACTBFRAME Frame di base globale $P_CHBFRMASK e $P_NCBFRMASK Frame di base globale $P_IFRAME Frame impostabile attuale Frame di sistema attuali per: $P_TOOLFRAME TOROT e TOFRAME $P_WPFRAME Punti di riferimento del pezzo $P_TRAFRAME Trasformazioni $P_PFRAME Frame programmabile attuale Frame di sistema attuale per: $P_CYCFRAME Cicli P_ACTFRAME Frame attuale globale Concatenamento di frame Il frame attuale è formato dal frame di

base globale $P_NCBFRAME[n] Frame di base globali NCU attuali Gli elementi di campo del frame di base globale attuale possono essere letti e scritti tramite la variabile di sistema $P_NCBFRAME[n]. Il frame di base così ottenuto, viene incluso nel canale con il processo di scrittura. Il frame modificato è attivo solo nel canale in cui è stato programmato. Se il frame deve essere modificato per tutti i canali di una NCU, occorre scrivere contemporaneamente $P_NCBFR[n] e $P_NCBFRAME[n]. Gli altri canali devono quindi solo attivare il frame, ad esempio con G54. Quando viene scritto un frame di base, viene ricalcolato il frame di base generale.

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 343

$P_CHBFRAME[n] Frame canale attuali Gli elementi di campo del frame di base canale attuale possono essere letti e scritti tramite la variabile di sistema $P_CHBFRAME[n]. Il frame di base così ottenuto viene calcolato nel canale insieme al processo di scrittura. Quando viene scritto un frame di base, viene ricalcolato il frame di base generale. $P_BFRAME 1° frame base attuale nel canale Con la variabile frame predefinita $P_BFRAME, nel partprogramm è possibile leggere e scrivere il frame di base attuale con l'indice di campo 0 che è valido nel canale. Il frame di base scritto viene subito calcolato. $P_BFRAME è identico a $P_CHBFRAME[0]. La variabile di sistema, come default ha sempre un valore valido. Se non vi sono frame di base specifici, durante la scrittura o lettura viene emesso l'allarme "Frame: Istruzione non consentita”. $P_ACTBFRAME Frame base globale La variabili $P_ACTFRAME definisce il frame di base globale concatenato.. Questa variabile è di sola lettura. $P_ACTFRAME corrisponde a $P_NCBFRAME[0] : ... : $P_NCBFRAME[n] : $P_CHBFRAME[0] : ... : $P_CHBFRAME[n].

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro 344 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

$P_CHBFRMASK e $P_NCBFRMASK Frame base globali Frame di base globaleTramite le variabili di sistema $P_CHBFRMASK e $P_NCBFRMASK l'utente può scegliere quali frame di base includere nel calcolo del frame di base "globale". Le variabili possono essere programmate solo nel programma e lette tramite l'interfaccia del pannello operativo (BTSS). Il valore delle variabili viene interpretato come maschera di bit e indica quale elemento di campo del frame di base di $P_ACTFRAME rientra nel calcolo. Con $P_CHBFRMASK si può impostare quali frame di base specifici del canale, mentre con $P_NCBFRMASK, si definisce quali frame di base globali NCU devono essere calcolati. Con la programmazione delle variabili vengono ricalcolati il frame di base ed il frame. Dopo un reset e nell'impostazione di base valgono i seguenti valori $P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK e $P_NCBFRMASK = $MC_CHBFRAME_RESET_MASK. ad es. $P_NCBFRMASK = 'H81' ;$P_NCBFRAME[0] : $P_NCBFRAME[7] $P_CHBFRMASK = 'H11' ;$P_CHBFRAME[0] : $P_CHBFRAME[4] $P_IFRAME Frame impostabile attuale Con la variabile frame predefinita $P_IFRAME, nel partprogramm è possibile leggere e scrivere il frame impostabile attuale che è valido nel canale. Il frame impostabile scritto viene subito incluso nel calcolo. Nei frame impostabili globali NCU il frame modificato è attivo solo nel canale in cui il frame è stato programmato. Se il frame deve essere modificato per tutti i canali di una NCU, occorre descrivere contemporaneamente $P_UIFR[n] e $P_IFRAME. Gli altri canali devono quindi solo attivare il relativo frame, ad esempio con G54. $P_PFRAME Frame programmabile attuale $P_PFRAME PFRAME è il frame programmabile risultante dalla programmazione di TRANS/ATRANS, G58/G59, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR o dall'assegnazione di CTRANS, CROT, CMIRROR, CSCALE al FRAME programmabile. Variabile frame attuale programmabile che crea il riferimento fra il sistema di punti zero impostabile ● (ENS) e il ● sistema di coordinate del pezzo (SCP).

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 345

P_ACTFRAME Frame attuale globale Il frame attuale globale risultante $P_ACTFRAME risulta dal concatenamento di tutti i frame di base, dal frame attuale impostabile e dal frame programmabile. Il frame attuale viene aggiornato ogni volta che si modifica una parte di frame. $P_ACTFRAME corrisponde a $P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME : $P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME

Trasformazioni delle coordinate (FRAME) 5.7 Frame NCU globali

Preparazione del lavoro 346 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Concatenamento di frame Il frame attuale è formato dal frame di base globale, dal frame impostabile, dal frame di sistema e dal frame programmabile in base al frame globale attuale descritto in precedenza.

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 347

Trasformazioni 66.1 6.1 Programmazione generale dei tipi di trasformazione

Funzione generale Per adattare il controllo a diverse cinematiche delle macchine esiste la possibilità di programmare la selezione delle trasformazioni con parametri adatti. Con questi parametri è possibile dichiarare conformemente alla trasformazione selezionata sia l'orientamento dell'utensile nello spazio, sia i movimenti di orientamento degli assi rotanti. Nelle trasformazioni a tre, quattro e cinque assi le indicazioni delle posizioni programmate si riferiscono sempre alla punta dell'utensile, trascinato ortogonalmente alla superficie di lavorazione che si trova nello spazio. Le coordinate cartesiane vengono convertite dal sistema di coordinate di base al sistema di coordinate della macchina e si riferiscono agli assi geometrici. Esse descrivono il punto di lavorazione. Gli assi rotanti virtuali descrivono gli orientamenti dell'utensile nello spazio e vengono programmati con TRAORI. Nella trasformazione cinematica possono essere programmate posizioni nel sistema di coordinate cartesiano. Il controllo trasforma i movimenti programmati con TRANSMIT, TRACYL e TRAANG del sistema di coordinate cartesiano in movimenti degli assi reali della macchina.

Programmazione Trasformazioni a tre, quattro e cinque assi TRAORI La trasformazione di orientamento viene attivata con il comando TRAORI e i tre parametri possibili per numero di trasformatori, vettore di orientamento e offset asse rotante. TRAORI(numero trasformatore, vettore di orientamento, offset asse rotante) Trasformazioni cinematiche Delle trasformazioni cinematiche fanno parte le trasformazioni dichiarate TRANSMIT(numero trasformatore) TRACYL(diametro di lavorazione, numero trasformatore) TRAANG(angolo dell'asse inclinato, numero trasformatore) Disattivazione della trasformazione attiva TRAFOOF consente di disattivare la trasformazione attualmente attiva.

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro 348 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Trasformazione dell'orientamento Trasformazioni a tre, quattro e cinque assi TRAORI Per la lavorazione ottimizzata delle superfici tridimensionali nel campo di lavoro della macchina, oltre ai tre assi lineari X, Y e Z, le macchine utensili necessitano anche di assi supplementari. Gli assi supplementari descrivono l'orientamento nello spazio e verranno successivamente denominati assi di orientamento. Essi sono disponibili come assi rotanti nei quattro tipi di macchina con cinematica diversa. 1. Testina orientabile a due assi, p. es. testina utensile cardanica con un asse rotante

parallelo ad un asse lineare nella tavola utensile fissa. 2. Tavola rotante a due assi, es. testina orientabile fissa con tavola rotante intorno a due

assi. 3. Testina orientabile monoasse e tavola rotante monoasse, p. es. una testina orientabile

rotante con utensile ruotato su tavola rotante intorno ad un asse. 4. Testina orientabile a due assi e tavola rotante monoasse, p. es. una testina utensile

rotante intorno a un asse e una testina orientabile rotante con due utensili rotanti su sé stessi.

Le trasformazioni a 3 e 4 assi sono forme speciali della trasformazione a 5 assi e vengono programmati in modo analogo alle trasformazioni a 5 assi. Con le sue funzioni, la "trasformazione a 3/4/5/6 assi" gestisce gli assi rotanti ordinati ad angolo retto nonché le trasformazioni per la testa di fresatura cardanica e, come qualsiasi altra trasformazione dell'orientamento, anche questa può essere attivata per questi quattro tipi di macchina con TRAORI. Nella trasformazione generica a 5/6 assi l'orientamento dell'utensile ha un ulteriore terzo grado di libertà nel quale, per qualsiasi direzione dell'utensile nello spazio, lo stesso può essere ruotato sul proprio asse. Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazione a 3 ... 5 assi (F2)

Posizione base, indipendente dalla cinematica, dell'orientamento dell'utensile ORIRESET Se è attiva una trasformazione di orientamento con TRAORI, è possibile definire con ORIRESET le posizioni base di fino a 3 assi di orientamento con i parametri opzionali A, B e C. L'assegnazione dei parametri programmati agli assi rotanti avviene secondo la sequenza definita dalla trasformazione degli assi di orientamento. La programmazione di ORIRESET(A, B, C) fa sì che gli assi di orientamento intraprendano un movimento lineare e sincrono dalla loro posizione temporanea alla posizione base definita.

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 349

Trasformazioni cinematiche TRANSMIT e TRACYL Per le fresature su torni può essere programmata per la trasformazione dichiarata 1. una lavorazione sul lato frontale nel portautensile con TRANSMIT oppure una lavorazione di una qualsiasi scanalatura su corpi cilindrici con TRACYL. TRAANG Se l'asse di incremento, p. es. per la rettifica tecnologica, deve poter essere posizionato anche inclinato, con TRAANG può essere programmato un angolo parametrizzabile per la trasformazione dichiarata. Movimento cartesiano PTP Alla trasformazione cinematica appartiene anche il "Movimento cartesiano PTP" con il quale si possono programmare fino a 8 diverse posizioni dello snodo STAT=. Le posizioni vengono programmate nel sistema di coordinate cartesiano; il movimento della macchina avviene in coordinate macchina. Bibliografia: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazione cinematica (M1)

Trasformazioni concatenate È possibile attivare in successione rispettivamente due trasformazioni. In questo modo le quote di movimento per gli assi della prima trasformazione, diventano i dati di ingresso per la seconda trasformazione concatenata. Come prima trasformazione sono possibili: ● Trasformazione dell'orientamento TRAORI ● Trasformazione polare TRANSMIT ● Trasformazione cilindrica TRACYL ● Trasformazione per asse inclinato TRAANG La seconda trasformazione deve essere del tipo "Asse inclinato TRAANG"

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro 350 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.1.1 Movimenti di orientamento nelle trasformazioni

Movimenti di traslazione e movimenti di orientamento I movimenti degli orientamenti programmabili dipendono principalmente dal tipo di macchina. Nella trasformazione a tre, quattro e cinque assi con TRAORI, gli assi rotanti o gli assi lineari orientabili descrivono i movimenti di orientamento dell'utensile. Le variazioni delle posizioni degli assi rotanti coinvolti nella trasformazioni dell'orientamento comportano movimenti di compensazione degli altri assi della macchina. La posizione della punta dell'utensile rimane invariata. A seconda dell'impiego, i movimenti di orientamento dell'utensile possono essere programmati con un identificatore di asse rotante A…, B…, C… degli assi virtuali indicando angoli di Eulero e RPY oppure vettori di direzione e vettori normalizzati alla superficie, vettori normalizzati per l'asse di rotazione di un cono oppure per l'orientamento intermedio su una superficie conica. Nella trasformazione cinematica con TRANSMIT, TRACYL e TRAANG, il controllo trasforma i movimenti programmati del sistema di coordinate cartesiano in movimenti degli assi reali della macchina.

Cinematica di macchina durante la trasformazione a tre, quattro e cinque assi TRAORI Può essere ruotato sia l'utensile, sia la tavola utensile con uno o due assi rotanti. È possibile anche una combinazione di rispettivamente una testina orientabile monoasse e una tavola rotante.

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 351

Tipo di macchina Programmazione dell'orientamento Trasformazione a tre assi, tipi di macchina 1 e 2

Programmazione dell'orientamento dell'utensile solo nel piano ortogonale all'asse rotante. Esistono due assi traslatori (assi lineari) e un asse rotante.

Trasformazione a quattro assi, tipi di macchina 1 e 2

Programmazione dell'orientamento dell'utensile solo nel piano ortogonale all'asse rotante. Esistono tre assi traslatori (assi lineari) e un asse rotante.

Trasformazione a cinque assi, tipi di macchina 3 Testina orientabile monoasse e tavola monoasse

Programmazione della trasformazione dell'orientamento Cinematica con tre assi lineari e due assi rotanti ortogonali. Gli assi rotanti sono paralleli a due dei tre assi lineari.. Il primo asse rotante viene mosso da due assi lineari cartesiani. Esso ruota il terzo asse lineare con l'utensile. Il secondo asse rotante fa ruotare il pezzo.

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro 352 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Trasformazioni generiche a 5/6 assi Tipo di macchina Programmazione della trasformazione dell'orientamento Trasformazione generica a cinque assi, tipi di macchina 4 Testina orientabile a due assi con utensile rotante su se stesso e tavola monoasse

Programmazione della trasformazione dell'orientamento Cinematica con tre assi lineari e tre assi rotanti ortogonali. Gli assi rotanti sono paralleli a due dei tre assi lineari.. Il primo asse rotante viene mosso da due assi lineari cartesiani. Esso ruota il terzo asse lineare con l'utensile. Il secondo asse rotante fa ruotare il pezzo. L'orientamento base dell'utensile può essere programmato tramite una sua rotazione aggiuntiva su se stesso con l'angolo di rotazione THETA.

Durante il richiamo della "trasformazione a tre, quattro e cinque/sei assi generica" è inoltre possibile trasmettere l'orientamento di base dell'utensile. Non valgono più le limitazioni relative alle direzioni degli assi rotanti. Se gli assi rotanti non si trovano esattamente in posizione ortogonale l'uno rispetto all'altro oppure se gli assi rotanti esistenti non sono esattamente paralleli agli assi lineari, la "trasformazione a cinque/sei assi generica" può fornire risultati migliori dell'orientamento dell'utensile.

Trasformazioni cinematiche TRANSMIT, TRACYL e TRAANG Per le fresature su torni o di un asse posizionabile inclinato per la rettifica, in base alla trasformazioni standard valgono le seguenti assegnazioni dell'asse: TRANSMIT Attivazione della trasformazione polare lavorazione frontale in direzione del bloccaggio del pezzo

un asse rotante, un asse di incremento ortogonale all'asse di rotazione, un asse longitudinale parallelo all'asse di rotazione

TRACYL Attivazione della trasformazione sulla superficie cilindrica Lavorazione di un numero qualsiasi di cave sul corpo cilindrico

un asse rotante, un asse di incremento ortogonale all'asse di rotazione, un asse longitudinale parallelo all'asse di rotazione

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 353

TRAANG Attivazione della trasformazione per asse inclinato lavorazione con asse di incremento inclinato

un asse rotante, un asse di incremento ortogonale con angolo parametrizzabile, un asse longitudinale parallelo all'asse di rotazione

Movimento cartesiano PTP Il movimento della macchina avviene nelle coordinate della macchina e viene programmato con: TRAORI Attivazione della trasformazione Movimento punto a punto PTP

Accostamento alla posizione nel sistema di coordinate cartesiano (MKS)

CP Movimento vettoriale degli assi cartesiani in (BKS) STAT La posizione dello snodo dipende dalla trasformazione TU Angolo che devono compiere gli assi per effettuare il percorso

più breve Movimento PTP durante la trasformazione generica a 5/6 assi Il movimento della macchina avviene in coordinate macchina e l'orientamento dell'utensile può essere programmato sia con posizioni di asse rotante, sia con vettori indipendenti dalla cinematica (angolo di Eulero o RPY) o con i vettori direzionali. Sono possibili l'interpolazione dell'asse rotante, l'interpolazione vettoriale con interpolazione circolare ad ampio raggio o l'interpolazione del vettore di orientamento su una superficie conica.

Esempio di trasformazione a tre ... cinque assi per una testa di fresatura cardanica La macchina utensile ha almeno 5 assi dei quali ● Tre assi traslatori per movimenti rettilinei che muovono il punto di lavorazione in una

posizione qualsiasi del campo di lavoro. ● Due assi rotanti orientabili disposti con un angolo progettabile (normalmente 45 gradi)

che consentono all'utensile orientamenti nello spazio limitati ad un posizionamento di 45 gradi su una semisfera.

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro 354 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.1.2 Panoramica della trasformazione dell'orientamento TRAORI

Possibili tipi di programmazione con TRAORI Tipo di macchina Programmazione per la trasformazione attiva TRAORI Tipi di macchina 1, 2 o 3, testina orientabile a due assi o tavola a due assi o una combinazione di testina orientabile monoasse e tavola.

La successione degli assi di orientamento e la direzione di orientamento dell'utensile sono progettabili in funzione della macchina tramite i dati della macchina e in funzione della cinematica della macchina, oppure sono progettabili in funzione del pezzo con orientamento programmabile indipendentemente dalla cinematica della macchina. Le direzioni di rotazione degli assi di orientamento vengono programmate nel sistema di riferimento con: - ORIMKS sistema di riferimento = sistema di coordinate macchina - ORIWKS sistema di riferimento = sistema di coordinate macchina L'impostazione di base è ORIWKS. Programmazione degli assi di orientamento con: A, B, C delle posizioni degli assi macchina in maniera diretta A2, B2, C2 Programmazione degli angoli degli assi virtuali con - ORIEULER tramite angolo di Eulero (standard) - ORIRPY tramite angolo RPY - ORIVIRT1 tramite assi di orientamento virtuali 1a definizione - ORIVIRT2 tramite assi di orientamento virtuali 2a definizione con differenziazione del tipo di interpolazione: Interpolazione lineare - ORIAXES di assi di orientamento o assi macchina Interpolazione del cerchio estesa (interpolazione del vettore di orientamento) - ORIVECT di assi di orientamento Programmazione degli assi di orientamento tramite indicazione A3, B3, C3 dei componenti del vettore (normale alla direzione/superficie) Programmazione dell'orientamento utensile risultante A4, B4, C4 del vettore normale alla superficie all'inizio del blocco A5, B5, C5 del vettore normale alla superficie alla fine del blocco LEAD angolo d'anticipo per l'orientamento utensile TILT angolo laterale per l'orientamento utensile

Trasformazioni 6.1 Programmazione generale dei tipi di trasformazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 355

Tipo di macchina Programmazione per la trasformazione attiva TRAORI Interpolazione del vettore di orientamento su una superficie conica

modifiche all'orientamento su una superficie conica situata in un punto a piacere nello spazio tramite interpolazione: - ORIPLANE nel piano (interpolazione del cerchio estesa) - ORICONCW su una superficie conica in senso orario - ORICONCCW su una superficie conica in senso antiorario A6, B6, C6 del vettore di direzione (asse rotante del cono) -OICONIO interpolazione su una superficie conica con: A7, B7, C7 vettori intermedi (orientamento iniziale e finale) oppure - ORICONTO su una superficie conica del raccordo tangenziale Modifiche dell'orientamento riferite ad un percorso con - ORICURVE impostazione del movimento di due punti di contatto tramite PO[XH]=(xe, x2, x3, x4, x5) polinomi di orientamento fino al 5° grado PO[YH]=(ye, y2, y3, y4, y5) polinomi di orientamento fino al 5° grado PO[ZH]=(ze, z2, z3, z4, z5) polinomi di orientamento fino al 5° grado - ORIPATHS spianamento del percorso di orientamento con A8, B8, C8 La fase di modifica dell'orientamento dell'utensile comprende: direzione e lunghezza del percorso dell'utensile durante il movimento di svincolo

Tipi di macchina 1 e 3 Altri tipi di macchina con rotazione supplementare dell'utensile attorno a sé stesso richiedono un terzo asse rotante Trasformazione dell'orientamento, ad es. trasformazione generica a 6 assi. Rotazioni del vettore di orientamento.

Programmazione delle rotazioni dell'orientamento utensile con LEAD angolo d'anticipo relativo al vettore normale alla superficie PO[PHI] Programmazione di un polinomio fino al 5° grado TILT angolo laterale rotazione intorno alla tangente del percorso (direzione Z) PO[PSI] Programmazione di un polinomio fino al 5° grado THETA angolo di rotazione (rotazione intorno alla direzione dell'utensile in Z) THETA= valore che viene raggiunto a fine blocco THETA=AC(...) commutazione all'impostazione in quote assolute nel blocco THETA=IC(...) commutazione nell'impostazione in quote incrementali nel blocco THETA=Θe Interpolazione dell'angolo programmato G90/G91 PO[THT]=(..) programmazione di un polinomio fino al 5° grado Programmazione del vettore di rotazione - ORIROTA rotazione assoluta - ORIROTR vettore di rotazione relativo - ORIROTT vettore di rotazione tangenziale

Orientamento rispetto al percorso per modifiche di orientamento relative alla traiettoria o rotazione del vettore di rotazione tangenzialmente alla traiettoria

Modifiche dell'orientamento relative al percorso con - ORIPATH orientamento dell'utensile riferito al percorso - ORIPATHS programmazione aggiuntiva del vettore di rotazione in caso di una piega nel percorso di orientamento - ORIROTC vettore di rotazione tangenziale, rotazione verso la tangente vettoriale

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 356 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.2 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

6.2.1 Relazioni generali della testa portautensili cardanica

Funzione Per avere condizioni di taglio ottimali nella lavorazione di superfici curve nello spazio, l'angolo di orientamento dell'utensile deve essere variabile.

Nei dati degli assi è definita la struttura di macchina con la quale è possibile effettuare questo tipo di lavorazione.

Trasformazione a 5 assi Testa utensile cardanica In questo caso, sono i tre assi lineari (X, Y, Z) e i due assi di orientamento (C, A) a determinare l'angolo di orientamento ed il punto di lavoro dell'utensile. Uno dei due assi di orientamento viene utilizzato come asse inclinato (qui nell'esempio A') - molto spesso con un angolo di 45°.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 357

Negli esempi qui riportati la disposizione si riferisce ad una cinematica di macchina CA con testina utensile cardanica!. Costruttore della macchina La successione degli assi di orientamento e la direzione di orientamento dell'utensile possono essere stabilite in funzione della cinematica della macchina tramite dati macchina.

In questo esempio A' si trova sotto l'angolo φ verso l'asse X

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 358 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

In generale valgono le seguenti relazioni possibili: A' si trova sotto l'angolo φ verso l'asse X B' si trova sotto l'angolo φ verso l'asse Y C' si trova sotto l'angolo φ verso l'asse Z

L'angolo l'asse φ può essere progettato tramite dati macchina nel campo da 0° ... +89°. Con asse lineare orientabile Si tratta di un allineamento tra utensili mobili e pezzi mobili. La cinematica si compone di tre assi lineari (X, Y, Z) e di due assi rotanti disposti ad angolo retto. Il primo asse rotante, ad esempio, viene mosso su di una slitta a croce da due assi lineari; l'utensile è disposto parallelamente e si trova sul terzo asse. Il secondo asse rotante fa ruotare il pezzo. Il terzo asse lineare (asse orientabile) si trova nel piano della slitta a croce.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 359

La successione degli assi rotanti e la direzione di orientamento dell'utensile possono essere stabilite in funzione della cinematica della macchina tramite dati macchina. Sono valide le seguenti correlazioni: Assi: Sequenza degli assi: 1° asse rotante A A B B C C 2° asse rotante B C A C A B Asse lineare orientabile Z Y Z X Y X

Per ulteriori descrizioni sulle sequenze degli assi configurabili per la direzione di orientamento dell'utensile vedere Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazioni a 3 ... 5 assi (F2), capitolo Testina di fresatura cardanica, "Parametrizzazione".

6.2.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Funzione L'utente può progettare due o tre assi lineari e un asse rotante. Nelle trasformazioni si parte dal presupposto che l'asse rotante sia in posizione ortogonale rispetto al piano di orientamento. L'orientamento dell'utensile può avvenire solo nel piano ortogonale all'asse rotante. La trasformazione supporta i tipi di macchina con utensile e pezzo in movimento. La progettazione e la programmazione delle trasformazioni a 3 e 4 assi sono uguali a quelle delle trasformazioni a 5 assi. Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazioni a 3 ... 5 assi (F2)

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 360 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione TRAORI(n) oppure TRAORI(n,X,Y,Z,A,B) oppure TRAFOOF

Parametro TRAORI: Attiva la prima trasformazione di orientamento concordata TRAORI(n): Attiva la trasformazione di orientamento concordata con n n: Numero della trasformazione (n = 1 o 2), TRAORI(1) corrisponde

alla trasformazione 1 X,Y,Z: Componente del vettore di orientamento al quale punta l'utensile. A,B: Offset programmabile per gli assi rotanti TRAFOOF: Disattivazione della trasformazione

Orientamento dell'utensile A seconda della direzione di orientamente selezionata dell'utensile è necessario impostare nel programma NC il piano di lavoro attivo (G17, G18, G19) in modo che la correzione della lunghezza utensile agisca nel senso dell'orientamento utensile.

Nota Dopo l'attivazione della trasformazione i dati di posizione (X, Y, Z) si riferiscono sempre alla punta dell'utensile. La modifica delle posizioni degli assi rotanti interessati dalla trasformazione provoca dei movimenti di compensazione degli altri assi macchina tali da lasciare invariata la posizione della punta dell'utensile.

La trasformazione di orientamento è sempre diretta dalla punta dell'’utensile verso il portautensile.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 361

Esempio di trasformazioni generiche l'orientamento di base dell'utensile punta in: TRAORI(1,0,0,1) direzione Z TRAORI(1,0,1,0) direzione Y TRAORI(1,0,1,1) direzione Y/Z (corrisponde alla posizione -45°) Offset per gli assi di orientamento Con l'attivazione della trasformazione di orientamento è possibile programmare un ulteriore offset per gli assi di orientamento. Si possono tralasciare i parametri se viene rispettata la sequenza corretta della programmazione. Esempio TRAORI(, , , ,A,B) se si deve immettere un unico offset. In alternativa alla programmazione diretta, questo offset supplementare per gli assi di orientamento può anche essere rilevato automaticamente dallo spostamento origine momentaneamente attivo. L'acquisizione viene progettata tramite i dati macchina.

6.2.3 Varianti della programmazione dell'orientamento e della posizione base (ORIRESET)

Programmazione dell'orientamento dell'utensile con TRAORI In combinazione con una trasformazione dell'orientamento programmabile TRAORI è possibile programmare tramite gli indicatori di asse rotanti A.., B.., C.., oltre agli assi lineari X, Y e Z, anche posizioni dell'asse o assi virtuali con angoli o componenti vettoriali. Per assi di orientamento e assi macchina sono possibili diversi tipi di interpolazione. Indipendentemente da quali polinomi di orientamento PO[angolo] e polinomi di asse PO[asse] sono attualmente attivi, possono essere programmati diversi tipi di polinomi come ad es. G1, G2, G3, CIP o POLY.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 362 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La modifica dell'orientamento dell'utensile può essere programmata anche tramite vettori di orientamento. In questo caso l'orientamento finale di ogni blocco può essere eseguito tramite programmazione diretta del vettore o tramite programmazione delle posizioni dell'asse rotante.

Nota Varianti della programmazione dell'orientamento per trasformazioni a tre ... cinque assi Nella trasformazione a 3 .. 5 assi, le varianti 1. A, B, C indicazione diretta delle posizioni dell'asse della macchina 2. A2, B2, C2 programmazione dell'angolo degli assi virtuali tramite angolo di Eulero o angolo RPY 3. A3, B3, C3 indicazione dei componenti vettoriali 4. LEAD, TILT indicazione dell'angolo di anticipo e dell'angolo laterale riferito al percorso e alla superficie 5. A4, B4, C4 e A5, B5, C5 vettore normale alla superficie all'inizio e alla fine del blocco 6. A6, B6, C6 e A7, B7, C7 interpolazione e vettore di orientamento su una superficie conica 7. A8, B8, C8 modifica dell'orientamento dell'utensile, direzione e lunghezza di percorso del movimento di svincolo si escludono reciprocamente. I valori con programmazione mista vengono impediti da messaggi di allarme.

Posizione base dell'orientamento dell'utensile ORIRESET La programmazione di ORIRESET(A, B, C) fa sì che gli assi di orientamento intraprendano un movimento lineare e sincrono dalla loro posizione temporanea alla posizione base definita. Se per un asse non viene programmata alcuna posizione base, viene utilizzata la posizione definita a partire dal relativo dato macchina $MC_TRAFO5_ROT_AX_OFFSET_1/2. I frame eventualmente attivi degli assi rotanti non vengono considerati.

Nota Solo se è attiva una trasformazione dell'orientamento con TRAORI(...) è possibile programmare una posizione base dell'orientamento dell'utensile indipendentemente dalla cinematica con ORIRESET(...) senza che scatti l'allarme 14101.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 363

Esempi 1. Esempio di cinematica di macchina CA (nomi dell'asse canale C, A)

ORIRESET(90, 45) ;C a 90 gradi, A a 45 gradi

ORIRESET(, 30) ;C su $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A a 30 gradi

ORIRESET( ) ;C su $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],

;A su $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]

2. Esempio di cinematica di macchina CAC (nomi dell'asse canale C, A, B)

ORIRESET(90, 45, 90) ;C a 90 gradi, A a 45 gradi, B a 90 gradi

ORIRESET( ) ;C su $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],

;A su $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],

;B su $MC_TRAFO5_ROT_AX_OFFSET_1/2[2]

Programmazione delle rotazioni LEAD, TILT e THETA Nella trasformazione a 3 ... 5 assi le rotazioni dell'orientamento dell'utensile vengono programmate con l'angolo d'anticipo LEAD e l'angolo laterale TILT. In una trasformazione con terzo asse rotante sono consentite programmazioni supplementari di C2 (rotazioni del vettore di orientamento) sia per l'orientamento con componenti vettoriali, sia con indicazione dell'angolo LEAD, TILT. Con un terzo asse rotante supplementare, la rotazione dell'utensile su se stesso può essere programmata con l'angolo di rotazione THETA.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 364 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.2.4 Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT)

Funzione Per la programmazione dell'orientamento utensile esistono le seguenti possibilità: 1. Programmazione diretta del movimento degli assi rotanti. La variazione dell'orientamento

avviene sempre nel sistema di coordinate base o di macchina. Gli assi di orientamento vengono mossi come assi sincroni.

2. Programmazione con angoli di Eulero o di RPY secondo la definizione dell'angolo tramite A2, B2, C2.

3. Programmazione del vettore direzionale tramite A3, B3, C3. Il vettore direzionale indica dalla punta dell'utensile in direzione del portautensile.

4. Programmazione del vettore normale alla superficie all'inizio del blocco con A4, B4, C4 e alla fine del blocco con A5, B5, C5 (fresatura frontale).

5. Programmazione tramite angolo d'anticipo LEAD e angolo laterale TILT 6. Per la programmazione dell'asse di rotazione del cono come vettore normalizzato tramite

A6, B6, C6 o dell'orientamento intermedio sulla superficie conica tramite A7, B7, C7, vedere il capitolo "Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONxx)".

7. Per la programmazione della modifica di orientamento, direzione e lunghezza di percorso dell'utensile durante il movimento di svincolo tramite A8, B8, C8 , vedere il capitolo "Livellamento del percorso di orientamento (ORIPATHS A8=, B8=, C8=)".

Nota In tutti i casi la programmazione dell'orientamento è consentita solo se è stata attivata una trasformazione di orientamento. Vantaggio: questi programmi sono utilizzabili con qualsiasi tipo di cinematica di macchina.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 365

Definizione dell'orientamento dell'utensile tramite codice G

Nota Costruttore della macchina Tramite dati macchina è possibile commutare tra angoli di Eulero o RPY. Con opportune impostazioni dei dati macchina, una commutazione è possibile sia in funzione del codice G attivo del gruppo 50, sia indipendentemente da esso. Sono disponibili le seguenti possibilità d'impostazione: 1. Se entrambi i dati macchina per la definizione degli assi di orientamento e la definizione

dell'angolo di orientamento tramite codice G sono impostati a zero: Gli angoli programmati con A2, B2, C2 vengono interpretati, a seconda del dato macchina definizione angolo della programmazione dell'orientamento, come angoli di Eulero o RPY.

2. Se il dato macchina per la definizione degli assi di orientamento tramite codice G è impostato a uno, la commutazione avviene in funzione del codice G attivo del gruppo 50: Gli angoli programmati con A2, B2, C2 vengono interpretati secondo uno dei codici G attivi ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2, ORIAXPOS e ORIPY2. I valori programmati con gli assi di orientamento vengono interpretati secondo il codice G attivo del gruppo 50 anche come angoli di orientamento.

3. Se il dato macchina per la definizione degli angoli di orientamento tramite codice G è impostato a uno e il dato macchina per la definizione degli assi di orientamento tramite codice G è impostato a zero, la commutazione avviene indipendentemente dal codice G attivo del gruppo 50: Gli angoli programmati con A2, B2, C2 vengono interpretati secondo uno dei codici G attivi ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2 ORIAXPOS e ORIPY2. I valori programmati con gli assi di orientamento vengono interpretati, indipendentemente dal codice G attivo del gruppo 50, sempre come posizioni di asse rotante.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 366 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione G1 X Y Z A B C Programmazione del movimento degli assi di

rotazione G1 X Y Z A2= B2= C2= Programmazione con angoli di Eulero G1 X Y Z A3== B3== C3== Programmazione del vettore direzionale G1 X Y Z A4== B4== C4== Programmazione del vettore normale alla

superficie a inizio blocco G1 X Y Z A5== B5== C5== Programmazione del vettore normale alla

superficie a fine blocco LEAD= Angolo di anticipo per la programmazione

dell'orientamento utensile TILT= Angolo laterale per la programmazione

dell'orientamento utensile

Parametro G.... Impostazione del tipo di movimento degli assi

rotanti

X Y Z Impostazione degli assi lineari

A B C Impostazione delle posizioni macchina degli assi rotanti

A2 B2 C2 Programmazione angolare (angolo di Eulero o RPY) degli assi virtuali o di orientamento

A3 B3 C3 Impostazione dei componenti vettoriali, vettore direzionale

A4 B4 C4 Impostazione, es. per fresatura frontale, all'inizio del blocco delle componenti del vettore normale alla superficie

A5 B5 C5 Impostazione, es. per fresatura frontale, alla fine del blocco delle componenti del vettore normale alla superficie

LEAD Angolo relativo al vettore normale alla superficie nel piano determinato dalla tangente al percorso e dal vettore normale alla superficie

TILT Angolo nel piano, perpendicolare alla tangente al percorso relativamente al vettore normale alla superficie

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 367

Esempio di confronto senza e con trasformazione a 5 assi

Descrizione Solitamente i programmi in 5 assi vengono generati da sistemi CAD/CAM e non impostati direttamente nel controllo numerico. Pertanto i seguenti chiarimenti si rivolgono essenzialmente ai programmatori di postprocessori. Il tipo di programmazione dell'orientamento viene definito nel codice G, gruppo 50: ORIEULER tramite angolo di Eulero ORIRPY tramite angolo RPY (successione di rotazione ZYX) ORIVIRT1 tramite assi di orientamento virtuali (definizione 1) ORIVIRT2 tramite assi di orientamento virtuali (definizione 2) ORIAXPOS tramite assi di orientamento virtuali con posizioni di asse rotante ORIPY2 tramite angolo RPY (successione di rotazione XYZ) Costruttore della macchina Tramite i dati macchina il costruttore della macchina può definire diverse varianti. Fare attenzione alle indicazioni del costruttore della macchina

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 368 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione con angoli di Eulero ORIEULER I valori programmati per l'orientamento con A2, B2, C2 vengono interpretati come angoli di Eulero (in gradi). Il vettore di orientamento si ricava ruotando prima il vettore con A2 intorno all'asse Z, poi con B2 intorno al nuovo asse X ed infine con C2 intorno al nuovo asse Z.

In questo caso il valore di C2 (rotazione intorno al nuovo asse Z) è irrilevante e non va pertanto programmato.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 369

Programmazione con angoli RPY ORIRPY I valori programmati per l'orientamento con A2, B2, C2 vengono interpretati come angoli RPY (in gradi).

Nota Al contrario della programmazione con angoli di Eulero, tutti e tre i valori hanno influenza sul vettore di orientamento.

Costruttore della macchina Nel caso di definizione dell'angolo con angolo di orientamento mediante angolo RPY vale per gli assi di orientamento $MC_ORI_DEF_WITH_G_CODE = 0 Il vettore di orientamento si ricava ruotando prima di C2 il vettore intorno all'asse Z, poi di B2 intorno al nuovo asse Y ed infine di A2 intorno al nuovo asse X.

Se il dato macchina per la definizione degli assi di orientamento tramite codice G è $MC_ORI_DEF_WITH_G_CODE = 1, vale ciò che segue: Il vettore di orientamento si ricava ruotando di A2 un vettore in direzione Z intorno all'asse Z, poi di B2 intorno al nuovo asse Y ed infine di C2 intorno al nuovo asse X.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 370 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione del vettore direzionale Le componenti del vettore direzionale vengono programmate con A3, B3, C3. Il vettore va dalla punta alla base di fissaggio dell'utensile; la lunghezza del vettore è irrilevante. Le componenti del vettore non programmate vengono interpretate come zero.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 371

Programmazione dell'orientamento utensile con LEAD= e TILT= L'orientamento risultante dell'utensile viene ricavato da: ● Tangente al percorso ● Vettore normale alla superficie

all'inizio del blocco con A4, B4, C4 e alla fine del blocco con A5, B6, C5 ● Angolo d'anticipo LEAD

nel piano determinato dalla tangente al percorso e dal vettore normale alla superficie ● Angolo laterale TILT alla fine del blocco

in posizione ortogonale alla tangente vettoriale e relativo al vettore normale alla superficie Comportamento in presenza di angoli interni (per correzione utensile 3D) Se si accorcia il blocco su un angolo interno, l'orientamento utensile risultante viene ugualmente raggiunto a fine blocco. Definizione dell'orientamento utensile con LEAD= e TILT=

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 372 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.2.5 Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5)

Funzione La fresatura frontale viene impiegata per la lavorazione di superfici curve.

Per questo tipo di fresatura 3D è necessaria la descrizione riga per riga della traiettoria 3D sulla superficie del pezzo. Il calcolo viene effettuato normalmente con un CAM tenendo conto della forma e delle dimensioni dell'utensile. I blocchi NC calcolati vengono poi letti nel controllo numerico attraverso un postprocessore.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 373

Programmazione della curvatura della traiettoria Descrizione delle superfici La descrizione della curvatura si effettua mediante vettori normali alla superficie con i seguenti componenti: A4, B4, C4 vettore iniziale all'inizio del blocco A5, B5, C5 vettore finale alla fine del blocco Se in un blocco è presente solo il vettore iniziale, il vettore normale alla superficie resta costante per tutto il blocco. Se in un blocco è presente solo il vettore finale, viene effettuata un'interpolazione circolare grossolana verso il valore finale programmato facendo riferimento al vettore finale del blocco precedente. Se sono programmati entrambi i vettori, viene effettuata un'interpolazione circolare tra ambedue le direzioni. In questo modo possono essere realizzati percorsi costanti e regolari. Nella posizione di base i vettori normali alla superficie sono posizionati in direzione Z indipendentemente dal piano attivo G17 ... G19. La lunghezza dei vettori è irrilevante. I componenti di vettori non programmati vengono impostati a zero. Se è attivo ORIWKS, vedere il capitolo "Riferimento degli assi di orientamento (ORIWKS, ORIMKS)" i vettori normali alla superficie si riferiscono al frame attivo e ruotano nel caso di rotazione del frame stesso. Costruttore della macchina Il vettore normale alla superficie deve essere perpendicolare alla tangente del profilo nell'ambito di un campo di valori impostabile tramite un dato macchina. In caso contrario viene emesso un allarme.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 374 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.2.6 Riferimento degli assi di orientamento (ORIWKS, ORIMKS)

Funzione Nella programmazione dell'orientamento nel sistema di coordinate pezzo tramite ● angolo di Eulero, angolo RPY oppure ● vettore di orientamento è possibile stabilire il percorso del movimento di rotazione tramite ORIMKS/ORIWKS.

Nota Costruttore della macchina Il tipo di interpolazione per l'orientamento viene definito con il dato macchina: MD21104 $MC_ORI_IPO_WITH_G_CODE =FALSE: Il riferimento è dato dalle funzioni G ORIWKS e ORIMKS =TRUE: Il riferimento è dato dalle funzioni G del gruppo 51 (ORIAXES, ORIVECT, ORIPLANE, ...)

Sintassi ORIMKS=... ORIWKS=...

Significato ORIMKS Rotazione nel sistema di coordinate macchina ORIWKS Rotazione nel sistema di coordinate pezzo

Nota ORIWKS rappresenta la posizione di default. Se per un programma a cinque assi non si conosce a priori su quale macchina esso debba funzionare, va scelta sempre la funzione ORIWKS. I movimenti che la macchina esegue realmente dipendono dalla cinematica della macchina stessa.

Con ORIMKS è possibile programmare i movimenti reali di macchina per evitare, ad esempio, collisioni con gli attrezzi o altri oggetti.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 375

Descrizione Con ORIMKS il movimento eseguito dall'utensile dipende dalla cinematica della macchina. Nella variazione dell'orientamento, con punta dell'utensile fissa nello spazio, avviene un'interpolazione lineare tra le posizioni degli assi rotanti. Con ORIWKS il movimento dall'utensile non dipende dalla cinematica della macchina. Nella variazione dell'orientamento, con punta dell'utensile fissa nello spazio, l'utensile muove nel piano definito dai vettori di partenza e di arrivo.

Posizioni particolari

Nota ORIWKS I movimenti di orientamento nel campo delle posizioni singolari della macchina a cinque assi richiedono ampi movimenti degli assi macchina. (ad esempio per una testa orientabile rotante con C come asse rotante ed A come asse di ribaltamento, tutte le posizioni con A=0 sono posizioni singolari).

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 376 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Costruttore della macchina Per non sovraccaricare gli assi di macchina, la gestione della velocità riduce la velocità vettoriale in prossimità delle posizioni singolari. Con i dati macchina $MC_TRAFO5_NON_POLE_LIMIT $MC_TRAFO5_POLE_LIMIT è possibile parametrizzare la trasformazione in modo che i movimenti di orientamento in prossimità del polo avvengano attraverso il polo stesso per consentire una lavorazione rapida. A partire dalla versione SW 5.2 le posizioni singolari vengono elaborate solo con il dato macchina $MC_TRAFO5_POLE_LIMIT. Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazione a 3 ... 5 assi (F2), capitolo "Posizioni singolari e relativa gestione".

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 377

6.2.7 Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2)

Funzione La funzione degli assi di orientamento descrive l'orientamento dell'utensile nello spazio e viene ottenuta programmando l'offset per gli assi rotanti. Un ulteriore terzo grado di libertà può essere ottenuto ruotando ulteriormente l'utensile su sé stesso. Questo orientamento viene eseguito in una qualsiasi posizione nello spazio tramite un terzo asse rotante e richiede la trasformazione a sei assi. L'autorotazione dell'utensile su sé stesso viene definita in base al tipo di interpolazione dei vettori di rotazione con l'angolo di rotazione THETA, vedere il capitolo "Rotazioni dell'orientamento dell'utensile (ORIROTA/TR/TT, ORIROTC, THETA)".

Programmazione Gli assi di orientamento vengono programmati tramite gli identificatori di asse A2, B2, C2. N... ORIAXES oppure ORIVECT N... G1 X Y Z A B C oppure N... ORIPLANE oppure N... ORIEULER oppure ORIRPY o ORIRPY2 N... G1 X Y Z A2= B2= C2= oppure N... ORIVIRT1 oppure ORIVIRT2 N... G1 X Y Z A3= B3= C3=

Interpolazione lineare oppure circolare oppure Interpolazione di orientamento del piano oppure Angolo di orientamento, angolo di Eulero/RPY Programmazione angolare di assi virtuali oppure assi di orientamento virtuali definizione 1 o 2 programmazione del vettore direzionale

Per le variazioni di orientamento lungo una superficie conica che si trova nello spazio possono essere programmati altri offset asse rotante degli assi di orientamento, vedere il capitolo "Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONxx).

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 378 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Parametro ORIAXES Interpolazione lineare degli assi macchina o degli assi

di orientamento

ORIVECT Interpolazione del cerchio più grande (identico a ORIPLANE)

ORIMKS

ORIWKS

Rotazione nel sistema di coordinate macchina

Rotazione nel sistema di coordinate pezzo

Per la descrizione vedere il capitolo Rotazioni dell'orientamento utensile

A= B= C= Programmazione della posizione dell'asse di macchina

ORIEULER Programmazione dell'orientamento tramite angolo di Eulero

ORIRPY Programmazione dell'orientamento tramite angolo RPY. La successione di rotazione è XYZ, dove: A2 è l'angolo di rotazione intorno a X B2 è l'angolo di rotazione intorno a Y C2 è l'angolo di rotazione intorno a Z

ORIRPY2 Programmazione dell'orientamento tramite angolo RPY. La successione di rotazione è ZYX, dove: A2 è l'angolo di rotazione intorno a Z B2 è l'angolo di rotazione intorno a Y C2 è l'angolo di rotazione intorno a X

A2= B2= C2= Programmazione angolare di assi virtuali

ORIVIRT1

ORIVIRT2

Programmazione dell'orientamento tramite assi di orientamento virtuali

(definizione 1), definizione secondo DM $MC_ORIAX_TURN_TAB_1

(definizione 2), definizione secondo DM $MC_ORIAX_TURN_TAB_2

A3= B3= C3= Programmazione del vettore direzionale dell'asse direzionale

Descrizione Costruttore della macchina Con il dato macchina MD $MC_ORI_DEF_WITH_G_CODE viene stabilito come debba essere definito l'angolo A2, B2, C2 programmato: La definizione ha luogo secondo il dato macchina MD $MC_ORIENTATION_IS_EULER (standard) oppure secondo il gruppo G 50 (ORIEULER, ORIRPY, ORIVIRT1, ORIVIRT2). Con il dato macchina MD $MC_ORI_IPO_WITH_G_CODE viene stabilita l'interpolazione attiva: ORIWKS/ORIMKS oppure ORIAXES/ORIVECT.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 379

Modo operativo JOG In questo modo operativo gli angoli di orientamento vengono interpolati sempre in modo lineare. In caso di movimento continuo e incrementale mediante i tasti di movimento, può essere traslato un solo asse di orientamento. Tramite i volantini è possibile muovere contemporaneamente gli assi di orientamento. Per il movimento manuale degli assi di orientamento è attivo l'override avanzamento specifico per canale oppure l'override del rapido nella sovrapposizione del rapido. Con i seguenti dati macchina è possibile impostare separatamente la velocità: $MC_JOG_VELO_RAPID_GEO $MC_JOG_VELO_GEO $MC_JOG_VELO_RAPID_ORI $MC_JOG_VELO_ORI

Nota SINUMERIK 840D con "Pacchetto di trasformazione Handling" Attraverso la funzione "Procedura manuale cartesiana" è possibile impostare in modalità JOG la traslazione di assi geometrici nei sistemi di riferimento sistema di coordinate macchina (SCM), sistema di coordinate pezzo (SCP) e TKS. Bibliografia: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazione cinematica (M1)

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 380 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.2.8 Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO)

Funzione Con l'orientamento ampliato è possibile eseguire modifiche dell'orientamento lungo una superficie conica che si trova nello spazio. L'interpolazione del vettore di orientamento su una superficie conica viene eseguita con i comandi modali ORICONxx. Per l'interpolazione in un piano può essere programmato un orientamento finale con ORIPLANE. Generalmente l'orientamento iniziale viene definito con i blocchi precedenti.

Programmazione L'orientamento finale viene definito indicando la programmazione dell'angolo nell'angolo Eulero o nell'angolo RPY con A2, B2, C2 oppure programmando le posizioni dell'asse rotante con A, B, C. Per gli assi di orientamento lungo la superficie conica sono necessarie altre indicazioni di programmazione: ● Asse di rotazione del cono come vettore con A6, B6, C6 ● Angolo di apertura PSI con l'identificatore NUT ● Orientamento intermedio nel cono con A7, B7, C7

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 381

Nota Programmazione del vettore direzionale A6, B6, C6 per l'asse rotante del cono La programmazione di un orientamento finale non è indispensabile. Se non è indicato un orientamento finale, viene interpolato un cono intero con 360 gradi. Programmazione dell'angolo di apertura del cono con NUT=angolo L'indicazione di un orientamento finale è indispensabile. Un cono completo con 360 gradi non può essere interpolato in questo modo. Programmazione dell'orientamento intermedio A7, B7, C7 nel cono L'indicazione di un orientamento finale è indispensabile. La modifica dell'orientamento e la direzione di rotazione vengono definite in modo univoco con i tre vettori orientamento iniziale, finale e intermedio. Tutti i tre vettori devono essere diversi. Se l'orientamento intermedio programmato è parallelo all'orientamento iniziale o finale, viene eseguita un'interpolazione del cerchio estesa dell'orientamento nel piano determinato dal vettore iniziale e finale.

Interpolazione dell'orientamento ampliato su una superficie conica N... ORICONCW oppure ORICONCCW N... A6= B6= C6= A3= B3= C3= oppure N... ORICONTO N... G1 X Y Z A6= B6= C6= oppure N... ORICONIO N... G1 X Y Z A7= B7= C7= N... PO[PHI]=(a2, a3, a4, a5) N... PO[PSI]=(b2, b3, b4, b5)

Interpolazione su un cono con vettore direzionale in senso orario/antiorario del cono e orientamento finale oppure raccordo tangenziale e indicazione dell'orientamento finale oppure indicazione dell'orientamento finale e di un orientamento intermedio nel cono con polinomi per l'angolo di rotazione e polinomi per l'angolo di apertura

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 382 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Parametro ORIPLANE Interpolazione nel piano (interpolazione circolare) ORICONCW Interpolazione su una superficie conica in senso orario ORICONCCW Interpolazione su una superficie conica in senso antiorario ORICONTO Interpolazione su una superficie conica con raccordo

tangenziale A6= B6= C6= Programmazione dell'asse di rotazione del cono (vettore

normalizzato) NUT=angolo Angolo di apertura del cono in gradi NUT=+179 Angolo di movimento inferiore o uguale a 180 gradi NUT=-181 Angolo di movimento superiore o uguale a 180 gradi ORICONIO Interpolazione su una superficie conica A7= B7= C7= Orientamento intermedio (programmazione come vettore

normalizzato) PHI Angolo di rotazione dell'orientamento intorno all'asse

direzionale del cono PSI Angolo di apertura del cono polinomi possibili PO[PHI]=(a2, a3, a4, a5) PO[PSI]=(b2, b3, b4, b5)

Oltre ai rispettivi angolo possono essere programmati polinomi di max. 5° grado

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 383

Esempio di diverse modifiche dell'orientamento …

N10 G1 X0 Y0 F5000

N20 TRAORI(1) ; Trasformazione orientamento 1.

N30 ORIVECT ; Interpolazione dell'orientamento utensile come vettore.

… ; Orientamento dell'utensile nel piano.

N40 ORIPLANE ; Selezione dell'interpolazione del cerchio estesa.

N50 A3=0 B3=0 C3=1

N60 A3=0 B3=1 C3=1 ; Orientamento nel piano Y/Z ruotato di 45 gradi; al termine del blocco viene raggiunto l'orientamento (0,1/√2,1/√2).

N70 ORICONCW ; Programmazione dell'orientamento sul cono:

N80 A6=0 B6=0 C6=1 A3=0 B3=0 C3=1 ; Il vettore di orientamento viene interpolato su una superficie conica con direzione (0,0,1) in senso orario fino all'orientamento (1/√2,0,1/√2); l'angolo di rotazione è in questo caso di 270 gradi.

N90 A6=0 B6=0 C6=1 ; L'orientamento utensile compie un giro completo sulla stessa superficie conica.

Descrizione Se si devono descrivere variazioni dell'orientamento su una superficie conica che si trova in uno spazio qualsiasi, si deve conoscere il vettore intorno al quale deve essere ruotato l'orientamento dell'utensile. Inoltre deve essere impostato l'orientamento iniziale e finale. L'orientamento iniziale risulta dal blocco precedente e l'orientamento finale deve essere programmato o definito da altre condizioni. La programmazione nel piano ORIPLANE corrisponde a ORIVECT La programmazione dell'interpolazione del cerchio estesa insieme ai polinomi dell'angolo corrisponde all'interpolazione lineare e del polinomio dei profili. L'orientamento degli utensili viene interpolato in un piano determinato dall'orientamento iniziale e finale. Se vengono programmati altri polinomi, il vettore di orientamento può essere invertito anche dal piano.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 384 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione di cerchi in un piano G2/G3, CIP e CT L'orientamento ampliato corrisponde all'interpolazione di cerchi in un piano. Per le relative possibilità di programmazione di cerchi con indicazione del centro o indicazione del raggio come G2/G3, cerchio sul punto intermedio CIP e cerchi tangenziali CT vedere Bibliografia: Manuale di programmazione, Nozioni di base, "Programmazione delle funzioni preparatorie".

Programmazione dell'orientamento Interpolazione del vettore di orientamento su una superficie conica ORICONxx Per l'interpolazione di orientamenti su una superficie conica possono essere selezionati quattro diversi tipi di interpolazione del gruppo codice G 51: 1. Interpolazione su un cono in senso orario ORICONCW con indicazione dell'orientamento

finale e della direzione del cono o dell'angolo di apertura. Il vettore direzionale viene programmato con gli identificatori A6, B6, C6 e l'angolo di apertura del cono con l'identificatore NUT= campo di valori nell'intervallo 0 ... 180 gradi.

2. Interpolazione su un cono in senso antiorario ORICONCWW con indicazione dell'orientamento finale e della direzione del cono o dell'angolo di apertura. Il vettore direzionale viene programmato con gli identificatori A6, B6, C6 e l'angolo di apertura del cono con l'identificatore NUT= campo di valori nell'intervallo 0 ... 180 gradi.

3. Interpolazione su un cono ORICONIO con indicazione dell'orientamento finale e di un orientamento intermedio che viene programmato con gli identificatori A7, B7, C7.

4. Interpolazione su un cono ORICONTO con raccordo tangenziale e indicazione dell'orientamento finale. Il vettore direzionale viene programmato con gli identificatori A6, B6, C6.

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 385

6.2.9 Impostazione dell'orientamento di due punti di contatto (ORICURVE, PO[XH]=, PO[YH]=, PO[ZH]=)

Funzione Programmazione della modifica dell'orientamento tramite la seconda curva nello spazio ORICURVE Oltre alla punta dell'utensile lungo una curva nello spazio, un'ulteriore possibilità per programmare modifiche dell'orientamento consiste nella programmazione del movimento di un secondo punto di contatto dell'utensile con ORICURVE. In questo modo le modifiche dell'orientamento dell'utensile possono essere definite in modo univoco come per la programmazione del vettore dell'utensile stesso. Costruttore della macchina Osservare le avvertenze del costrutture della macchina relative agli indentificatori degli assi impostabili tramite il dato macchina per la programmazione del secondo vettore di orientamento dell'utensile.

Programmazione In questo tipo di interpolazione è possibile programmare punti con G1 o polinomi con POLY per entrambe le curve nello spazio. Non sono consentiti cerchi ed evolventi. Inoltre è possibile attivare un'interpolazione Spline con BSPLINE e con la funzione "Raggruppamento di blocchi spline brevi". Bibliografia: /FB1/ Manuale delle funzioni di base; Avanzamenti, arresto preciso, LookAhead (B1), capitolo: Raggruppamento di blocchi spline brevi Gli altri tipi di spline ASPLINE e CSPLINE, nonché l'attivazione di un compressore con COMPON, COMPCURV o COMPCAD non sono consentiti. Il movimento dei due punti di contatto dell'utensile può essere impostato durante la programmazione dei polinomi di orientamento per le coordinate fino a max. il 5° grado. Interpolazione dell'orientamento ampliato con ulteriore curva nello spazio e polinomi per coordinate N... ORICURVE N... PO[XH]=(xe, x2, x3, x4, x5) N... PO[YH]=(ye, y2, y3, y4, y5) N... PO[ZH]=(ze, z2, z3, z4, z5)

Indicazione del movimento del secondo punto di contatto dell'utensile e polinomi supplementari delle relative coordinate

Trasformazioni 6.2 Trasformazione a tre, quattro e cinque assi (TRAORI)

Preparazione del lavoro 386 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Parametro ORICURVE Interpolazione dell'orientamento con preimpostazione del

movimento di due punti di contatto dell'utensile

XH YH ZH Identificatori delle coordinate del secondo punto di contatto dell'utensile del profilo supplementare come curva nello spazio

Polinomi possibili PO[XH]=(xe, x2, x3, x4, x5) PO[YH]=(ye, y2, y3, y4, y5) PO[ZH]=(ze, z2, z3, z4, z5)

Oltre ai rispettivi punti finali, si possono inoltre programmare curve nello spazio con polinomi.

xe, ye, ze Punti finali della curva nello spazio

xi, yi, zi Coefficienti dei polinomi al massimo di 5° grado

Nota Identificatori XH YH ZH per la programmazione di un secondo vettore di orientamento Gli identificatori devono essere selezionati in modo che non sussistano conflitti con altri identificatori degli assi lineari assi X Y Z e assi rotanti come angolo Eulero o angolo RPY A2 B2 C2 vettori direzionali A3 B3 C3 vettori normali alla superficie A4 B4 C4 e A5 B5 C5 vettori di rotazione A6 B6 C6 e coordinate del punto intermedio A7 B7 C7 o altri parametri di interpolazione.

Trasformazioni 6.3 Polinomi di orientamento (PO[angolo], PO[coordinate])

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 387

6.3 6.3 Polinomi di orientamento (PO[angolo], PO[coordinate])

Funzione Indipendentemente da quale interpolazione di polinomio del gruppo codice G 1 è attualmente attiva, è possibile programmare due diversi tipi di polinomi di orientamento al massimo del 5° grado in una trasformazione a 3...5 assi. 1. Polinomi per angolo: angolo d'anticipo LEAD, angolo laterale TILT

riferito al piano che viene determinato dall'orientamento iniziale e finale. 2. Polinomi per coordinate: XH, YH, ZH della seconda curva nello spazio per l'orientamento

dell'utensile di un punto di riferimento sull'utensile. In una trasformazione a sei assi, per l'orientamento dell'utensile è possibile inoltre programmare la rotazione del vettore di rotazione THT con polinomi al massimo fino al 5° grado per la rotazione dell'utensile stesso.

Sintassi Polinomi di orientamento del tipo 1 per angolo N… PO[PHI]=(a2, a3, a4, a5) N… PO[PSI]=(b2, b3, b4, b5)

Trasformazioni a 3 ... 5 assi Trasformazioni a 3 ... 5 assi

Polinomi di orientamento del tipo 2 per coordinate N… PO[XH]=(xe, x2, x3, x4, x5) N… PO[YH]=(ye, y2, y3, y4, y5) N… PO[ZH]=(ze, z2, z3, z4, z5)

Identificatori per le coordinate del secondo vettore di orientamento per l'orientamento dell'utensile

Trasformazioni 6.3 Polinomi di orientamento (PO[angolo], PO[coordinate])

Preparazione del lavoro 388 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

In entrambi i casi è inoltre possibile programmare un polinomio per la rotazione nelle trasformazioni a sei assi con N… PO[THT]=(c2, c3, c4, c5) oppure N… PO[THT]=(d2, d3, d4, d5)

interpolazione relativa del vettore della rotazione interpolazione assoluta, relativa e tangenziale per la modifica dell'orientamento

del vettore di orientamento. Questo è possibile se è supportata la trasformazione di un vettore di rotazione con un offset programmabile e interpolabile tramite l'angolo di rotazione THETA.

Significato PO[PHI] Angolo nel piano fra orientamento iniziale e finale PO[PSI] Angolo che descrive l'inversione dell'orientamento dal piano tra l'orientamento

iniziale e quello finale PO[THT] Angolo di rotazione che descrive un codice G del gruppo 54 programmato con

THETA tramite la rotazione del vettore di rotazione PHI Anticipo angolare LEAD PSI Angolo laterale TILT THETA Rotazione intorno alla direzione dell'utensile in Z PO[XH] Coordinata X del punto di riferimento sull'utensile PO[YH] Coordinata Y del punto di riferimento sull'utensile PO[ZH] Coordinata Z del punto di riferimento sull'utensile

Trasformazioni 6.3 Polinomi di orientamento (PO[angolo], PO[coordinate])

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 389

Descrizione I polinomi di orientamento non possono essere programmati ● se sono attive le interpolazioni spline ASPLINE, BSPLINE, CSPLINE.

I polinomi del tipo1 per l'angolo di orientamento sono possibili per ogni tipo di interpolazione eccetto spline, vale a dire nelle interpolazioni lineari con rapido G00 o con avanzamento G01 nell'interpolazione del polinomi con POLY e nell'interpolazione del cerchio o evolvente con G02, G03, CIP, CT, INVCW e INCCCW . I polinomi del tipo 2 per le coordinate dell'orientamento sono invece possibili solo se è attiva l'interpolazione lineare con rapido G00 o con avanzamento G01 o l'interpolazione dei polinomi con POLY.

● se l'orientamento viene interpolato tramite interpolazione asse ORIAXES. In questo caso possono essere programmati direttamente polinomi con PO[A] e PO[B] per gli assi di orientamento A e B.

Polinomi di orientamento del tipo 1 con ORIVECT, ORIPLANE e ORICONxx Nell'interpolazione del cerchio estesa e nell'interpolazione del cono con ORIVECT, ORIPLANE e ORICONxx sono possibili solo polinomi di orientamento del tipo 1. Polinomi di orientamento del tipo 2 con ORICURVE Se è attiva l'interpolazione con curva nello spazio supplementare ORICURVE, vengono interpolati i componenti cartesiani del vettore di orientamento e sono possibili solo polinomi di orientamento del tipo 2.

Trasformazioni 6.4 Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)

Preparazione del lavoro 390 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.4 6.4 Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)

Funzioni Se per determinati tipi di macchine con utensile in movimento deve essere modificabile anche l’orientamento dell’utensile, in ogni blocco è necessario programmare l’orientamento finale. In funzione della cinematica della macchina, è possibile programmare la direzione di orientamento degli assi di orientamento oppure il senso di rotazione del vettore di orientamento THETA. Per questi vettori di orientamento si possono programmare diverse tipologie di interpolazione: ● ORIROTA: Angolo di rotazione in un senso di rotazione preimpostato in modo assoluto. ● ORIROTR: Angolo di rotazione relativo per il piano fra orientamento iniziale e finale. ● ORIROTT: Angolo di rotazione riferito alla variazione del vettore di orientamento. ● ORIROTC: Angolo di rotazione tangenziale rispetto alla tangente vettoriale.

Sintassi Solo se è attiva l’interpolazione ORIROTA l'angolo di rotazione oppure il vettore di rotazione possono essere programmati nei quattro modi seguenti: 1. direttamente le posizioni degli assi rotanti A, B, C 2. angolo di Eulero (in gradi) tramite A2, B2, C2 3. angolo RPY (in gradi) tramite A2, B2, C2 4. vettore direzionale tramite A3, B3, C3 (angolo di rotazione tramite

THETA=<Valore>). Se sono attivi ORIOTR oppure ORIOTT, l’angolo di rotazione può essere programmato solo direttamente THETA. Una rotazione può essere programmata da sola in un blocco senza che avvenga una variazione dell’orientamento. ORIROTR e ORIROTT non hanno perciò alcun significato. In questo caso l’angolo di rotazione viene sempre interpretato riferito alla direzione assoluta (ORIROTA). N... ORIROTA N... ORIROTR N... ORIROTT N... ORIROTC

Definizione dell'interpolazione del vettore di rotazione

N... A3= B3= C3= THETA=valore Definizione della rotazione del vettore di orientamento

N... PO[THT]=(d2, d3, d4, d5) Interpolazione dell’angolo di rotazione con polinomio di 5° grado

Trasformazioni 6.4 Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 391

Significato ORIROTA Angolo di rotazione in un senso di rotazione preimpostato in modo

assoluto ORIROTR Angolo di rotazione relativo al piano fra orientamento iniziale e finale ORIROTT Angolo di rotazione come vettore di rotazione tangenziale per la

modifica dell'orientamento ORIROTC Angolo di rotazione come vettore di rotazione tangenziale rispetto alla

tangente vettoriale THETA Rotazione del vettore di orientamento THETA=valore Angolo di rotazione in gradi che viene raggiunto a fine blocco THETA=Θe Angolo di rotazione con angolo finale Θe del vettore di rotazione THETA=AC(...) Commutazione all’impostazione in quote assolute nel blocco THETA=AC(...) Commutazione nell’impostazione in quote incrementali nel blocco Θe L'angolo finale del vettore di rotazione è attivo sia assoluto con G90 che

relativo con G91 (impostazione incrementale delle quote) PO[THT]=(....) Polinomio per l’angolo di rotazione

Esempio di rotazioni degli orientamenti Codice di programma Commento

N10 TRAORI ; Attivazione trasformazione di orientamento

N20 G1 X0 Y0 Z0 F5000 ; Orientamento dell'utensile

N30 A3=0 B3=0 C3=1 THETA=0 ; In direzione Z con angolo di rotazione 0

N40 A3=1 B3=0 C3=0 THETA=90 ; In direzione X e rotazione di 90 gradi

N50 A3=0 B3=1 C3=0 PO[THT]=(180,90) ; Orientamento

N60 A3=0 B3=1 C3=0 THETA=IC(-90) ; In direzione Y e rotazione a 180 gradi

N70 ORIROTT ; Rimane costante e rotazione a 90 gradi

N80 A3=1 B3=0 C3=0 THETA=30 ; Angolo di rotazione relativo alla variazione dell'orientamento

; Vettore di rotazione nell'angolo di 30 gradi rispetto al piano X-Y

Trasformazioni 6.4 Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA)

Preparazione del lavoro 392 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Durante l'interpolazione del blocco N40 l'angolo di rotazione viene interpolato linearmente dal valore iniziale di 0 gradi al valore finale di 90 gradi. Nel blocco N50 l'angolo di rotazione varia da 90 gradi a 180 gradi in base alla parabola θ(u) = +90u2. In N60 può essere eseguita anche una rotazione senza che si verifichi una modifica dell'orientamento. In N80 l'orientamento dell'utensile viene ruotato dalla direzione Y alla direzione X. La modifica dell'orientamento si trova quindi nel piano X–Y e il vettore di rotazione forma rispetto a questo piano un angolo di 30 gradi.

Descrizione ORIROTA L'angolo di rotazione THETA viene interpolato in funzione di una direzione assoluta stabilita nello spazio. La direzione di rotazione di base è definita nei dati macchina ORIROTR L'angolo di rotazione THETA viene considerato relativo al piano che si apre tra l’angolo di orientamento iniziale e finale. ORIROTT L'angolo di rotazione THETA viene considerato relativo alla variazione dell’orientamento. Per THETA=0 il vettore di rotazione viene interpolato in modo tangenziale alla variazione dell’orientamento e si differisce rispetto a ORIROTR, solo quando per l’orientamento è stato programmato almeno un polinomio per “l’angolo di rovesciamento PSI”. In questo modo ne deriva una variazione dell’orientamento che non avviene nel piano. Con un angolo di rotazione supplementare programmabile THETA il vettore di rotazione può essere quindi interpolato in modo che esso formi sempre un determinato valore rispetto alla variazione dell’orientamento. ORIROTC Il vettore direzionale viene interpolato in modo relativo rispetto alla tangente vettoriale con un offset programmabile con l'angolo THETA. Per l'angolo offset può essere programmato anche un polinomio PO[THT]=(c2, c3, c4, c5) di max. 5° grado.

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 393

6.5 6.5 Orientamenti relativi al percorso

6.5.1 Tipi di orientamento relativi al percorso

Funzioni Con questa funzione ampliata l'orientamento relativo non viene ottenuto solo a fine blocco, ma sull'intero percorso. Viene trasformato l'orientamento ottenuto nel blocco precedente tramite interpolazione del cerchio estesa nell'orientamento finale programmato. In linea di principio esistono due possibilità di programmare l'orientamento desiderato relativo al percorso: 1. L'orientamento dell'utensile e la rotazione dell'utensile vengono interpolate relativamente

al percorso con ORIPATH, ORPATHTS. 2. Il vettore di orientamento viene programmato e interpolato come di consueto. Con

ORIROTC la rotazione del vettore di orientamento viene accostata in modo relativo alla tangente del percorso.

Sintassi Il tipo di interpolazione dell'orientamento e della rotazione dell'utensile viene programmato con: N... ORIPATH Orientamento relativo al percorso N... ORIPATHS Orientamento relativo al percorso con spianamento del percorso

di orientamento N... ORIROTC Interpolazione del vettore di rotazione relativo al percorso

Una piega dell'orientamento causata da uno spigolo nell'andamento del percorso può essere livellata con ORIPATHS. La direzione e la lunghezza del percorso del movimento di svincolo viene programmato tramite il vettore con i componenti A8=X, B8=Y C8=Z. Con ORIPATH/ORIPATHS possono essere programmati diversi riferimento alla tangente del percorso tramite i tre angoli ● LEAD= indicazione dell'angolo d'anticipo riferito al percorso e alla superficie ● TILT= indicazione dell'angolo laterale riferito al percorso e alla superficie ● THETA= Angolo di rotazione per l'intero andamento del percorso.

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro 394 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Per l'angolo di rotazione THETA possono essere programmati con PO[THT]=(...) ulteriori polinomi di max. 5° grado.

Nota Costruttore della macchina Fare attenzione alle indicazioni del costruttore della macchina Con i dati macchina e di setting progettabili è possibile eseguire ulteriori impostazioni per il tipo di orientamento relativo al percorso. Per ulteriori descrizioni vedere Bibliografia: /FB3/ Manuale di guida alle funzioni, Funzioni speciali; Trasformazione a 3 ... 5 assi (F2), Capitolo "Orientamento"

Significato L'interpolazione dell'angolo LEAD e TILT può essere impostata in diversi modi tramite il dato macchina: ● Il riferimento programmato con LEAD e TILT del'orientamento dell'utensile viene

mantenuto per l'intero blocco. ● Anticipo angolare LEAD: Rotazione intorno alla direzione in posizione ortogonale rispetto

alla tangente e vettore normale TILT: Rotazione dell'orientamento intorno al vettore normale.

● Anticipo angolare LEAD: Rotazione intorno alla direzione in posizione ortogonale rispetto alla tangente e vettore normale angolo laterale TILT: Rotazione dell'orientamento intorno alla direzione della tangente del percorso.

● Angolo di rotazione THETA: Rotazione dell'utensile su sé stesso con un ulteriore terzo asse rotante come asse di orientamento per la trasformazione a 6 assi.

Nota Orientamento relativo al percorso non consentito in combinazione con OSC, OSS, OSSE, OSD, OST L'interpolazione dell'orientamento relativa al percorso ORIPATH o ORIPATHS e ORIOTC non può essere programmata in combinazione con uno spianamento del percorso di orientamento con uno dei codici G del gruppo 34. In questo caso OSOF deve essere attivo.

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 395

6.5.2 Rotazione relativa al percorso dell'orientamento dell'utensile (ORIPATH, ORIPATHS, angolo di rotazione)

Funzione In una trasformazione a sei assi, per l'orientamento dell'utensile in una posizione qualsiasi nello spazio, anche l'utensile può essere ruotato su sé stesso con un terzo asse rotante. Per la rotazione relativa al percorso dell'orientamento dell'utensile con ORIPATH o ORIPATHS può essere programmata la rotazione suppelementare tramite l'angolo di rotazione THETA. In alternativa gli angoli LEAD e TILT possono essere programmati con un vettore che si trova nel piano in posizione ortogonale rispetto alla direzione dell'utensile. Costruttore della macchina Fare attenzione alle indicazioni del costruttore della macchina Con il dato macchina è possibile impostare diversamente l'interpolazione degli angoli LEAD e TILT.

Sintassi Rotazione dell'orientamento utensile e dell'utensile Il tipo di orientamento dell'utensile relativo al percorso viene attivato con ORIPATH o ORIPATHS. N... ORIPATH Attivazione del tipo di orientamento riferito al

percorso N... ORIPATHS Attivazione del tipo di orientamento riferito al

percorso con spianamento del percorso di orientamento

Attivazione dei tre angoli possibili con effetto di rotazione: N... LEAD= Angolo per l'orientamento programmato relativo

al vettore normale alla superficie N... TILT= Angolo per l'orientamento programmato nel piano

in posizione ortogonale rispetto alla tangente del percorso relativo al vettore normale alla superficie

N... THETA= Angolo di rotazione relativo alla modifica dell'orientamento intorno alla direzione dell'utensile del terzo asse rotante

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro 396 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

I valori dell'angolo a fine blocco vengono programmati con LEAD=valore, TILT=valore o THETA=valore. Oltre agli angoli costanti, per tutti e tre gli angoli possono essere programmati polinomi di max. 5° grado. N... PO[PHI]=(a2, a3, a4, a5) N... PO[PSI]=(b2, b3, b4, b5) N... PO[THT]=(d2, d3, d4, d5)

Polinomio per l'angolo d'anticipo LEADPolinomio per l'angolo laterale TILT Polinomio per l'angolo di rotazione THETA

Durante la programmazione è possibile tralasciare i coefficienti del polinomi più alti che sono pari a zero. Esempio Con PO[PHI]=a2 si ottiene una parabola per l'angolo d'anticipo LEAD.

Significato Orientamento dell'utensile relativo al percorso ORIPATH Orientamento utensile riferito alla traiettoria ORIPATHS L'orientamento dell'utensile riferito alla piega nel percorso di orientamento

viene raddrizzato LEAD Angolo relativo al vettore normale alla superficie nel piano determinato dalla

tangente al percorso e dal vettore normale alla superficie TILT Rotazione dell'orientamento intorno alla direzione Z o rotazione intorno alla

tangente del percorso THETA Rotazione intorno alla direzione dell'utensile verso Z PO[PHI] Polinomio dell'orientamento per l'angolo d'anticipo LEAD PO[PSI] Polinomio dell'orientamento per l'angolo laterale TILT PO[THT] Polinomio dell'orientamento per l'angolo di rotazione THETA

Nota Angolo di rotazione THETA Per la rotazione dell'utensile su sé stesso con un terzo asse rotante come asse di orientamento è necessaria una trasformazione a 6 assi.

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 397

6.5.3 Interpolazione relativa al percorso della rotazione dell'utensile (ORIROTC, THETA)

Funzioni Interpolazione con vettori di rotazione Il vettore di rotazione può essere interpolato con la rotazione dell'utensile relativa alla tangente vettoriale programmata con ORIROTC anche con un offset programmabile mediante l'angolo di rotazione THETA. Per l'angolo di offset può essere programmato un polinomio di max. 5° grado con PO[THT].

Sintassi N... ORIROTC Controllo della rotazione dell'utensile

relativa alla tangente vettoriale N... A3= B3= C3= THETA=valore Definizione della rotazione del

vettore di orientamento N... A3= B3= C3= PO[THT]=(c2, c3, c4, c5) Interpolazione dell'angolo di offset

con un polinomio di max. 5° grado Una rotazione può essere programmata da sola in un blocco senza che avvenga una variazione dell’orientamento.

Significato Interpolazione relativa al percorso della rotazione dell'utensile nella trasformazione a sei assi ORIROTC Posizionamento del vettore di rotazione tangenziale rispetto

alla tangente vettoriale THETA=Valore Angolo di rotazione in gradi, che viene raggiunto alla fine

del blocco THETA=θe Angolo di rotazione con angolo finale Θe del vettore di

rotazione THETA=AC(...) Commutazione all'impostazione in quote assolute nel

blocco THETA=IC(…) Commutazione all'impostazione in quote incrementali nel

blocco PO[THT]=(c2, c3, c4, c5) Interpolazione dell'angolo di offset con un polinomio di

5° grado

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro 398 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Interpolazione del vettore di rotazione ORIROTC Se anche la rotazione dell'utensile rispetto alla tangente vettoriale deve essere impostata nella direzione opposta all'orientamento dell'utensile, ciò può avvenire solo in una trasformazione a sei assi. Con ORIROTC attivo Il vettore di rotazione ORIROTA non può essere programmato. In caso di programmazione viene emesso l'ALLARME 14128 "Programmazione assoluta della rotazione utensile con ORIROTC attivo".

Direzione di orientamento dell'utensile per trasformazioni a tre ... cinque assi La direzione di orientamento dell'utensile può essere programmata mediante l'angolo di Eulero, l'angolo RPY o il vettore direzionale, come nel caso di una trasformazione a tre ... cinque assi. Inoltre sono possibili modifiche dell'orientamento dell'utensile nello spazio tramite programmazione dell'interpolazione del cerchio estesa ORIVECT, dell'interpolazione lineare degli assi di orientamento ORIAXES, di tutte le interpolazioni su una superficie conica ORICONxx, nonché dell'interpolazione aggiuntiva della curva nello spazio con due punti di contatto dell'utensile ORICURVE. G.... Impostazione del tipo di movimento degli assi rotanti X Y Z Impostazione degli assi lineari ORIAXES Interpolazione lineare degli assi macchina o degli assi di

orientamento ORIVECT Interpolazione del cerchio estesa (identico a ORIPLANE) ORIMKS ORIWKS

Rotazione nel sistema di coordinate macchina Rotazione nel sistema di coordinate pezzo Per la descrizione vedere il capitolo Rotazioni dell'orientamento utensile

A= B= C= Programmazione della posizione dell'asse di macchina ORIEULER Programmazione dell'orientamento tramite angolo di Eulero ORIRPY Programmazione dell'orientamento tramite angolo RPY

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 399

A2= B2= C2= Programmazione angolare di assi virtuali ORIVIRT1 ORIVIRT2

Programmazione dell'orientamento tramite assi di orientamento virtuali (definizione 1), definizione secondo DM $MC_ORIAX_TURN_TAB_1 (definizione 2), definizione secondo DM $MC_ORIAX_TURN_TAB_2

A3= B3= C3= Programmazione del vettore direzionale dell’asse direzionale ORIPLANE Interpolazione nel piano (interpolazione del cerchio estesa) ORICONCW Interpolazione su una superficie conica in senso orario ORICONCCW Interpolazione su una superficie conica in senso antiorario ORICONTO Interpolazione su una superficie conica con raccordo

tangenziale A6= B6= C6= Programmazione dell’asse di rotazione del cono (vettore

normalizzato) NUT=angolo Angolo di apertura del cono in gradi NUT=+179 Angolo di posizionamento minore o uguale 180 gradi NUT=-181 Angolo di posizionamento maggiore o uguale 180 gradi ORICONIO Interpolazione su una superficie conica A7= B7= C7= Orientamento intermedio (programmazione come vettore

normalizzato) ORICURVE XH YH ZH ad es. con polinomi PO[XH]=(xe, x2, x3, x4, x5)

Interpolazione dell'orientamento con preimpostazione del movimento di due punti di contatto dell'utensile Oltre ai rispettivi punti finali, si possono programmare ulteriori polinomi di curve nello spazio.

Nota Se l'orientamento utensile con ORIAXES attivo viene interpolato tramite gli assi di orientamento, l'accostamento dell'angolo di rotazione viene raggiunto solo a fine blocco.

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro 400 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.5.4 Spianamento del percorso di orientamento (ORIPATHS A8=, B8=, C8=)

Funzioni Nelle modifiche dell'orientamento con accelerazione costante sul profilo vanno evitate le interruzioni dei movimenti vettoriali, le quali possono verificarsi specialmente sugli angoli del profilo. La piega risultante nel percorso di orientamento può essere spianata inserendo un apposito blocco intermedio. La modifica dell'orientamento avviene quindi con accelerazione costante, se durante la modifica dell'orientamento è attivo anche ORIPATHS. In questa fase è possibile eseguire un movimento di svincolo dell'utensile. Costruttore della macchina Rispettare le indicazioni del costruttore della macchina sugli eventuali dati macchina e dati di setting predefiniti con i quali viene attivata questa funzione. Il dato macchina consente di impostare come viene interpretato il vettore di svincolo: 1. nel sistema di coordinate dell'utensile la coordinata Z viene definita mediante la direzione

utensile. 2. nel sistema di coordinate del pezzo la coordinata Z viene definita mediante il piano attivo. Per ulteriori dettagli sulla funzione "Orientamento relativo al percorso" vedere Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazione a 3 ... 5 assi (F2)

Sintassi Per gli orientamenti utensile costanti riferiti all'intero percorso, su un angolo del profilo vanno effettuate ulteriori operazioni di programmazione. La direzione e la lunghezza del percorso di questo movimento vengono programmate tramite il vettore con i componenti A8=X, B8=Y, C8=Z: N... ORIPATHS A8=X B8=Y C8=Z

Trasformazioni 6.5 Orientamenti relativi al percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 401

Significato ORIPATHS Orientamento dell'utensile riferito al percorso, viene raddrizzata una piega

durante l'orientamento. A8= B8= C8= Componenti vettore per direzione e lunghezza del percorso X, Y, Z Movimento di svincolo nella direzione dell'utensile

Nota Programmazione del vettore direzionale A8, B8, C8 Se la lunghezza di questo vettore è uguale a zero non ha luogo alcun movimento di svincolo.ORIPATHS L'orientamento utensile riferito al percorso viene attivato con ORIPATHS. In caso contrario, l'orientamento viene commutato dall'orientamento iniziale a quello finale mediante interpolazione del cerchio estesa lineare.

Trasformazioni 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD)

Preparazione del lavoro 402 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.6 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD)

Funzioni I programmi NC nei quali è attiva una trasformazione dell'orientamento (TRAORI) e l'orientamento è programmato mediante vettori direzionali possono essere compressi rispettando le tolleranze preimpostate.

Nota Il movimento per orientamento viene compresso solo se è attiva l'interpolazione del cerchio estesa e quindi dipende dal codice G per l'interpolazione di orientamento. Questo codice è impostabile con i dati macchina proprio come la lunghezza massima del percorso e la tolleranza ammessa per ogni asse o per l'avanzamento vettoriale per la funzione compressore. Fare attenzione alle indicazioni del costruttore della macchina

Programmazione Orientamento dell'utensile Se è attiva una trasformazione dell'orientamento (TRAORI), nelle macchine a 5 assi è possibile programmare l'orientamento dell'utensile come segue (indipendentemente dalla cinematica): ● Programmazione del vettore direzionale mediante:

A3=<...> B3=<...> C3=<...> ● Programmazione dell'angolo di Eulero o dell'angolo RPY mediante:

A2=<...> B2=<...> C2=<...> Rotazioni dell'utensile Per le macchine a 6 assi è inoltre possibile programmare, oltre all'orientamento dell'utensile, anche la rotazione dell'utensile. La programmazione dell'angolo di rotazione viene effettuata con: THETA=<...> Ved. " Rotazioni dell'orientamento utensile (Pagina 390) ".

Nota I blocchi NC nei quali è programmata anche una rotazione possono essere compressi solo se l'angolo di rotazione varia in maniera lineare. Questo significa che per l'angolo di rotazione non può essere programmato con PO[THT]=(...) alcun polinomio.

Trasformazioni 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 403

Formato base di un blocco NC comprimibile Il formato base di un blocco NC comprimibile può quindi essere il seguente: N... X=<...> Y=<...> Z=<...> A3=<...> B3=<...> C3=<...> THETA=<...> F=<...> oppure N... X=<...> Y=<...> Z=<...> A2=<...> B2=<...> C2=<...> THETA=<...> F=<...>

Nota I valori di posizione possono essere indicati direttamente (ad es. X90) oppure indirettamente mediante l'assegnazione di parametri (ad es. X=R1*(R2+R3)).

Programmazione dell'orientamento utensile attraverso le posizioni dell'asse rotante L'orientamento dell'utensile può essere indicato anche con le posizioni dell'asse rotante, ad es. nel formato: N... X=<...> Y=<...> Z=<...> A=<...> B=<...> C=<...> THETA=<...> F=<...> In questo caso, la compressione viene effettuata in due diversi modi, a seconda che sia eseguita o meno un'interpolazione del cerchio estesa. Se non ha luogo l'interpolazione del cerchio estesa, la variazione dell'orientamento compressa viene rappresentata nella maniera consueta attraverso polinomi assiali per gli assi rotanti. Precisione del profilo A seconda della modalità di compressione impostata (MD20482 $MC_COMPRESSOR_MODE), per gli assi geometrici e gli assi di orientamento diventano attive durante la compressione le tolleranze progettate specifiche per l'asse (MD33100 $MA_COMPRESS_POS_TOL) oppure le seguenti tolleranze specifiche per il canale, impostabili tramite dati di setting. SD42475 $SC_COMPRESS_CONTUR_TOL (scostamento massimo dal profilo) SD42476 $SC_COMPRESS_ORI_TOL (scostamento angolare massimo per l'orientamento utensile) SD42477 $SC_COMPRESS_ORI_ROT_TOL (scostamento angolare massimo dell'angolo di rotazione dell'utensile) (solo per macchine a 6 assi) Bibliografia: Manuale di guida alle funzioni, Funzioni di base; Trasformazione a 3 ... 5 assi (F2), Capitolo: "Compressione dell'orientamento"

Trasformazioni 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD)

Preparazione del lavoro 404 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Attivazione/Disattivazione Le funzioni compressore vengono attivate attraverso i codici G modali COMPON, COMPCURV oppure COMPCAD. La funzione compressore viene terminata con COMPOF. Ved. " Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF) (Pagina 278) ".

Nota Il movimento per l'orientamento viene compresso solo con interpolazione del cerchio estesa attiva (ossia la modifica dell'orientamento utensile ha luogo nel piano esteso dall'orientamento iniziale a quello finale). Un'interpolazione del cerchio estesa viene eseguita alle seguenti condizioni: • MD21104 $MC_ORI_IPO_WITH_G_CODE = 0,

ORIWKS è attivo e l'orientamento è programmato tramite vettori (con A3, B3, C3 o A2, B2, C2).

• MD21104 $MC_ORI_IPO_WITH_G_CODE = 1 e ORIVECT o ORIPLANE è attivo. L'orientamento dell'utensile può essere programmato o come vettore di direzione o con le posizioni dell'asse di rotazione. Se uno dei codici G ORICONxx oppure ORICURVE è attivo o se per gli angoli di orientamento (PO[PHI] e PO[PSI]) sono programmati polinomi, non viene eseguita alcuna interpolazione del cerchio estesa.

Trasformazioni 6.6 Compressione dell'orientamento (COMPON, COMPCURV, COMPCAD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 405

Esempio Nell'esempio che segue viene realizzata la compressione di un cerchio che viene accostato con un tratto poligonale. L’orientamento dell’utensile avviene sincrono ad una superficie conica. Sebbene le modifiche dell'orientamento programmate in successione avvengano in modo discontinuo, il compressore genera un andamento costante dell'orientamento. Programmazione Commento

DEF INT NUMERO=60

DEF REAL RADIUS=20

DEF INT COUNTER

DEF REAL ANGOLO

N10 G1 X0 Y0 F5000 G64

$SC_COMPRESS_CONTUR_TOL=0.05 ; Scostamento massimo dal profilo = 0,05 mm

$SC_COMPRESS_ORI_TOL=5 ; Scostamento massimo dall'orientamento = 5 gradi

TRAORI

COMPCURV

; Viene percorso un cerchio creato da poligoni. Quindi l'orientamento avviene su un cono intorno all'asse Z con un angolo di apertura di 45 gradi.

N100 X0 Y0 A3=0 B3=-1 C3=1

N110 FOR COUNTER=0 TO NUMERO

N120 WINKEL=360*COUNTER/NUMERO

N130 X=RADIUS*cos(WINKEL) Y=RADIUS*sin(WINKEL)

A3=sin(WINKEL) B3=-cos(WINKEL) C3=1

N140 ENDFOR

Trasformazioni 6.7 Spianamento del percorso di orientamento (ORISON, ORISOF)

Preparazione del lavoro 406 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.7 6.7 Spianamento del percorso di orientamento (ORISON, ORISOF)

Funzione Con la funzione "Spianamento del percorso di orientamento (ORISON)" si possono livellare le variazioni di orientamento su più blocchi. Ciò permette di ottenere un andamento regolare dell'orientamento e del profilo.

Presupposto La funzione "Spianamento del percorso di orientamento (ORISON)" è unicamente disponibile nei sistemi con trasformazione a 5/6 assi.

Sintassi ORISON

...

ORISOF

Significato

Spianamento del percorso di orientamento ON ORISON: Efficacia: modale Spianamento del percorso di orientamento OFF ORISOF: Efficacia: modale

Dati di setting Il livellamento del percorso di orientamento avviene rispettando: ● una tolleranza massima preimpostata (max. scostamento angolare dell'orientamento

utensile in gradi) e

● un percorso di contornitura max. preimpostato. Queste impostazioni sono definite dai dati di setting: ● SD42678 $SC_ORISON_TOL (tolleranza per lo spianamento del percorso di

orientamento) ● SD42680 O$SC_ORISON_DIST (percorso di contornitura per lo spianamento del

percorso di orientamento)

Trasformazioni 6.7 Spianamento del percorso di orientamento (ORISON, ORISOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 407

Esempio Codice di programma Commento

...

TRAORI() ; Attivazione della trasformazione dell'orientamento.

ORISON ; Attivazione dello smorzamento dell'orientamento.

$SC_ORISON_TOL=1.0 ; Tolleranza dello smorzamento dell'orientamento = 1,0 gradi.

G91

X10 A3=1 B3=0 C3=1

X10 A3=–1 B3=0 C3=1

X10 A3=1 B3=0 C3=1

X10 A3=–1 B3=0 C3=1

X10 A3=1 B3=0 C3=1

X10 A3=–1 B3=0 C3=1

X10 A3=1 B3=0 C3=1

X10 A3=–1 B3=0 C3=1

X10 A3=1 B3=0 C3=1

X10 A3=–1 B3=0 C3=1

...

ORISOF ; Disattivazione dello smorzamento dell'orientamento.

...

L'orientamento viene ruotato di 90 gradi nel piano XZ, passando da -45 a +45 gradi. In seguito al livellamento del percorso di orientamento quest'ultimo non raggiunge più i valori angolari massimi di -45 o +45 gradi.

Trasformazioni 6.7 Spianamento del percorso di orientamento (ORISON, ORISOF)

Preparazione del lavoro 408 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Numero di blocchi Lo spianamento del percorso di orientamento avviene tramite un numero di blocchi progettato e memorizzato nel dato macchina MD28590 $MC_MM_ORISON_BLOCKS.

Nota Se lo spianamento del percorso di orientamento con ORISON viene attivato senza che sia stata progettata una quantità sufficiente di memoria blocchi (MD28590 < 4), viene emesso un messaggio di allarme e la funzione non può essere eseguita.

Lunghezza massima del percorso blocchi Il percorso di orientamento viene livellato solo nei blocchi il cui percorso è inferiore alla lunghezza massima del percorso blocchi progettata (MD20178 $MC_ORISON_BLOCK_PATH_LIMIT). I blocchi con percorsi superiori interrompono lo spianamento e vengono eseguiti come programmato.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 409

6.8 6.8 Trasformazione cinematica

6.8.1 Fresatura su pezzi torniti (TRANSMIT)

Funzione La funzione TRANSMIT permette di eseguire: ● Lavorazione frontale su pezzi torniti e bloccati (fori, profili). ● Per la programmazione di queste lavorazioni può essere utilizzato un sistema di

coordinate cartesiano. ● Il controllo numerico trasforma i movimenti programmati del sistema di coordinate

cartesiano nei movimenti degli assi macchina reali (caso standard): – Asse rotante – Asse di incremento perpendicolare all'asse rotante – Asse longitudinale parallelo all'asse di rotazione – Gli assi lineari sono ortogonali tra di loro.

● Lo spostamento del centro dell'utensile rispetto al centro di rotazione è consentito. ● La guida della velocità tiene conto delle limitazioni definite per i movimenti rotatori.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 410 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Tipi di trasformazione TRANSMIT Per le lavorazioni TRANSMIT si possono impostare due varianti: ● TRANSMIT come default con (TRAFO_TYPE_n = 256) ● TRANSMIT con asse Y lineare supplementare (TRAFO_TYPE_n = 257) Il tipo di trasformazione ampliato 257 può essere utilizzato, ad esempio, per compensare correzioni del bloccaggio di un utensile con l'asse reale Y.

Sintassi TRANSMIT o TRANSMIT(n) TRAFOOF Asse rotante L'asse rotante non può essere programmato, in quanto viene occupato da un asse geometrico e quindi non è più programmabile direttamente come asse canale.

Significato TRANSMIT: Attiva la prima funzione TRANSMIT definita. Questa funzione viene

anche denominata Trasformazione polare. TRANSMIT(n): Attiva la successiva funzione TRANSMIT concordata; n può essere

al massimo 2 (TRANSMIT(1) corrisponde a TRANSMIT). TRAFOOF: Disattiva una trasformazione attiva OFFN: Offset profilo normale: distanza della lavorazione frontale dal profilo

di riferimento programmato

Nota Una trasformazione TRANSMIT attiva viene anche disattivata quando nel rispettivo canale viene attivata una delle restanti trasformazioni (ad es. TRACYL, TRAANG, TRAORI).

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 411

Esempio

Codice di programma Commento

N10 T1 D1 G54 G17 G90 F5000 G94 ; Selezione utensile

N20 G0 X20 Z10 SPOS=45 ; Accostamento alla posizione di partenza

N30 TRANSMIT ; Attivazione funzione TRANSMIT

N40 ROT RPL=–45

N50 ATRANS X–2 Y10

; Impostazione di un frame

N60 G1 X10 Y–10 G41 OFFN=1OFFN

N70 X–10

N80 Y10

N90 X10

N100 Y–10

; Sgrossatura quadra; sovrametallo 1 mm

N110 G0 Z20 G40 OFFN=0

N120 T2 D1 X15 Y–15

N130 Z10 G41

; Cambio utensile

N140 G1 X10 Y–10

N150 X–10

N160 Y10

N170 X10

N180 Y–10

; Finitura quadra

N190 Z20 G40

N200 TRANS

N210 TRAFOOF

; Disattivazione frame

N220 G0 X20 Z10 SPOS=45 ; Accostamento alla posizione di partenza

N230 M30

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 412 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione Polo Per l'attraversamento del polo esistono due possibilità: ● movimento del solo asse lineare ● movimento nel polo con rotazione dell’asse rotante e successivo proseguimento oltre il

polo La selezione avviene con i DM 24911 e 24951. TRANSMIT con asse Y lineare supplementare (tipo di trasformazione 257): Questa variante di trasformazione della trasformazione polare, in una macchina con un ulteriore asse lineare, sfrutta la ridondanza per eseguire una correzione utensile migliore. Per il secondo asse lineare vale quindi: ● un campo di lavoro inferiore e ● che il secondo asse lineare non può essere utilizzato per arrestare il partprogram. Per il partprogram e l'assegnazione dei relativi assi nel SCN oppure SCM, sono necessarie determinate impostazioni dei dati macchina, vedere Bibliografia /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazioni cinematiche (M1)

6.8.2 Trasformazione della superficie esterna del cilindro (TRACYL)

Funzione La trasformazione di curve su una superficie cilindrica TRACYL permette di eseguire: la lavorazione di ● cave longitudinali su corpi cilindrici, ● cave trasversali su corpi cilindrici, ● cave ad andamento libero su corpi cilindrici. L'andamento delle cave viene programmato in riferimento alla superficie cilindrica.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 413

Tipi di trasformazione TRACYL La trasformazione curvilinea su una superficie cilindrica è disponibile in due varianti: ● TRACYL senza correzione della parete della cava: (TRAFO_TYPE_n=512) ● TRACYL con correzione della parete della cava: (TRAFO_TYPE_n=513) ● TRACYL con ulteriore asse lineare e correzione della parete della cava:

(TRAFO_TYPE_n=514) La correzione della parete della cava viene parametrizzata con TRACYL tramite il terzo parametro.

Nella trasformazione curvilinea su una superficie cilindrica con correzione della cava, l'asse utilizzato per la correzione dovrebbe trovarsi a zero (y=0) in modo che la cava venga eseguita centrata sulla linea mediana programmata. Utilizzo dell'asse I seguenti assi non possono essere utilizzati come assi di posizionamento o di pendolamento: ● l'asse geometrico in direzione periferica della superficie del cilindro (asse Y) ● l'asse lineare supplementare per correzione della cava (asse Z)

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 414 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi TRACYL(d) oppure TRACYL(d, n) oppure per il tipo di trasformazione 514 TRACYL(d, n, correzione della parete della cava) TRAFOOF Asse rotante L'asse rotante non può essere programmato, in quanto viene occupato da un asse geometrico e quindi non è più programmabile direttamente come asse canale.

Significato TRACYL (d) Attiva la prima delle funzioni TRACYL definite nei dati

macchina del canale: il parametro d rappresenta il diametro di lavoro.

TRACYL (d, n) Attiva la n. funzione TRANSMIT definita nei dati macchina del canale; n può essere al massimo 2, TRACYL(d,1) corrisponde a TRACYL(d)

D Valore per il diametro di lavorazione. Il diametro di lavorazione rappresenta la distanza doppia tra la punta dell'utensile ed il centro di rotazione. Questo diametro deve essere sempre impostato e deve essere maggiore di 1.

n 2° parametro opzionale per il blocco dati TRACYL 1 (preselezionato) oppure 2.

Correzione parete cava 3° parametro opzionale il cui valore per TRACYL viene preselezionato dal Mode dei dati macchina. Campo di valori: 0: Tipo di trasformazione 514 senza correzione della parete della cava come finora 1: Tipo di trasformazione 514 con correzione della parete della cava

TRAFOOF Trasformazione off (SCB e SCM sono nuovamente identici). OFFN Offset profilo normale: distanza tra la superficie della cava ed

il profilo di riferimento programmato

Nota Una trasformazione TRACYL attiva viene anche disattivata quando nel rispettivo canale viene attivata una delle restanti trasformazioni (ad es. TRANSMIT, TRAANG, TRAORI).

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 415

Esempio: Definizione dell'utensile L'esempio seguente è adatto per verificare la parametrizzazione della trasformazione cilindrica TRACYL: Codice di programma Commento

Parametri utensile

Numero (DP)

Significato Nota

$TC_DP1[1,1]=120 Tipo di utensile Fresa

$TC_DP2[1,1]=0 Posizione di taglio Solo per utensili da tornio

Codice di programma Commento

Geometria Correzione lunghezza

$TC_DP3[1,1]=8. Vettore di correzione longitudinale

Calcolo in base al tipo

$TC_DP4[1,1]=9. ed al piano

$TC_DP5[1,1]=7.

Codice di programma Commento

Geometria Raggio

$TC_DP6[1,1]=6. Raggio Raggio dell'utensile

$TC_DP7[1,1]=0 Larghezza della cava b per seghe per cave, raggio del raccordo per utensili di fresatura

$TC_DP8[1,1]=0 Spoglia k Solo per sega per cave

$TC_DP9[1,1]=0

$TC_DP10[1,1]=0

$TC_DP11[1,1]=0 Angolo per utensili conici di fresatura

Codice di programma Commento

Usura Correzione lunghezza e raggio

$TC_DP12[1,1]=0 I restanti parametri fino a $TC_DP24=0

Quota base/adattat.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 416 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Lavorazione di una cava a forma di gancio

Attivazione della trasformazione su superficie cilindrica: Codice di programma Commento

N10 T1 D1 G54 G90 F5000 G94 ; Selezione dell'utensile, compensazione del bloccaggio

N20 SPOS=0

N30 G0 X25 Y0 Z105 CC=200

; Accostamento alla posizione di partenza

N40 TRACYL (40) ; Attivazione della trasformazione curvilinea su superficie cilindrica

N50 G19 ; Selezione del piano

Lavorazione di una cava a forma di gancio: Codice di programma Commento

N60 G1 X20 ; Posizionamento dell'utensile alla base della cava

N70 OFFN=12 ; Definizione della distanza dalla parete della cava a 12 mm dalla mezzeria

N80 G1 Z100 G42 ; Accostamento alla parete destra della cava

N90 G1 Z50 ; Sezione della cava parallela all'asse del cilindro

N100 G1 Y10 ; Sezione della cava parallela alla circonferenza

N110 OFFN=4 G42 ; Accostamento alla parete sinistra della cava; definizione della distanza dalla parete della cava a 4 mm dalla mezzeria

N120 G1 Y70 ; Sezione della cava parallela alla circonferenza

N130 G1 Z100 ; Sezione della cava parallela all'asse del

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 417

Codice di programma Commento cilindro

N140 G1 Z105 G40 ; Allontanamento dalla parete della cava

N150 G1 X25 ; Svincolo

N160 TRAFOOF

N170 G0 X25 Y0 Z105 CC=200 ; Accostamento alla posizione di partenza

N180 M30

Descrizione Senza correzione della parete della cava (tipo di trasformazione 512): il controllo numerico trasforma i movimenti programmati del sistema di coordinate cilindriche nei movimenti degli assi macchina reali: ● Asse rotante ● Asse di incremento perpendicolare all'asse rotante ● Asse longitudinale parallelo all'asse di rotazione Gli assi lineari sono ortogonali tra di loro. L’asse di incremento interseca l’asse rotante.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 418 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Con correzione della parete della cava (tipo di trasformazione 513): Per la cinematica vedere l'esempio precedente ma con un ulteriore asse longitudinale parallelo alla direzione della circonferenza Gli assi lineari sono ortogonali tra di loro. La guida della velocità tiene conto delle limitazioni definite per i movimenti rotatori.

Sezione trasversale della cava Nella configurazione assiale 1, le cave longitudinali all’asse rotante sono limitate parallelamente solo quando la larghezza delle stesse corrisponde esattamente al raggio dell’utensile. Le cave parallele alla circonferenza (cave trasversali), all’inizio ed alla fine non sono parallele.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 419

Con ulteriore asse lineare e correzione della parete della cava (tipo di trasformazione 514): Questa variante di trasformazione, in una macchina con un ulteriore asse lineare, sfrutta la ridondanza per eseguire una correzione utensile migliore. Per il secondo asse lineare vale quindi: ● un campo di lavoro inferiore e ● che il secondo asse lineare non può essere utilizzato per arrestare il partprogram. Per il partprogram e l'assegnazione dei relativi assi nel SCN oppure SCM, sono necessarie determinate impostazioni dei dati macchina, vedere Bibliografia /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazioni cinematiche (M1)

Offset profilo normale OFFN (tipo di trasformazione 513) Per poter fresare cave con TRACYL, viene programmata ● nel partprogram la linea mediana della cava ● con OFFN la semi-cava.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 420 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

OFFN diventa attivo solo con correzione raggio utensile attivata per evitare un danneggiamento della parete della cava). In seguito, OFFN dovrebbe essere >= al raggio utensile per escludere un danneggiamento della parete opposta della cava.

Un partprogram per la fresatura di una cava, normalmente è composto dai seguenti passi: 1. Selezione dell’utensile 2. Attivazione di TRACYL 3. Selezionare l’opportuna traslazione delle coordinate (FRAME) 4. Posizionamento 5. Programmare OFFN 6. Attivare la CRU 7. Blocco di accostamento (esecuzione della CRU e raggiungimento della cava) 8. Profilo della linea mediana della cava 9. Disattivare la CRU 10. Blocco di svincolo (disattivazione della CRU e svincolo dalla cava) 11. Posizionamento

12. TRAFOOF 13. Selezionare nuovamente la traslazione delle coordinate originaria (FRAME)

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 421

Particolarità ● Attivazione della CRU:

La CRU non viene programmata rispetto alla superficie della cava ma in modo incrementale rispetto alla linea mediana della cava programmata. Per fare in modo che l’utensile avanzi sulla sinistra della cava, viene programmato G42 (invece di G41). Questo viene evitato se in OFFN si imposta la larghezza della cava con segno negativo.

● OFFN con TRACYL agisce in modo diverso da OFFN senza TRACYL. Siccome OFFN con CRU attiva viene considerato anche senza TRACYL, dopo TRAFOOF si dovrebbe settare nuovamente a zero OFFN.

● È consentita una variazione di OFFN all’interno del partprogram. In questo modo la linea mediana potrebbe essere spostata rispetto al centro (vedere figura).

● Guide di scorrimento: Con TRACYL non viene realizzata la stessa cava per guide di scorrimento, come se fosse realizzata con un utensile di diametro pari alla larghezza della cava stessa. Fondamentalmente, con un utensile cilindrico più piccolo, non è possibile realizzare la stessa geometria della cava eseguita con un utensile più grande. TRACYL minimizza l’errore. Per evitare problemi di precisione, il raggio dell’utensile dovrebbe essere solo leggermente inferiore alla metà della larghezza della cava.

Nota OFFN e CRU Con TRAFO_TYPE_n = 512 il valore di OFFN vale come sovrametallo per la CRU. Con TRAFO_TYPE_n = 513 in OFFN viene programmata la metà della larghezza della cava. Lo svincolo dal profilo avviene con OFFN-CRU.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 422 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.8.3 Asse inclinato (TRAANG)

Funzione La funzione asse inclinato è stata realizzata per le rettifiche e consente le seguenti prestazioni: ● Lavorazione con asse di incremento inclinato ● Per la programmazione si può utilizzare un sistema di coordinate cartesiane. ● Il controllo numerico trasforma i movimenti programmati del sistema di coordinate

cartesiano nei movimenti degli assi macchina reali (caso standard): asse di incremento inclinato.

Sintassi TRAANG(α) oppure TRAANG(α, n) TRAFOOF

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 423

Significato TRAANG( ) oppure TRAANG( ,n)

Attivazione della trasformazione con la parametrizzazione della selezione precedente.

TRAANG(α) Attivazione della prima trasformazione per asse inclinato dichiarata. TRAANG(α,n) Attivazione della n. trasformazione per asse inclinato dichiarata. n può

essere al max. 2. TRAANG(α,1) corrisponde a TRAANG(α). αA Angolo di inclinazione dell'asse

I valori possibili per α sono: -90 gradi < α < + 90 gradi

TRAFOOF Disattiva la trasformazione n Numero di trasformazioni dichiarate

Angolo α tralasciato oppure zero Se l'angolo α viene tralasciato (ad es. TRAANG(), TRAANG(,n)), la trasformazione viene attivata con la parametrizzazione della selezione precedente. Alla prima attivazione vale la preimpostazione dei dati macchina. Un angolo α = 0 (ad es. TRAANG(0), TRAANG(0,n)) costituisce una parametrizzazione valida e non corrisponde più a tralasciare il parametro nelle versioni precedenti.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 424 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio

Codice di programma Commento

N10 G0 G90 Z0 MU=10 G54 F5000 ->

-> G18 G64 T1 D1

; Selezione dell'utensile, compensazione del bloccaggio, selezione del piano

N20 TRAANG(45) ; Attivazione della trasformazione per asse inclinato

N30 G0 Z10 X5 ; Accostamento alla posizione di partenza

N40 WAITP(Z) ; Abilitazione dell'asse al pendolamento

N50 OSP[Z]=10 OSP2[Z]=5 OST1[Z]=–2 ->

-> OST2[Z]=–2 FA[Z]=5000

N60 OS[Z]=1

N70 POS[X]=4.5 FA[X]=50

N80 OS[Z]=0

; Pendolamento fino al raggiungimento della quota (per il pendolamento si rimanda al capitolo "Pendolamento")

N90 WAITP(Z) ; Abilitazione degli assi di pendolamento quali assi di posizionamento

N100 TRAFOOF ; Disattivazione della trasformazione

N110 G0 Z10 MU=10 ; Svincolo

N120 M30 ;

-> da programmare in un blocco a sé stante

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 425

Descrizione Sono possibili le seguenti lavorazioni: 1. Rettifica longitudinale 2. rettifica in piano 3. Rettifica di un determinato profilo 4. Rettifica con mola obliqua

Costruttore della macchina Tramite dati macchina vengono eseguite le seguenti impostazioni: ● l'angolo tra un asse macchina e l'asse inclinato, ● la posizione del punto zero utensile riferito all'origine del sistema di coordinate dichiarato

per la funzione “Asse inclinato”, ● la riserva di velocità che viene mantenuta sull'asse parallelo per il movimento di

compensazione, ● la riserva di accelerazione che viene mantenuta sull'asse parallelo per il movimento di

compensazione.

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro 426 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Configurazione dell'asse Per poter programmare nel sistema di coordinate cartesiano, bisogna seganalare al controllo la relazione esistente tra il sistema di coordinate e gli assi macchina (MU, MZ) realmente esistenti: ● Denominazione degli assi geometrici ● Abbinamento degli assi geometrici agli assi canale

– caso generico (asse inclinato non attivo) – asse inclinato attivo

● Abbinamento degli assi canale al numero di asse macchina ● Codifica dei mandrini ● Assegnazione dei nomi degli assi macchina Il procedimento, con eccezione di “Asse inclinato attivo”, corrisponde a quello della normale configurazione degli assi.

6.8.4 Programmazione dell’asse inclinato (G05, G07)

Funzione Nel funzionamento Jog, la mola può essere mossa in modo cartesiano oppure in direzione dell'asse inclinato (la visualizzazione resta cartesiana). Si muove solo il primo asse reale U, la visualizzazione dell'asse Z viene aggiornata. Nel funzionamento Jog, le traslazioni REPOS devono essere eseguite in modo cartesiano. Nel funzionamento Jog con "Movimento PTP" attivo viene sorvegliato il superamento del limite del campo di lavoro cartesiano e il relativo asse viene frenato in anticipo. Se il "Movimento PTP" non è attivo, l'asse può raggiungere esattamente il limite di lavoro. Bibliografia /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazione cinematica (M1)

Trasformazioni 6.8 Trasformazione cinematica

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 427

Sintassi G07 G05 Le istruzioni G07/G05 servono per semplificare la programmazione dell’asse inclinato. In questo modo si possono programmare e visualizzare posizioni nel sistema di coordinate cartesiano. La correzione utensile e lo spostamento origine vengono calcolate come cartesiane. Dopo aver programmato l'angolo per l'asse inclinato nel programma NC, si può raggiungere la posizione iniziale (G07) e in seguito eseguire completamente la troncatura inclinata (G05).

Significato G07 Accostamento alla posizione iniziale G05 Attivazione troncatura con mola inclinata

Esempio

Programmazione Commento

N.. G18 ; Programmazione dell'angolo per l'asse inclinato

N50 G07 X70 Z40 F4000 ; Accostamento alla posizione iniziale

N60 G05 X70 F100 ; Troncatura inclinata

N70 ... ;

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 428 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.9 6.9 Movimento cartesiano PTP

Funzioni Con questa funzione è possibile programmare una posizione in un sistema di coordinate cartesiano, il movimento della macchina avviene però nel sistema di coordinate di macchina. La funzione può essere applicata ad esempio nel cambio di posizione dell'articolazione se il movimento passa attraverso una singolarità.

Nota La funzione può essere applicata solo in collegamento ad una trasformazione attiva. Inoltre il "movimento PTP" è ammesso solo in collegamento con G0 e G1.

Sintassi N... TRAORI N... STAT='B10' TU='B100' PTP N... CP Movimento PTP durante la trasformazione generica a 5/6 assi Se durante la trasformazione generica a 5/6 assi con PTP viene attivato un movimento punto a punto nel sistema di coordinate macchina (ORIMKS), è possibile programmare l'orientamento dell'utensile tanto con posizioni di asse rotante N... G1 X Y Z A B C quanto con vettori angolo di Eulero o RPY indipendenti dalla cinematica N... ORIEULER oppure ORIRPY N... G1 X Y Z A2 B2 C2 o con i vettori direzionali N... G1 X Y Z A3 B3 C3. Può essere attiva l'interpolazione dell'asse rotante, l'interpolazione vettoriale con interpolazione circolare ad ampio raggio ORIVECT o l'interpolazione del vettore di orientamento su una superficie conica ORICONxx.

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 429

Ambiguità dell'orientamento con i vettori La programmazione dell'orientamento con vettori dà luogo a un'ambiguità nelle possibili posizioni di asse rotante. Le posizioni di asse rotante da raggiungere possono essere selezionate con la programmazione di STAT = <...>. Se viene programmato STAT = 0 (corrisponde all'impostazione standard), vengono accostate le posizioni che distano meno dalle posizioni iniziali. Se viene programmato STAT = 1, vengono accostate le posizioni che distano maggiormente dalle posizioni iniziali.

Significato I comandi PTP e CP hanno efficacia modale. CP costituisce l'impostazione standard. Mentre la programmazione del valore STAT ha validità modale, la programmazione di TU = <...> agisce blocco per blocco. Un'altra differenza è che la programmazione di un valore STAT ha effetto solo in presenza di interpolazione vettoriale, mentre la programmazione di TU viene valutata anche con l'interpolazione dell'asse rotante attiva. PTP Point to Point; (movimento da punto a punto)

Il movimento viene eseguito come movimento di assi sincroni; l'asse più lento interessato al movimento è l'asse dominante per la velocità.

CP Continuous Path (movimento vettoriale) Il movimento viene eseguito come movimento vettoriale cartesiano.

STAT= Posizione dello snodo; il valore è in funzione della trasformazione. TU= L'informazione TURN è valida solo nel blocco. In questo modo è possibile

raggiungere univocamente l'angolo dell'asse tra -360 gradi e +360 gradi.

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 430 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio

N10 G0 X0 Y-30 Z60 A-30 F10000 Posizione di partenza

→ Gomito in alto N20 TRAORI(1) Trasformazione On N30 X1000 Y0 Z400 A0 N40 X1000 Z500 A0 STAT='B10' TU='B100' PTP

Modifica dell'orientamento senza trasformazione → Gomito in basso

N50 X1200 Z400 CP Trasformazione di nuovo attiva N60 X1000 Z500 A20 N70 M30

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 431

Movimento PTP durante la trasformazione generica a 5 assi Presupposti: l'esempio si basa su una cinematica CA ortogonale. Codice di programma Commento

TRAORI ; Trasformazione cinematica CA On

PTP ; Attivazione movimento PTP

N10 A3 = 0 B3 = 0 C3 = 1 ; Posizioni dell'asse rotante C = 0 A = 0

N20 A3 = 1 B3 = 0 C3 = 1 ; Posizioni dell'asse rotante C = 90 A = 45

N30 A3 = 1 B3 = 0 C3 = 0 ; Posizioni dell'asse rotante C = 90 A = 90

N40 A3 = 1 B3 = 0 C3 = 1 STAT = 1

; Posizioni dell'asse rotante C = 270 A = -45

Selezione di una posizione di accostamento univoca degli assi rotanti: Nel blocco N40 gli assi rotanti coprono, con la programmazione di STAT = 1, il percorso più lungo dal loro punto di partenza (C=90, A=90) al punto finale (C=270, A=–45), diversamente da come sarebbe con STAT = 0 ossia il percorso più breve verso il punto finale (C=90, A=45).

Descrizione La commutazione tra il movimento cartesiano e il movimento degli assi di macchina avviene con le istruzioni PTP e CP. Movimento PTP durante la trasformazione generica a 5/6 assi Durante il movimento PTP il TCP non resta generalmente stazionario, al contrario della trasformazione a 5/6 assi, nel caso in cui si modifichi solo l'orientamento. Le posizioni finali trasformate di tutti gli assi di trasformazione (3 assi lineari e fino a 3 assi rotanti) vengono accostate linearmente senza che, durante tale fase, la trasformazione sia ancora propriamente attiva. Il movimento PTP viene disattivato dalla programmazione del codice G modale CP. Le varie trasformazioni sono descritte nella documentazione: /FB3/ Manuale delle funzioni speciali; Pacchetto di trasformazione Handling (TE4).

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 432 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione della posizione (STAT=) Una posizione di macchina non è determinata in modo univoco solo dall'indicazione della posizione con coordinate cartesiane e dall'orientamento dell'utensile. A seconda di quale cinematica si tratta, esistono fino a 8 posizioni diverse o differenziante dell'articolazione. Tali posizioni sono quindi specifiche della trasformazione. Per poter convertire in modo univoco una posizione cartesiana nell'angolo dell'asse, è necessario che la posizione dell'articolazione venga indicata con il comando STAT=. Il comando "STAT" contiene un bit come valore binario per ognuna delle posizioni possibili. Per i bit delle posizioni da programmare con "STAT", vedere: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazione cinematica (M1), capitolo "Movimento cartesiano PTP". Programmazione dell'angolo dell'asse (TU=) Per poter raggiungere in modo univoco l'angolo dell'asse < ±360 gradi, è necessario che questa informazione venga programmata con l'istruzione TU= ". Gli assi si muovono lungo il percorso più breve: ● se per una posizione non viene programmato alcun TU ● se gli assi hanno un campo di posizionamento > ±360 gradi Esempio: La posizione di destinazione indicata nella figura può essere raggiunta in direzione negativa o positiva. Sotto l'indirizzo A1 viene programmata la direzione. A1=225°, TU=bit 0, → direzione positiva A1=−135°, TU=Bit 1, → direzione negativa

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 433

Esempio di valutazione della variabile TU per la trasformazione generica a 5/6 assi e le posizioni di destinazione Per ogni asse interessato alla trasformazione, la variabile TU contiene un bit che indica la direzione del movimento. L'assegnazione del bit TU corrisponde al livello asse canale degli assi rotanti. L'informazione TU viene valutata solo per gli assi rotanti possibili (fino a 3) interessati alla trasformazione: Bit0: asse 1, bit TU = 0: 0 gradi <= angolo asse rotante < 360 gradi Bit1: asse 2, bit TU = 1: –360 gradi < angolo asse rotante < 0 gradi La posizione iniziale di un asse rotante è C = 0; tramite la programmazione di C = 270, l'asse rotante si sposta sulla seguente posizione di destinazione: C = 270: bit TU 0, senso di rotazione positivo C = –90: bit TU 1, senso di rotazione negativo

Ulteriore comportamento Cambio del modo operativo La funzione "Movimento PTP cartesiano" è applicabile solo nei modi operativi AUTO e MDA. Nel cambio del modo operativo in JOG viene mantenuta l'impostazione corrente. Se è impostato il codice G PTP, gli assi si posizionano nel sistema di coordinate di macchina. Se è impostato il codice G CP, gli assi si posizionano nel sistema di coordinate del pezzo. Power On/RESET Dopo Power On o dopo RESET l'impostazione dipende dal dato macchina $MC_GCODE_REST_VALUES[48]. L'impostazione standard è il tipo di movimento "CP". REPOS Se durante il blocco di interruzione era impostata la funzione "Movimento PTP cartesiano", anche con PTP viene eseguito il riposizionamento.

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 434 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Movimenti sovrapposti La traslazione DRF o lo spostamento origine esterno sono supportati solo parzialmente nel posizionamento PTP cartesiano. Al passaggio da un movimento PTP ad uno CP non devono verificarsi sovrapposizioni nel sistema di coordinate di base. Movimento raccordato tra CP e PTP Con G641 si può eseguire un raccordo programmabile tra i blocchi. La grandezza dell'area di raccordo è il percorso in mm o in pollici, a partire dal quale o fino al quale deve avvenire il passaggio di blocco. La grandezza deve essere indicata come segue: ● per blocchi G0 con ADISPOS ● per tutti gli altri comandi di movimento con ADIS Il calcolo del percorso equivale a prendere in considerazione gli indirizzi F nei blocchi non G0. L'avanzamento viene mantenuto sugli assi specificati in FGROUP(...). Calcolo dell'avanzamento Per il calcolo dei blocchi CP si utilizzano gli assi cartesiani del sistema di coordinate base. Per i blocchi PTP si utilizzano gli assi corrispondenti del sistema di coordinate di macchina.

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 435

6.9.1 PTP con TRANSMIT

Funzioni Con PTP in TRASMIT si possono eseguire blocchi G0 e G1 ottimizzati come tempo. Invece di muovere linearmente gli assi del sistema di coordinate base (CP) vengono mossi linearmente gli assi macchina (PTP). In questo modo il comportamento degli assi macchina nei pressi del polo consente di raggiungere più rapidamente il punto di fine blocco. Il partprogram viene comunque scritto nel sistema di coordinate cartesiano del pezzo e restano valide tutte le traslazioni di coordinate, rotazioni e programmazioni di frame. La rappresentazione della simulazione su HMI avviene comunque nel sistema di coordinate pezzo cartesiano.

Sintassi N... TRANSMIT N... PTPG0 N... G0 ... ... N... G1 ...

Significato TRANSMIT Attiva la prima funzione TRANSMIT definita

(vedere capitolo "Fresature di pezzi in rotazione: TRANSMIT") PTPG0 Point to Point G0 (movimento punto-punto automatico per ogni blocco in G0

dopodiché nuovamente CP) Siccome STAT e TU sono modali, resta sempra valido l'ultimo valore programmato.

PTP Point to Point; (movimento da punto a punto) Nel caso di TRANSMIT programmare in PTP significa che lo svincolo avviene in cartesiano con spirali di Archimede intorno al polo o dal polo. I movimenti risultanti degli utensili in questo caso sono decisamente diversi da quelli in CP e vengono rappresentati nei relativi esempi di programmazione.

STAT= Risoluzione dell'ambiguità relativa al polo. TU= TU nel caso di PTP con TRANSMIT non è rilevante

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 436 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio di aggiramento del polo con PTP e TRANSMIT

Codice di programma Commento

N001 G0 X30 Z0 F10000 T1 D1 G90 ; Misura assoluta posizione di partenza

N002 SPOS=0

N003 TRANSMIT ; Trasformazione TRANSMIT

N010 PTPG0 ; per ogni blocco G0 automaticamente PTP, quindi di nuovo CP

N020 G0 X30 Y20

N030 X-30 Y-20

N120 G1 X30 Y20

N110 X30 Y0

M30

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 437

Esempio di svincolo dal polo con PTP e TRANSMIT

N070 X20 Y2

10

10

20

20-10-20-30

-10

-20

-30

N060 X0 Y0

N050 X10 Y0

PTP

CP30

30

Programmazione Commento

N001 G0 X90 Z0 F10000 T1 D1 G90 ; Posizione di partenza

N002 SPOS=0

N003 TRANSMIT ; Trasformazione TRANSMIT

N010 PTPG0 ; per ogni blocco G0 automaticamente PTP, quindi di nuovo CP

N020 G0 X90 Y60

N030 X-90 Y-60

N040 X-30 Y-20

N050 X10 Y0

N060 X0 Y0

N070 X-20 Y2

N170 G1 X0 Y0

N160 X10 Y0

N150 X-30 Y-20

M30

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro 438 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione PTP e PTPG0 PTPG0 viene sorvegliato in tutte le trasformazioni che possono gestire il PTP. In tutti gli altri casi PTPG0 non è rilevante. I blocchi G0 vengono eseguiti in modalità CP. La scelta di PTP oppure PTPG0 avviene nel partprogram oppure disattivando CP nel dato macchina $MC_GCODE_RESET_VALUES[48].

CAUTELA Condizioni marginali Nel caso dei movimenti degli utensili e delle collisioni valgono diverse condizioni marginali e determinate esclusioni di funzioni come: con PTP non può essere attivata la correzione raggio utensile (CRU); con PTPG0 ed una correzione raggio utensile attiva (CRU), il movimento avviene in CP; con PTP non è possibile un accostamento/svincolo dolce dal profilo (WAB); con PTPG0 ed un accostamento/svincolo dal profilo, il movimento avviene in CP; con PTP non sono possibili cicli di sgrossatura (CONTPRON, CONTDCON); con PTPG0 nei cicli di sgrossatura (CONTPRON, CONTDCON) il movimento avviene in CP; smussi (CHF, CHR) e raccordi (RND, RNDM) vengono ignorati; il compressore non è consentito con PTP e viene automaticamente disattivato nei blocchi con PTP; non è possibile modificare una sovrapposizione degli assi durante sezioni di programma in PTP; con G643 avviene automaticamente una commutazione in "Movimento continuo con precisione assiale" G642; con PTP attivo gli assi della trasformazione non possono essere contemporaneamente assi di posizionamento. Bibliografia: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazione cinematica (M1), capitolo "Movimento cartesiano PTP"

Trasformazioni 6.9 Movimento cartesiano PTP

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 439

PTP con TRACON: PTP può essere utilizzato anche con TRACON se la prima trasformazione concatenata supporta il PTP. Significato di STAT= e TU= con TRANSMIT Se l'asse rotante deve ruotare di 180 gradi oppure il profilo con CP passa attraverso il polo, gli stessi possono essere comandati in senso orario o antiorario di -/+ 180 gradi in funzione del dato macchina $MC_TRANSMIT_POLE_SIDE_FIX_1/2 [48]. Allo stesso modo si può impostare se il movimento avviene attraverso il polo oppure intorno al polo.

Trasformazioni 6.10 Condizioni marginali per l’attivazione di una trasformazione

Preparazione del lavoro 440 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.10 6.10 Condizioni marginali per l’attivazione di una trasformazione

Funzione La selezione delle trasformazioni è possibile tramite partprogram oppure MDA. Attenzione: ● Non venga inserito un blocco di movimento intermedio (smussi/raccordi). ● Una sequenza di blocchi Spline sia conclusa; in caso contrario viene emessa una

segnalazione. ● La correzione utensile fine sia disattivata (FTOCOF); in caso contrario viene emessa una

segnalazione. ● La correzione raggio utensile sia disattivata (G40); in caso contrario viene emessa una

segnalazione. ● Un correzione della lunghezza utensile viene assunta dal controllo nella trasformazione. ● Il Frame attivo prima della trasformazione viene disattivato dal controllo. ● Una limitazione del campo di lavoro per gli assi coinvolti nella trasformazione, viene

disattivata dal controllo (corrisponde a WALIMOF). ● La sorveglianza del settore di protezione viene disattivata. ● Il funzionamento continuo e la raccordatura vengono interrotti. ● Tutti gli assi impostati nel dato macchina, devono essere sincronizzati riferiti al blocco. ● Gli assi scambiati devono essere riportati nella condizione originale; in caso contrario

viene emessa una segnalazione. ● Per gli assi dipendenti viene emessa una segnalazione. Cambio dell'utensile Il cambio utensile è possibile solo con la correzione raggio utensile disattivata. Una commutazione della correzione lunghezza utensile e una attivazione/disattivazione della correzione raggio utensile non possono essere programmati nello stesso blocco.

Trasformazioni 6.10 Condizioni marginali per l’attivazione di una trasformazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 441

Cambio di frame Sono consentite tutte le istruzioni che si riferiscono solo al sistema di coordinate base, (FRAME, correzione raggio utensile). Una commutazione del Frame con G91 (quote incrementali), a differenza del caso con trasformazione non attiva, non viene gestito in modo particolare. L’incremento da eseguire viene considerato nel sistema di coordinate pezzo del nuovo Frame, indipendentemente da quale Frame era attivo nel blocco precedente. Esclusioni Gli assi coinvolti nella trasformazione non possono essere utilizzati: ● come assi di preset (allarme), ● per il movimento su riscontro fisso (allarme), ● per la ricerca del punto di riferimento (allarme).

Trasformazioni 6.11 Disattivazione della trasformazione (TRAFOOF)

Preparazione del lavoro 442 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

6.11 6.11 Disattivazione della trasformazione (TRAFOOF)

Funzione Con l’istruzione TRAFOOFvengono disattivate tutte le trasformazioni e tutti i frame attivi.

Nota I Frame necessari successivamente, devono essere riattivati con una nuova programmazione. Attenzione: per la disattivazione della trasformazione valgono le stesse condizioni marginali valide per l'attivazione (vedere il capitolo ("Condizioni marginali per l'attivazione di una trasformazione")

Sintassi TRAFOOF

Significato TRAFOOF Comando per la disattivazione di tutte le trasformazioni e di tutti i frame attivi

Trasformazioni 6.12 Trasformazioni concatenate (TRACON, TRAFOOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 443

6.12 6.12 Trasformazioni concatenate (TRACON, TRAFOOF)

Funzione Si possono attivare fino a due trasformazioni in successione (concatenate) cosicchè le quote di movimento per gli assi della prima trasformazione diventano i dati di ingresso per la seconda trasformazione concatenata. Le quote di movimento della seconda trasformazione hanno effetto sugli assi macchina. Il concatenamento può comprendere fino a due trasformazioni.

Nota Un utensile viene sempre abbinato alla prima trasformazione di un concatenamento. La trasformazione successiva si comporta quindi come se la lunghezza dell'utensile fosse uguale a zero. Per la prima trasformazione di un concatenamento sono attive solo le lunghezze base di un utensile impostate nei dati macchina (BASE_TOOL_).

Costruttore della macchina Osservare le indicazioni del costruttore della macchina, per le eventuali trasformazioni predefinite nei dati macchina. Le trasformazioni e le trasformazioni concatenate sono opzioni. Sulla disponibilità di determinate trasformazioni concatenate in certi controlli, osservare le indicazioni del catalogo attuale. Applicazioni ● Rettifica di profili per i quali come linea superficiale è stato programmato uno sviluppo del

cilindro (TRACYL) con una mola inclinata, ad es. rettifica di utensili. ● Lavorazione fine di un profilo non tondo con mola inclinata realizzato con TRANSMIT.

Trasformazioni 6.12 Trasformazioni concatenate (TRACON, TRAFOOF)

Preparazione del lavoro 444 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi TRACON(trf,par) Attivazione di una trasformazione concatenata. TRAFOOF

Significato TRACON Attivazione della trasformazione concatenata. Una trasformazione

precedentemente attiva, con TRACON() viene implicitamente disattivata. TRAFOOF L'utlima trasformazione attivata (concatenata) viene disattivata. trf Numero della trasformazione concatenata:

0 oppure 1 per la prima/unica trasformazione concatenata. Se in questa posizione non viene programmato nulla, si ha lo stesso significato dell'introduzione del valore 0 oppure 1, cioè viene attivata la prima/unica trasformazione concatenata. 2 per la seconda trasformazione concatenata (valori diversi da 0 ... 2 provocano una segnalazione di allarme).

par Uno o più parametri separati da una virgola per le trasformazioni concatenate, che si aspettano un parametro, ad es. angolo dell'asse inclinato. Se non viene settato alcun parametro, vengono utilizzate le preimpostazioni oppure gli ultimi parametri utilizzati. Utilizzando le virgole, è necessario prestare attenzione che i parametri indicati vengano interpretati nella sequenza impostata, quando per i parametri precedenti devono essere valide le preimpostazioni. In particolare, prima della dichiarazione deve essere inserito almeno un parametro anche quando la dichiarazione di trf non è necessaria, ad esempio TRACON( , 3,.7).

Trasformazioni 6.12 Trasformazioni concatenate (TRACON, TRAFOOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 445

Premessa La seconda trasformazione deve essere del tipo "Asse inclinato" (TRAANG). Come prima trasformazione sono possibili: ● Trasformazioni di orientamento (TRAORI), compresa la testina di fresatura cardanica

● TRANSMIT

● TRACYL

● TRAANG Per l’utilizzo delle istruzioni di attivazione di una trasformazione concatenata, è necessario che le singole trasformazioni da concatenare e la trasformazione concatenata da attivare, siano definite tramite dati macchina. Le condizioni marginali ed i casi speciali riportati nelle singole descrizioni delle trasformazioni, devono essere rispettate anche nel caso di utilizzo in un concatenamento. Per ulteriori informazioni sulla progettazione dei dati macchina delle trasformazioni, consultare: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Trasformazioni cinematiche (M1), e /FB3/ Manuale delle funzioni speciali; Trasformazioni a 3 ... 5 assi (F2).

Trasformazioni 6.12 Trasformazioni concatenate (TRACON, TRAFOOF)

Preparazione del lavoro 446 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 447

Correzioni utensile 77.1 7.1 Memoria di correzione

Funzioni Struttura della memoria di correzione Ogni campo di dati può essere richiamato con un numero T e D (eccetto i "numeri D piani") e contiene per l'utensile, oltre ai dati geometrici, anche altre informazioni, per es. il tipo di utensile. Struttura piatta dei numeri D La "struttura piatta dei numeri D" viene utilizzata quando la gestione utensili avviene al di fuori dell'NCK. In questo caso i numeri D vengono creati con i relativi blocchi di correzione utensile senza assegnazione a utensili. Nel partprogram si può continuare a programmare T. Questo valore T non ha tuttavia alcun riferimento al numero D programmato. Dati utente dei taglienti Con un dato macchina è possibile configurare i dati utente dei taglienti. Prestare attenzione alle indicazioni del costruttore della macchina.

Parametri utensile

Nota Singoli valori nella memoria di correzione I singoli valori della memoria di correzione (P1 ... P25) possono essere letti e scritti dal programma mediante variabili di sistema. Tutti i restanti parametri sono riservati. I parametri utensile $TC_DP6 ... $TC_DP8, $TC_DP10 e $TC_DP11 nonché $TC_DP15 ... $TC_DP17, $TC_DP19 e $TC_DP20 hanno un significato diverso a seconda del tipo di utensile. 1Vale anche con utensili per la fresatura frontale 3D. 2Per tipo di utensile sega per scanalare. 3Riservato: Non utilizzato da SINUMERIK 840D

Correzioni utensile 7.1 Memoria di correzione

Preparazione del lavoro 448 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Numero parametro utensile (DP)

Significato delle variabili di sistema Osservazioni

$TC_DP1 Tipo di utensile Panoramica: vedere lista $TC_DP2 Posizione di taglio Solo per utensili da tornio Geometria Correzione lunghezza $TC_DP3 Lunghezza 1 Calcolo $TC_DP4 Lunghezza 2 Tipo e livello $TC_DP5 Lunghezza 3 Geometria Raggio $TC_DP61 $TC_DP62

Raggio 1/lunghezza 1 diametro d

Ut. per fresatura/tornio/rettifica Sega per scanalare

$TC_DP61 $TC_DP62

Lunghezza 2/raggio agli spigoli frese coniche larghezza della cava b raggio agli spigoli

Utensili per fresatura sega per scanalare

$TC_DP81 $TC_DP82

Raggio di arrotondamento 1 per utensili per fresatura sporgenza k

Utensili per fresatura sega per scanalare

$TC_DP91,3 Raggio di arrotondamento 2 riservato $TC_DP101 Angolo 1 superficie frontale dell'utensile Utensili conici per fresatura $TC_DP111 Angolo 2 asse longitudinale utensile Utensili conici per fresatura Usura Correzione della lunghezza e del raggio $TC_DP12 Lunghezza 1 $TC_DP13 Lunghezza 2 $TC_DP14 Lunghezza 3 $TC_DP151 $TC_DP152

Raggio 1/lunghezza 1 diametro d

Ut. per fresatura/tornio/rettifica sega per scanalare

$TC_DP161 $TC_DP163

Lunghezza 2/raggio agli spigoli frese coniche, larghezza della cava b raggio agli spigoli

Utensili per fresatura sega per scanalare

$TC_DP171

$TC_DP172 Raggio di arrotondamento 1 per utensili per fresatura sporgenza k

Fresatura/3D fresatura frontale 3D sega per scanalare

$TC_DP181,3 Raggio di arrotondamento 2 Riservato $TC_DP191 Angolo 1 superficie frontale dell'utensile Utensili conici per fresatura $TC_DP201 Angolo 2 asse longitudinale utensile Utensili conici per fresatura Quota base/adattat. Correzioni di lunghezza $TC_DP21 Lunghezza 1 $TC_DP22 Lunghezza 2 $TC_DP23 Lunghezza 3 Tecnologia $TC_DP24 Angolo libero Solo per utensili da tornio $TC_DP25 Riservato

Correzioni utensile 7.1 Memoria di correzione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 449

Note Per le dimensioni geometriche (ad es. lunghezza 1 oppure raggio) sono previsti più componenti da impostare. Essi vengono poi sommati in modo additivo ottenendo un'unica grandezza risultante (ad es. lunghezza totale 1, raggio totale). Le correzioni non necessarie devono essere preimpostate a zero.

Parametri utensile da $TC-DP1 a $TC-DP23 con utensili di contornitura

Nota I parametri utensile non riportati nella tabella, come ad es. $TC_DP7, non vengono valutati, ossia il loro contenuto non è significativo.

Numero parametro utensile (DP)

Significato Taglio Dn Osservazioni

$TC_DP1 Tipo di utensile da 400 a 599 $TC_DP2 Posizione di taglio Geometria Correzione lunghezza $TC_DP3 Lunghezza 1 $TC_DP4 Lunghezza 2 $TC_DP5 Lunghezza 3 Geometria Raggio $TC_DP6 Raggio Geometria Angolo limite $TC_DP10 Angolo limite minimo $TC_DP11 Angolo limite massimo Usura Correzione della lunghezza e del

raggio

$TC_DP12 Usura lunghezza 1 $TC_DP13 Usura lunghezza 2 $TC_DP14 Usura lunghezza 3 $TC_DP15 Raggio di usura Usura Angolo limite $TC_DP19 Usura, angolo limite minimo $TC_DP20 Usura, angolo limite massimo Quota base/adattat. Correzioni di lunghezza $TC_DP21 Lunghezza 1 $TC_DP22 Lunghezza 2 $TC_DP23 Lunghezza 3

Correzioni utensile 7.1 Memoria di correzione

Preparazione del lavoro 450 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Valore base e valore di usura Le grandezze risultanti sono di volta in volta la somma tra valore base e valore di usura (ad es. $TC_DP6 + $TC_DP15 per il raggio). Alla lunghezza utensile del primo taglio viene aggiunta la quota base ($TC_DP21 – $TC_DP23). Inoltre, su questa lunghezza utensile agiscono tutte le altre grandezze capaci di influenzare la lunghezza utensile effettiva anche nel caso di un utensile tradizionale (adattatore, portautensile orientabile, dati setting). Angoli limite 1 e 2 Gli angoli limite 1 e 2 si riferiscono al vettore dal centro di taglio al punto di riferimento di taglio e vengono numerati in senso antiorario.

Correzioni utensile 7.2 Correzioni addizionali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 451

7.2 7.2 Correzioni addizionali

7.2.1 Selezione di correzioni addizionali (DL)

Funzione Le correzioni addizionali possono essere considerate come correzioni di processo programmabili nell'elaborazione. Si riferiscono ai dati di un tagliente e fanno quindi parte dei dati del tagliente dell'utensile. I dati di una correzione addizionale vengono richiamati mediante un numero DL (DL: Location dependent; correzioni riferite al luogo di impiego) e immessi tramite la superficie operativa.

Applicazioni Attraverso correzioni addizionali possono essere compensati errori di quota dipendenti dal luogo di impiego.

Sintassi DL=<Numero>

Significato DL Comando per l'attivazione di una correzione addizionale <Numero> Attraverso il parametro <Numero> viene immesso il blocco dati di

correzione utensile addizionale da attivare.

Nota La determinazione del numero e dell'attivazione delle correzioni addizionali avviene mediante dati macchina (→ Prestare attenzione alle indicazioni del costruttore della macchina!).

Correzioni utensile 7.2 Correzioni addizionali

Preparazione del lavoro 452 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Lo stesso tagliente viene utilizzato per 2 sedi di cuscinetto:

Codice di programma Commento

N110 T7 D7 ; La torretta viene posizionata sul posto 7. D7 e DL=1 vengono attivati ed eseguiti nel blocco successivo.

N120 G0 X10 Z1

N130 G1 Z-6

N140 G0 DL=2 Z-14 ; Oltre a D7 viene attivato DL=2 ed eseguito nel blocco successivo.

N150 G1 Z-21

N160 G0 X200 Z200 ; Accostarsi al punto di cambio utensile.

...

Correzioni utensile 7.2 Correzioni addizionali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 453

7.2.2 Definizione dei valori di usura e di messa a punto ($TC_SCPxy[t,d], $TC_ECPxy[t,d])

Funzione I valori di usura e di messa a punto possono essere letti e scritti tramite variabili di sistema. La logica si basa sulla logica delle corrispondenti variabili di sistema per utensili e taglienti.

Variabili di sistema Variabile di sistema Significato $TC_SCPxy[<t>,<d>] Valori di usura assegnati tramite xy al rispettivo parametro

geometrico; x corrisponde al numero del valore di usura e y crea il riferimento al parametro geometrico.

$TC_ECPxy[<t>,<d>] Valori di messa a punto assegnati tramite xy al rispettivo parametro geometrico; x corrisponde al numero del valore di messa a punto e y crea il riferimento al parametro geometrico.

<t>: Numero T dell'utensile <d>: Numero D del tagliente dell'utensile

Nota I valori di usura e di messa a punto fissati vengono sommati ai parametri geometrici ed ai restanti parametri di correzione (numeri D).

Esempio Il valore di usura della lunghezza 1 viene definito per il tagliente <d> dell'utensile <t> sul valore 1.0. Parametri: $TC_DP3 (lunghezza 1, per utensili di tornitura) Valori di usura: $TC_SCP13 fino a $TC_SCP63 Valori di messa a punto: $TC_ECP13 fino a $TC_ECP63 $TC_SCP43 [<t>,<d>] = 1.0

Correzioni utensile 7.2 Correzioni addizionali

Preparazione del lavoro 454 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.2.3 Cancellazione delle correzioni supplementari (DELDL)

Funzione Con il comando DELDL vengono cancellate correzioni addizionali per il tagliente di un utensile (abilitazione di memoria). Vengono cancellati sia i valori di usura fissi sia i valori di messa a punto.

Sintassi DELDL[<t>,<d>] DELDL[<t>] DELDL <Stato>=DELDL[<t>,<d>]

Significato DELDL Comando per la cancellazione delle correzioni addizionali <t> Numero T dell'utensile <d> Numero D del tagliente dell'utensile DELDL[<t>,<d>] Vengono cancellate tutte le correzioni addizionali del tagliente <d>

dell'utensile <t>. DELDL[<t>] Vengono cancellate tutte le correzioni addizionali di tutti i taglienti

dell'utensile <t>. DELDL Vengono cancellate tutte le correzioni addizionali di tutti i taglienti di

tutti gli utensili dell'unità TO (per il canale in cui viene programmato il comando). Stato di cancellazione Valore: Significato: 0 la cancellazione è stata eseguita con successo.

<Stato>

- la cancellazione non è stata eseguita (se la parametrizzazione descrive esattamente un tagliente) oppure la cancellazione non è avvenuta per intero (se la parametrizzazione descrive più taglienti).

Nota I valori di usura e di messa a punto di utensili attivi non possono essere cancellati (comportamento analogo alla cancellazione di correzioni D o di dati utensile).

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 455

7.3 7.3 Correzione utensile - casi speciali

Funzione Con i dati di setting da SD42900 a SD42960 e possibile controllare la valutazione dei segni algebrici per la lunghezza dell'utensile e l'usura. Questo vale anche per il comportamento dei componenti soggetti ad usura nella specularità di assi geometrici, nel cambio del piano di lavorazione e per la compensazione della temperatura in direzione dell'utensile.

Valori di usura Quando in seguito si fa riferimento ai valori di usura, si intende sempre la somma dei valori di usura effettivi (da $TC_DP12 a $TC_DP20) e delle correzioni di somma con i valori di usura (da $SCPX3 a $SCPX11) e con i valori di messa a punto (da $ECPX3 a $ECPX11). Per ulteriori informazioni sulle correzioni di somma vedere: Bibliografia: Manuale di guida alle funzioni, Gestione utensili

Dati di setting Dato di setting Significato SD42900 $SC_MIRROR_TOOL_LENGTH Specularità di componenti della lunghezza

utensile e componenti della quota base. SD42910 $SC_MIRROR_TOOL_WEAR Specularità di valori di usura dei componenti

della lunghezza utensile. SD42920 $SC_WEAR_SIGN_CUTPOS Valutazione del segno algebrico dei componenti

dell'usura in funzione della posizione del tagliente.

SD42930 $SC_WEAR_SIGN Inverte i segni delle quote di usura. SD42935 $SC_WEAR_TRANSFORM Trasformazione dei valori di usura. SD42940 $SC_TOOL_LENGTH_CONST Assegnazione dei componenti della lunghezza

utensile agli assi geometrici. SD42950 $SC_TOOL_LENGTH_TYPE Assegnazione dei componenti della lunghezza

utensile indipendentemente dal tipo di utensile. SD42960 $SC_TOOL_TEMP_COMP Valore di compensazione della temperatura in

direzione dell'utensile. È attivo anche quando è presente un orientamento dell’utensile.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro 456 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Bibliografia Manuale di guida alle funzioni, Funzioni di base; Correzione utensile (W1)

Ulteriori informazioni Attivazione dei dati di setting modificati In caso di variazione dei dati di setting descritti, i nuovi valori dei componenti utensili diventano attivi non appena viene selezionato tagliente. Se è già attivo un utensile e occorre rendere attivi nuovi valori modificati dei dati di questo utensile, è necessario prima selezionare nuovamente l'utensile. Altrettanto vale per il caso in cui la lunghezza utensile risultante vari in seguito alla modifica dello stato di specularità di un asse. Per rendere attivi i componenti della lunghezza utensile modificati, l'utensile deve essere riselezionato dopo il comando di specularità. Portautensili orientabili e nuovi dati di setting I dati di setting da SD42900 a SD42940 non agiscono sui componenti di un portautensili orientabile eventualmente attivo. Un utensile viene comunque sempre considerato con la sua lunghezza risultante totale (lunghezza utensile + usura + quota base) nel calcolo con un portautensili orientabile. Nel calcolo della lunghezza totale risultante vengono tenute in considerazione tutte le modifiche provocate dai dati operatore. Ciò significa che i vettori del portautensili orientabile sono indipendenti dal piano di lavorazione.

Nota Spesso, quando si utilizza un portautensili orientabile, è opportuno definire tutti gli utensili per un sistema di base non speculato, anche gli utensili che vengono usati solo per la lavorazione speculare. Nella lavorazione con assi speculati, il portautensili viene ruotato in modo che la posizione effettiva dell'utensile venga descritta correttamente. Tutti i componenti della lunghezza utensile hanno quindi automaticamente effetto nella direzione corretta, per cui non è necessario controllare la valutazione di singoli componenti mediante dati setting in funzione dello stato di specularità di singoli assi.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 457

Altri casi applicativi Può essere comodo utilizzare la funzionalità del portautensili orientabile se sulla macchina non è prevista fisicamente alcuna possibilità di ruotare gli utensili, ma questi ultimi sono installati in modo fisso con diversi orientamenti. La quotazione dell'utensile può essere effettuata in maniera uniforme in base ad un orientamento di base, mentre le quote rilevanti ai fini della lavorazione si ottengono tramite le rotazioni di un portautensili virtuale.

7.3.1 Specularità delle lunghezze utensili

Funzione Con i dati di setting impostati SD42900 $SC_MIRROR_TOOL_LENGTH e SD42910 $SC_MIRROR_TOOL_WEAR diversi da zero, si può effettuare la specularità dei componenti della lunghezza utensile e dei componenti delle quote base con valori di usura degli assi relativi.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro 458 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

SD42900 $SC_MIRROR_TOOL_LENGTH Dato di setting diverso da zero: Vengono speculati anche i componenti della lunghezza utensile ($TC_DP3, $TC_DP4 e $TC_DP5) e i componenti delle quote base ($TC_DP21, $TC_DP22 e $TC_DP23), i cui assi sono speculati, mediante inversione del segno. I valori di usura non vengono speculati. Se questi valori devono essere speculati, è necessario impostare il dato di setting SD42910 $SC_MIRROR_TOOL_WEAR. SD42910 $SC_MIRROR_TOOL_WEAR Dato di setting diverso da zero: Vengono speculati i valori di usura dei componenti della lunghezza utensile, i cui assi sono speculati, mediante inversione del segno.

7.3.2 Valutazione dei segni dei componenti di usura

Funzione Se i dati di setting SD42920 $SC_WEAR_SIGN_CUTPOS e SD42930 $SC_WEAR_SIGN sono impostati con valore diverso da zero, la valutazione del segno algebrico dei componenti di usura può essere invertita. SD42920 $SC_WEAR_SIGN_CUTPOS Dato di setting diverso da zero: Per gli utensili con posizione del tagliente rilevante (utensili di tornitura e di rettifica – tipi di utensili 400), la valutazione del segno algebrico dei componenti di usura nel piano di lavorazione dipende dalla posizione del tagliente. Per i tipi di utensili senza posizione del tagliente rilevante questo dato setting non ha rilevanza.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 459

Nella tabella seguente le quote sono contrassegnate con una X, il cui segno viene invertito mediante il dato di setting SD42920 (diverso da 0): Posizione di taglio Lunghezza 1 Lunghezza 2 1 2 X 3 X X 4 X 5 6 7 X 8 X 9

Nota Le valutazioni dei segni algebrici tramite SD42920 e SD42910 sono dipendenti l'una dall'altra. Se per esempio il segno di una quota viene modificato mediante i due dati operatore, il segno algebrico risultante resta invariato.

SD42930 $SC_WEAR_SIGN Dato di setting diverso da zero: Il segno di tutte le quote di usura viene invertito. Ciò ha effetto sia sulla lunghezza dell'utensile, sia su tutte le altre grandezze quali il raggio dell'utensile, il raggio di raccordo ecc. Se viene immessa una quota d'usura positiva, l'utensile diventa "più corto" e "più sottile", vedi capitolo "Correzione utensile, Casi speciali", "Attivazione dei dati di setting modificati".

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro 460 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.3.3 Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS)

Funzione A seconda della cinematica della macchina o della presenza o meno di un portautensili orientabile, i valori di usura misurati in un determinato sistema di coordinate vengono trasposti o trasformati nel sistema di coordinate appropriato. Sistemi di coordinate della lavorazione attiva Dai seguenti sistemi di coordinate possono sorgere offset della lunghezza utensile che includono la componente della lunghezza utensile usura tramite il rispettivo codice G del gruppo 56 in un utensile attivo. ● Sistema di coordinate macchina (SCM) ● Sistema di coordinate base (SCB) ● Sistema di coordinate pezzo (SCP) ● Sistema di coordinate utensile (TCS) ● Sistema di coordinate utensile della trasformazione cinematica (KCS)

Sintassi TOWSTD TOWMCS TOWWCS TOWBCS TOWTCS TOWKCS

Significato TOWSTD Valore di posizione base per le correzioni della lunghezza utensile e del

valore di usura TOWMCS Correzioni della lunghezza utensile nel SCM TOWWCS Correzioni della lunghezza utensile nel SCP TOWBCS Correzioni della lunghezza utensile nel SCB TOWTCS Correzione della lunghezza utensile sul punto di riferimento del

portautensili (portautensili orientabile) TOWKCS Correzione della lunghezza utensile della testa dell’utensile

(trasformazione cinematica)

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 461

Ulteriori informazioni Caratteristiche Nella seguente tabella sono elencati i più importanti criteri di distinzione: Codice G Valore di usura Portautensili attivo orientabile TOWSTD Valore della posizione di base;

lunghezza dell’utensile I valori di usura sono soggetti alla rotazione.

TOWMCS Valore di usura nel SCM. TOWMCS è identico a TOWSTD se non è attivo alcun portautensili orientabile.

Ruota soltanto il vettore della lunghezza utensile risultante senza considerazione dell'usura.

TOWWCS Nel SCP il valore di usura viene convertito al SCM.

Il vettore dell'utensile viene calcolato senza tener conto dell'usura come nel TOWMCS.

TOWBCS Nel SCB il valore di usura viene convertito al SCM.

Il vettore dell'utensile viene calcolato senza tener conto dell'usura come nel TOWMCS.

TOWTCS Nel sistema di coordinate utensile il valore di usura viene convertito al SCM.

Il vettore dell'utensile viene calcolato senza tener conto dell'usura come nel TOWMCS.

TOWWCS, TOWBCS, TOWTCS: Il vettore di usura viene sommato al vettore dell’utensile. Trasformazione lineare La lunghezza dell’utensile nel SCM può essere definita in modo sensato soltanto se il SCM risulta dal SCB mediante una trasformazione lineare. Trasformazione non lineare Se, ad es. con TRANSMIT, è attiva una trasformazione non lineare, e se si indica il SCM come sistema di coordinate desiderato, viene utilizzato automaticamente il SCB.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro 462 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nessuna trasformazione cinematica e nessun portautensili orientabile Se non è attiva né una trasformazione cinematica né un portautensili orientabile, tutti e quattro i sistemi di coordinate, fuorché SCP, coincidono. Quindi solo il SCP si differenzia dagli altri. Dato che devono essere valutate solo le lunghezze utensili, le traslazioni tra i sistemi di coordinate non hanno alcun significato. Bibliografia: Per ulteriori informazioni sulla correzione utensile vedere: Manuale di guida alle funzioni, Funzioni di base; Correzione utensile (W1) Inclusione dei valori di usura Il dato di setting SD42935 $SC_WEAR_TRANSFORM definisce quale delle tre componenti di usura: ● usura ● correzioni cumulative fini ● correzioni cumulative grossolane di una rotazione sarà soggetto ad una trasformazione di adattamento o a un portautensili orientabile quando è attivo uno dei seguenti codici G: ● TOWSTD Posizione base

per le correzioni della lunghezza utensile ● TOWMCS Valori di usura

nel sistema di coordinate macchina (SCM) ● TOWWCS Valori di usura

nel sistema di coordinate pezzo (SCP) ● TOWBCS Valori di usura (SCB)

nel sistema di coordinate di base ● TOWTCS Valori di usura nel sistema di coordinate utensile sul portautensili (riferimento

portautensili T) ● TOWKCS Valori di usura nel sistema di coordinate della testa dell'utensile in caso di

trasformazione cinematica

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 463

Nota Nella valutazione delle singole componenti di usura (assegnazione agli assi geometrici, valutazione dei segni algebrici) influiscono: • il piano attivo • la trasformazione di adattamento • i seguenti dati di setting:

– SD42910 $SC_MIRROW_TOOL_WEAR – SD42920 $SC_WEAR_SIGN_CUTPOS – SD42930 $SC_WEAR_SIGN – SD42940 $SC_TOOL_LENGTH_CONST – SD42950 $SC_TOOL_LENGTH_TYPE

7.3.4 Lunghezza utensile e cambio del piano

Funzione Se il dato di setting SD42940 $SC_TOOL_LENGTH_CONST è stato impostato diverso da zero, per gli utensili di tornitura e rettifica i componenti della lunghezza utensile quali la lunghezza, l'usura e le quote base possono essere assegnati, in caso di cambio del piano di lavorazione, agli assi geometrici. SD42940 $SC_TOOL_LENGTH_CONST Dato di setting diverso da zero: L'assegnazione dei componenti della lunghezza utensile (lunghezza, usura e quota base) agli assi geometrici nel cambio del piano di lavorazione (G17 - G19) non viene modificata. La tabella seguente mostra l'assegnazione dei componenti della lunghezza utensile agli assi geometrici per gli utensili di tornitura e di rettifica (tipi utensile da 400 a 599): Contenuto Lunghezza 1 Lunghezza 2 Lunghezza 3 17 Y X Z *) X Z Y 19 Z Y X -17 X Y Z -18 Z X Y -19 Y Z X

*) Ogni valore diverso da 0, che non sia uguale a uno dei sei valori indicati, viene valutato come il valore 18.

Correzioni utensile 7.3 Correzione utensile - casi speciali

Preparazione del lavoro 464 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La tabella seguente mostra l'assegnazione dei componenti della lunghezza utensile agli assi geometrici per tutti gli altri utensili (tipi utensile < 400 o rispettivamente > 599): Piano di lavorazione Lunghezza 1 Lunghezza 2 Lunghezza 3 *) Z Y X 18 Y X Z 19 X Z Y -17 Z X Y -18 Y Z X -19 X Y Z

*) Ogni valore diverso da 0, che non sia uguale a uno dei sei valori indicati, viene valutato come il valore 17.

Nota Nella rappresentazione nelle tabelle si parte dal presupposto che gli assi geometrici fino all'asse 3 vengano definiti con X, Y, Z. Per l'assegnazione di una correzione ad un asse non è determinante l'identificatore dell'asse, quanto piuttosto la sequenza degli assi.

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 465

7.4 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Funzione Con la funzione attiva "Correzione utensile online" una correzione della lunghezza utensile derivante dalla lavorazione viene calcolata immediatamente per gli utensili di rettifica. Un esempio applicativo è rappresentato dalla diamantatura CD in cui la mola viene diamantata parallelamente alla lavorazione:

La correzione lunghezza utensile può essere modificata dal canale di lavorazione o da un canale parallelo (canale di diamantatura).

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro 466 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Per la scrittura della correzione utensile online vengono utilizzate diverse funzioni a seconda del momento in cui avviene la diamantatura: ● Scrittura continua blocco-blocco (PUTFTOCF)

Con PUTFTOCF la diamantatura avviene contemporaneamente alla lavorazione. La correzione utensile viene variata continuamente nel canale di lavoro secondo una funzione polinomiale di 1°, 2° o 3° grado che deve essere definita in precedenza con FCTDEF.

PUTFTOCF agisce sempre blocco per blocco, cioè nel blocco di movimento successivo. ● Scrittura continua modale: ID=1 DO FTOC (vedere "Correzione utensile on-line (FTOC)

(Pagina 680)") ● Scrittura discreta (PUTFTOC)

Con PUTFTOC la diamantatura avviene non contemporaneamente alla lavorazione da un canale parallelo. Il valore di correzione specificato con PUTFTOC diventa attivo immediatamente nel canale di destinazione.

Nota La correzione utensile on-line può essere utilizzata solo per utensili di rettificatura.

Sintassi Attivazione/disattivazione della correzione utensile online nel canale di destinazione: FTOCON

...

FTOCOF

Scrittura discreta della CUT online: ● continua blocco-blocco: FCTDEF(<funzione>,<LLimit>,<ULimit>,<a0>,<a1>,<a2>,<a3>)

PUTFTOCF(<funzione>,<valore di riferimento>,<parametro UT>,<canale>,<mandrino>)

...

● discreta: PUTFTOC(<valore correzione>,<parametro UT>,<canale>,<mandrino>)

...

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 467

Significato FTOCON: Attivazione della CUT online

FTOCON deve essere programmato nel canale in cui deve essere attivata la correzione utensile online.

FTOCOF: Interruzione della CUT online Con FTOCOF la correzione non viene eseguita: nei dati di correzione specifici per il taglio, l'intero valore scritto con PUTFTOC viene tuttavia corretto. Nota: Per disattivare definitivamente la CUT online, occorre che dopo FTOCOF avvenga ancora una selezione/deselezione dell'utensile (T...). Con FCTDEF viene definita la funzione polinomiale per PUTFTOCF. Parametri:

Numero della funzione polinomiale <funzione>: Tipo: INT valore limite inferiore <LLimit>: Tipo: REAL valore limite superiore <ULimit>: Tipo: REAL Coefficienti della funzione polinomiale

FCTDEF:

<a0> ... <a3>: Tipo: REAL

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro 468 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Richiamo della funzione "Scrittura CUT online continua blocco-blocco" Parametri:

Numero della funzione polinomiale Tipo: INT

<funzione>:

Nota: Deve coincidere con il dato immesso per FCTDEF. Valore di riferimento variabile da cui viene ricavata la correzione (ad es. variazione del valore reale).

<valore di riferimento>:

Tipo: VAR REAL Numero del parametro di usura (lunghezza 1, 2 o 3) al quale va aggiunto il valore di correzione.

<Parametro UT>:

Tipo: INT Numero del canale nel quale deve essere attivata la correzione utensile online. Tipo: INT

<canale>:

Nota: Occorre immettere un dato solo se la correzione non deve essere attivata nel canale attivo. Numero del mandrino nel quale deve essere attivata la correzione utensile online. Tipo: INT

PUTFTOCF:

<mandrino>:

Nota: Occorre immettere un dato solo se l'utensile da correggere non è quello attivo attualmente in uso ma una mola non attiva.

Richiamo della funzione "Scrittura CUT online discreta" Parametri:

Valore di correzione che deve essere aggiunto al parametro di usura.

<valore_ correzione>:

Tipo: REAL <parametro_UT>: vedere PUTFTOCF

Numero del canale nel quale deve essere attivata la correzione utensile online.

<canale>:

Tipo: INT

PUTFTOC:

<mandrino>: vedere PUTFTOCF

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 469

Esempio Rettificatrice per superfici piane con: ● Y: asse di incremento per la mola ● V: asse di incremento per il rullo diamantatore ● Canale di lavorazione: canale 1 con gli assi X, Z, Y ● Canale di diamantatura: canale 2 con l'asse V Dopo l'inizio della passata di rettificatura, su X100 la mola deve essere diamantata di 0,05. Il valore di diamantatura deve essere attivato per l'utensile di rettifica con "Scrittura CUT online continua".

Programma di lavorazione nel canale 1: Codice di programma Commento

N110 G1 G18 F10 G90 ; Posizione base.

N120 T1 D1 ; Selezione dell'utensile attuale.

N130 S100 M3 X100 ; Mandrino on, Raggiungimento della posizione iniziale.

N140 INIT(2,"ABRICHT","S") ; Selezione del programma di diamantatura nel canale 2.

N150 START(2) ; Avvio del programma di diamantatura nel canale 2.

N160 X200 ; Raggiungimento della posizione finale.

N170 FTOCON ; Attivazione della correzione online.

N… G1 X100 ; Ulteriore elaborazione.

N… M30

Correzioni utensile 7.4 Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF)

Preparazione del lavoro 470 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programma di diamantatura nel canale 2: Codice di programma Commento

N40 FCTDEF(1,–1000,1000,–$AA_IW[V],1) ; Definizione della funzione: Retta con incremento=1.

N50 PUTFTOCF(1,$AA_IW[V],3,1) ; Scrittura online correzione utensile in modo continuo: derivata dal movimento dell'asse V, la lunghezza 3 della mola attuale viene corretta nel canale 1.

N60 V–0.05 G1 F0.01 G91 ; Movimento di incremento per la diamantatura, PUTFTOCF è attivo solo in questo blocco.

N… M30

Ulteriori informazioni Informazioni generali sulla CUT (correz. utensile) on-line Nella scrittura continua (per ogni clock IPO), dopo l'attivazione della funzione di valutazione ogni modifica viene memorizzata in modo additivo nella memoria di usura (allo scopo di evitare salti del valori di riferimento). In ogni caso vale: la CUT on-line può avere effetto su ogni canale, per ogni mandrino e per la lunghezza 1, 2 oppure 3 dei parametri di usura. L'abbinamento delle lunghezze agli assi geometrici avviene in funzione del piano di lavoro attuale. L'abbinamento del mandrino all'utensile avviene tramite i dati utensile con GWPSON o TMON, a meno che non si tratti della mola attuale. La correzione avviene sempre nel parametro di usura per il fianco attuale oppure per il fianco sinistro della mola nel caso di utensili non attivi.

Nota Se la correzione è identica per più lati della mola, bisogna fare in modo, rispettando le norme relative al concatenamento, che i valori vengano assegnati automaticamente anche al secondo lato della mola. Se vengono preimpostate delle correzioni online per un canale di lavorazione, i valori di usura per l'utensile attuale di questo canale non possono essere variati a partire dal programma di lavoro o attraverso manovre operative. La correzione utensile online viene presa in considerazione anche per la velocità periferica costante della mola (VPM) e per la sorveglianza utensile (TMON) .

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 471

7.5 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

7.5.1 Attivazione delle correzioni utensile 3D (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF, ISD)

Funzione Nel caso della correzione del raggio utensile per utensili cilindrici, viene tenuto in considerazione l'orientamento variabile Per l'attivazione della correzione raggio utensile 3D valgono le stesse istruzioni di programmazione della correzione 2D. Con G41/G42 viene indicata la correzione destra/sinistra nella direzione di movimento. Il comportamento di accostamento è sempre NORM. La correzione del raggio utensile 3D ha effetto solo se è selezionata la trasformazione a 5 assi. La correzione raggio utensile 3D viene denominata anche correzione 5D poiché in questo caso sono disponibili 5 gradi di libertà per la posizione dell'utensile nello spazio.

Differenza tra correzione raggio utensile 2 1/2D e 3D Nella correzione raggio utensile 3D l'orientamento dell'utensile è variabile. Nella correzione del raggio utensile 2 1/2D il calcolo avviene solo per un utensile con orientamento costante.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 472 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi CUT3DC CUT3DFS CUT3DFF CUT3DF ISD=<Valore>

Significato CUT3DC Attivazione della correzione raggio 3D per la fresatura

periferica CUT3DFS Correzione utensile D per la fresatura frontale con

orientamento costante. L'orientamento utensile è stabilito tramite G17 - G19 e non viene influenzato da frame.

CUT3DFF Correzione utensile D per la fresatura frontale con orientamento costante. L'orientamento utensile corrisponde all'orientamento stabilito tramite G17 - G19 ed eventualmente alla direzione ruotata attraverso un frame.

CUT3DF Correzione utensile D per fresatura frontale con orientamento variabile (solo con trasformazione a 5 assi attiva).

G40 X... Y... Z... Per la disattivazione: Blocco lineare G0/G1 con assi geometrici

ISD Profondità di penetrazione

Nota I comandi hanno validità modale e sono nello stesso gruppo diCUT2D e CUT2DF. La disattivazione è effettiva solo con il successivo movimento nel piano di lavoro attuale. Questa condizione è sempre valida per G40 ed è indipendente dal comando CUT. Con correzione raggio utensile 3D attiva sono consentiti blocchi intermedi. Valgono le impostazioni della correzione del raggio utensile 2 1/2D.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 473

Condizioni marginali ● G450/G451 e DISC

Sugli spigoli esterni viene sempre inserito un blocco circolare. G450/G451 non hanno alcun significato. Il comando DISC non viene valutato.

Esempio Codice di programma Commento

N10 A0 B0 X0 Y0 Z0 F5000

N20 T1 D1 ; Richiamo utensile, richiamo dei valori di correzione utensile.

N30 TRAORI(1) ; Selezione della trasformazione

N40 CUT3DC ; Selezione della correzione raggio utensile 3D

N50 G42 X10 Y10 ; Selezione della correzione raggio utensile

N60 X60

N70 …

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 474 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.5.2 Correzione utensile 3D: fresatura periferica e frontale

Fresatura periferica La variante di fresatura periferica qui utilizzata viene realizzata preimpostando un profilo (linea guida) ed il relativo orientamento. Con questo tipo di lavorazione, sul percorso e sugli spigoli esterni la forma dell'utensile non è rilevante. È rilevante solo il raggio nel punto di intervento dell'utensile.

Nota La funzione di Correzione raggio utensile 3D è limitata agli utensili cilindrici.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 475

Fresatura frontale Per questo tipo di fresatura 3D è necessaria la descrizione riga per riga dei percorsi 3D sulla superficie del pezzo. Il calcolo viene effettuato normalmente con un CAM tenendo conto della forma e delle dimensioni dell'utensile. Il post-processore scrive nel partprogram, oltre ai blocchi NC, gli orientamenti dell'utensile (con trasformazione a 5 assi attiva) e il codice G per la correzione utensile 3D desiderata. Quindi il costruttore della macchina ha la possibilità di utilizzare utensili leggermente più piccoli rispetto all'utensile impiegato per il calcolo dei percorsi NC.

Esempio: I blocchi NC sono stati calcolati con una fresa da 10 mm. In questo caso, la lavorazione sarebbe possibile anche con un diametro della fresa di 9,9 mm, anche se successivamente si dovrà tener conto di un profilo di ruvidità modificato.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 476 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.5.3 Correzione utensile 3D: Forme dell'utensile e dati dell'utensile per fresatura frontale

Forme degli utensili per fresatura, dati utensile Di seguito sono riepilogati le forme dell'utensile e i valori limite dei dati dell'utensile possibili per la fresatura frontale. La forma dell'albero dell'utensile non viene tenuta in considerazione. I tipi di utensile 120 e 156 hanno effetto identico.

Se nel programma NC viene inserito un numero di tipo diverso da quello visualizzato nella figura, il sistema utilizza automaticamente il tipo di utensile 110 (fresa cilindrica per stampi). Se i valori impostati per i dati utensili superano il valore limite viene emesso un allarme.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 477

Tipo di fresa N. del tipo R r a Fresa cilindrica 110 > 0 - - Fresa a testa cilindrica 111 > 0 >R - Fresa a codolo, fresa a testa angolare 120, 130 > 0 - - Fresa a codolo, fresa a testa angolare con arrotondamento degli spigoli

121, 131 >r > 0 -

Fresa a tronco di cono 155 > 0 - > 0 Fresa a tronco di cono con arrotondamento degli spigoli

156 > 0 > 0 > 0

Fresa per stampi conica 157 > 0 - > 0

R = raggio del codolo (raggio utensile) r = raggio d'angolo a = angolo tra l'asse longitudinale dell'utensile e l'estremità superiore della superficie toroidale - = non viene valutato

Dati dell'utensile Parametri utensile Dimensioni dell'utensile Geometria Usura R $TC_DP6 $TC_DP15 r $TC_DP7 $TC_DP16 a $TC_DP11 $TC_DP20

Correzione lunghezza utensile (CLU) Come punto di riferimento per la correzione della lunghezza vale la punta utensile (punto di intersezione asse longitudinale/superficie). Correzione utensile 3D, cambio utensile Un nuovo utensile con dimensioni modificate (R, r, a) o una forma diversa può essere inserito solo con la programmazione di G41 o G42 (raccordo da G40 a G41 o G42, nuova programmazione di G41 o G42). Tutti gli altri dati dell'utensile, ad es. le lunghezze dell'utensile, continuano a non essere considerati da questa regola, in modo che tali utensili possano essere sostituiti anche senza nuovi G41 o G42.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 478 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.5.4 Correzione utensile 3D: Correzione sulla traiettoria, curvatura della traiettoria, profondità di penetrazione (CUT3DC, ISD)

Funzione Correzione sulla traiettoria Nel caso della fresatura frontale bisogna tener conto del fatto che il punto di contatto sulla superficie dell'utensile "salta", come in questo esempio nella lavorazione di una superficie convessa con utensile disposto verticalmente. L'esempio mostrato nella figura può essere considerato come un caso limite.

Il controllo sorveglia tale caso limite e riconosce gli spostamenti del punto di contatto sulla base della posizione dell'angolo tra l'utensile e il vettore normale alla superficie. In corrispondenza di questi punti il controllo inserisce un blocco con spostamento lineare in modo che il movimento possa essere eseguito correttamente. Per calcolare i blocchi lineari vengono inseriti nei dati macchina i valori consentiti per l'angolo laterale. Se i valori limite consentiti per gli angoli vengono superati, il controllo emette un allarme.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 479

Curvatura della traiettoria La curvatura della traiettoria non viene sorvegliata. Anche in questo caso si raccomanda di impiegare solo quei tipi di utensile che consentono una lavorazione del profilo precisa. Profondità di penetrazione (ISD) La profondità di penetrazione ISD viene valutata solo per la correzione raggio utensile 3D attiva. Con il comando di programma ISD (Insertion Depth) viene programmata la profondità di penetrazione dell'utensile durante la fresatura periferica. In questo modo è possibile modificare la posizione del punto di lavorazione sulla superficie laterale dell'utensile.

Sintassi Correzione utensile 3D, fresatura periferica CUT3DC ISD=<Valore>

Significato CUT3DC Attivazione della correzione utensile 3D per la fresatura periferica, ad es. per

la fresatura di tasche con pareti laterali inclinate. ISD Con il comando ISD viene immessa la distanza (<Valore>) fra la punta

della fresa (FS) e il punto ausiliario fresa (FH).

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 480 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Punto ausiliario fresa Il punto ausiliario fresa (FH) si genera attraverso la proiezione del punto di lavorazione programmato sull'asse utensile.

Ulteriori informazioni Fresatura di tasche con pareti inclinate per fresatura periferica con CUT3DC Con questa correzione raggio utensile 3D viene compensata una differenza del raggio utensile mentre si incrementa in direzione della normale alla superficie da lavorare. Così il piano in cui si trova la superficie frontale della fresa resta invariato se la profondità di penetrazione ISD resta inalterata. Una fresa con, ad esempio, un raggio inferiore rispetto ad un utensile standard, non avrebbe raggiunto il fondo della tasca che rappresenta anche la superficie limite. Per un incremento automatico dell’utensile il controllo deve conoscere questa superficie limite. Per ulteriori informazioni vedere il capitolo "Fresatura periferica 3D con superfici limite“ Per ulteriori informazioni sulla sorveglianza anticollisione vedere: Bibliografia: Manuale di programmazione, Nozioni di base; Capitolo "Correzioni utensile".

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 481

7.5.5 Correzione utensile 3D: Spigoli interni/Spigoli esterni e spostamento del punto di intersezione (G450/G451)

Funzione Spigoli interni/esterni Gli spigoli interni ed esterni vanno trattati separatamente. La definizione di spigolo interno ed esterno dipende dall'orientamento dell'utensile. Nella variazione dell'orientamento su uno spigolo può verificarsi che durante la lavorazione il tipo di spigolo venga modificato. In questo caso la lavorazione viene interrotta con un messaggio di errore.

Sintassi G450 G451

Significato G450 Cerchio di raccordo (l'utensile aggira gli spigoli del pezzo su una traiettoria

circolare) G451 Punto di intersezione delle equidistanti (l'utensile esegue una lamatura sullo

spigolo del pezzo)

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 482 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Punto di intersezione per correzione 3D Nella fresatura periferica 3D viene ora valutato sugli spigoli esterni il codice G G450/G451, ciò significa che il punto di intersezione delle curve di offset può essere raggiunto. Fino al SW 4 è stato sempre inserito un cerchio in corrispondenza degli spigoli esterni. Il comportamento sul punto di intersezione è particolarmente vantaggioso per programmi 3D tipicamente realizzati con CAD. Tali programmi sono spesso costituiti da brevi blocchi di rette (per approssimare curve piatte), per le quali i raccordi tra blocchi contigui sono quasi tangenziali. Per la correzione del raggio utensile sul lato esterno del profilo fino ad ora venivano inseriti fondamentalmente dei cerchi per aggirare gli spigoli esterni. Dal momento che questi blocchi diventano molto brevi se i raccordi sono quasi tangenziali, ne conseguono interruzioni indesiderate della velocità. In questi casi, analogamente alla correzione del raggio 2 ½ D vengono prolungate entrambe le curve interessate, il punto di intersezione di entrambe le curve prolungate viene raggiunto. Le curve di offset dei due blocchi interessati vengono prolungate e il loro punto di intersezione viene determinato nel piano perpendicolarmente all'orientamento dell'utensile sullo spigolo. Se non esiste un punto di intersezione simile, lo spigolo viene trattato come in precedenza, vale a dire viene inserito un cerchio. Per ulteriori informazioni sullo spostamento del punto di intersezione: Bibliografia: Manuale di guida alle funzioni, Funzioni speciali; Correzione del raggio utensile 3D (W5)

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 483

7.5.6 Correzione utensile 3D: Fresatura periferica 3D con superfici limite

Adattamenti della fresatura periferica 3D alle caratteristiche dei programmi CAD I programmi NC generati dai sistemi CAD si avvicinano generalmente al percorso riferito al centro di un utensile standard con un numero elevato di brevi blocchi lineari. Per far sì che questi blocchi di più profili parziali creati in questo modo riproducano esattamente il profilo originale di partenza, è necessario effettuare nel partprogram determinati adattamenti. Le importanti informazioni che sarebbero necessarie per una correzione ottimale ma che non sono più disponibili nel partprogram devono essere sostituite attraverso misure adeguate. Di seguito vengono illustrati i metodi comunemente utilizzati per risolvere i passaggi critici direttamente nel partprogram o calcolando il reale profilo (ad es. attraverso il posizionamento dell'utensile).

Applicazioni Oltre alle tipiche applicazioni, nelle quali invece dell'utensile standard è un utensile reale a descrivere il percorso riferito al centro, vengono trattati anche gli utensili cilindrici con correzione utensile 3D. In questo caso, il percorso programmato si riferisce al profilo sulla superficie di lavorazione. La superficie limite a questo scopo adeguata è indipendente dall'utensile. Con la correzione del raggio utensile tradizionale il raggio totale viene considerato per il calcolo dell'offset verticale sulla superficie limite.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 484 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.5.7 Correzione utensile 3D: Considerazione di una superficie limite (CUT3DCC, CUT3DCCD)

Funzione Fresatura periferica 3D con utensili reali Nella fresatura periferica 3D con orientamento dell’utensile continuo o costante, viene programmata spesso la traiettoria rispetto al centro di un utensile normalizzato. Siccome nella pratica molto spesso non sono disponibili gli utensili standard adeguati, è possibile utilizzare un utensile che non si discosti troppo da quello previsto. Con CUT3DCCD viene considerata una superficie limite per un utensile differenziale reale, che descriverebbe l'utensile normalizzato programmato. Il programma NC descrive il percorso riferito al centro dell'utensile normalizzato. Con CUT3DCC utilizzando utensili cilindrici viene considerata una superficie limite che è stata raggiunta dall'utensile normalizzato programmato. Il programma NC descrive il profilo sulla superficie di lavorazione.

Sintassi CUT3DCCD CUT3DCC

Significato CUT3DCCD Attivazione della correzione utensile 3D per la fresatura periferica con

superfici limite ed utensile differenziale sulla traiettoria del centro utensile: Posizionamento sulla superficie limite.

CUT3DCC Attivazione della correzione utensile 3D per la fresatura periferica con superfici limite e correzione raggio 3D: Profilo sulla superficie di lavorazione

Nota Correzione raggio utensile con G41, G42 Per la correzione raggio utensile con G41, G42 e CUT3DCCD oppure CUT3DCC attivi, si deve attivare l’opzione “Trasformazione dell’orientamento”.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 485

Utensili standard con arrotondamento degli spigoli L'arrotondamento degli spigoli con gli utensili standard viene definito con il parametro utensile $TC_DP7. Dal parametro utensile $TC_DP16 si ricava la differenza dell'arrotondamento dello spigolo dell'utensile reale rispetto all'utensile standard.

Esempio Dimensioni di una fresa toroidale con raggio ridotto rispetto ad un utensile standard.

Tipo di utensile R = raggio del codolo r = raggio dello spigolo Utensile standard con arrotondamento degli spigoli

R = $TC_DP6 r = $TC_DP7

Utensile reale con arrotondamento degli spigoli: Tipi di utensile 121 e 131, fresa toroidale (fresa a codolo)

R' = $TC_DP6 + $TC_DP15 + OFFN r' = $TC_DP7 + $TC_DP16

In questo esempio sia $TC_DP15 + OFFN sia $TC_DP16 sono negativi. Il tipo di utensile ($TC_DP1) viene valutato. Sono consentiti solo tipi di frese con codolo cilindrico (fresa cilindrica o a codolo) oppure frese toroidali (tipi 121 e 131) e al limite frese cilindriche per stampi (tipo 110).

Per questi tipi di frese consentiti, il raggio dello spigolo r è uguale al raggio del codolo R. Tutti gli altri tipi di utensili consentiti vengono interpretati come frese cilindriche ed un eventuale dimensione per l’arrotondamento dello spigolo non viene considerata.

Sono consentiti tutti i tipi di utensili di numeri da 1 a 399 ad eccezione dei numeri 111 e da 155 a 157.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 486 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Traiettoria del centro utensile con posizionamento fino alla superficie limite CUT3DCCD Se viene utilizzato un utensile che a confronto con l'utensile standard adeguato presenta un raggio inferiore, una fresa posizionata in direzione longitudinale viene portata avanti tanto da toccare nuovamente il fondo della tasca. In questo modo lo spigolo che viene costruito dalla superficie di lavorazione e dalla superficie limite viene rimosso in modo tale da ammettere l'utensile. Si tratta di una modalità di lavorazione mista della fresatura periferica e della fresatura frontale. Analogamente a un utensile con raggio limitato, un utensile con raggio superiore si posiziona rispettivamente nella direzione opposta.

Rispetto a tutte le altre correzioni utensile del gruppo di codice G 22, un parametro utensile indicato per CUT3DCCD$TC_DP6 non ha alcun significato per il raggio utensile e non influenza la correzione risultante. L'offset di correzione si ricava dalla somma di: ● valore di usura del raggio utensile (parametro utensile $TC_DP15) ● e di un offset utensile programmato per il calcolo dell'offset verticale rispetto alla

superficie limite OFFN.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 487

Non è possibile l'estrapolazione dal partprogram creato se la superficie da lavorare si trova a sinistra o a destra del percorso. Viene perciò presupposto un raggio positivo e un valore di usura negativo dell'utensile originale. Un valore di usura negativo descrive sempre un utensile con diametro ridotto. Impiego di utensili cilindrici Nell'impiego di utensili cilindrici un posizionamento è quindi necessario solo se la superficie di lavorazione e la superficie limite creano un angolo acuto (inferiore a 90 gradi). Se si utilizzano frese toroidali (cilindro con arrotondamento dello spigolo), è richiesto sia con gli angoli acuti che con gli angoli ottusi un posizionamento in direzione longitudinale dell'utensile. Correzione raggio 3D con CUT3DCC, profilo sulla superficie di lavorazione Se CUT3DCC è attiva con una fresa toroidale, il percorso programmato si riferisce a una fresa cilindrica fittizia dello stesso diametro. Il punto di riferimento del percorso risultante è rappresentato nella seguente figura in caso di impiego di una fresa toroidale.

È consentito che l'angolo fra la superficie di lavorazione e la superficie limite passi anche all'interno di un blocco da un angolo acuto a un angolo ottuso e viceversa.

Correzioni utensile 7.5 Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...)

Preparazione del lavoro 488 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Rispetto all'utensile standard, l'utensile reale impiegato più avere dimensioni maggiori o minori. In questo caso il raggio d'angolo risultante non può essere negativo e il segno algebrico del raggio d'angolo risultante deve essere mantenuto. Con CUT3DCC il partprogram NC si riferisce al profilo sulla superficie di lavorazione. Qui viene considerato, come con la correzione del raggio utensile tradizionale, il raggio totale, che si ottiene dalla somma di: ● raggio utensile (parametro utensile $TC_DP6) ● valore di usura (parametro utensile $TC_DP15) ● e di un offset utensile programmato per il calcolo dell'offset verticale rispetto alla

superficie limite OFFN. La posizione della superficie limite viene determinata in base alla differenza fra i due valori: ● Dimensioni dell'utensile standard ● Raggio utensile (parametro UT $TC_DP6)

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 489

7.6 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Funzione Per orientamento dell'utensile si intende la posizione geometrica dell'utensile nello spazio. Con una macchina per la lavorazione a 5 assi, l'orientamento dell'utensile può essere definito mediante istruzioni nel programma.

I movimenti di raccordo dell'orientamento attivati con OSD e OST vengono formati in modo diverso a seconda del tipo di interpolazione per l'orientamento utensile. Quando è attiva l'interpolazione vettoriale, l'andamento livellato dell'orientamento viene interpolato anche vettorialmente. Quando invece è attiva l'interpolazione dell'asse rotante, l'orientamento viene livellato direttamente tramite i movimenti dell'asse rotante.

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro 490 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione Programmazione della variazione dell'orientamento: Una variazione dell'orientamento utensile può essere programmata con: ● Programmazione diretta degli assi rotanti A, B, C (interpolazione asse rotante) ● Angolo di Eulero oppure angolo RPY ● Vettore direzionale (interpolazione vettoriale con indicazione di A3 o B3 o C3) ● LEAD/TILT (fresatura frontale) Il sistema di coordinate di riferimento è il sistema di coordinate macchina (ORIMKS) oppure il sistema di coordinate pezzo attuale (ORIWKS).

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 491

Programmazione dell'orientamento utensile: Comando Significato ORIC: Orientamento e movimento vettoriale paralleli ORID: Orientamento e movimento vettoriale successivi OSOF: Nessuno smorzamento dell'orientamento OSC: Orientamento costante OSS: Smorzamento dell'orientamento solo all'inizio del blocco OSSE: Smorzamento dell'orientamento all'inizio ed alla fine del blocco ORIS: La velocità di variazione dell'orientamento con smorzamento

dell'orientamento attiva in gradi per mm (vale per OSS e OSSE). OSD: Raccordo del movimento dell'orientamento con l'impostazione della

lunghezza di raccordo con il dato setting: SD42674 $SC_ORI_SMOOTH_DIST

OST: Raccordo del movimento di orientamento con l'impostazione della tolleranza d'angolo in gradi in caso di interpolazione vettoriale con il dato setting: SD42676 $SC_ORI_SMOOTH_TOL In caso di interpolazione dell'asse rotante, la tolleranza impostata viene considerata lo scostamento massimo degli assi di orientamento.

Nota Tutti i comandi per il raccordo di movimento dell'orientamento utensile (OSOF, OSC, OSS, OSSE, OSD e OST) sono raggruppati nel gruppo funzioni G 34. Hanno effetto modale, ovvero può essere attivo sempre solo uno di questi comandi.

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro 492 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: ORIC Se fra i blocchi di movimento N10 e N20 sono programmati due o più blocchi con variazioni dell'orientamento (ad es. A2=... B2=... C2=...) e ORIC è attivo, il blocco circolare inserito viene suddiviso in questi blocchi intermedi in base alla somma delle variazioni angolari.

Codice di programma Commento

ORIC

N8 A2=… B2=… C2=…

N10 X… Y… Z…

N12 C2=… B2=…

N14 C2=… B2=…

; Il blocco circolare che viene inserito sullo spigolo esterno si suddivide in N12 e N14, in base alla variazione dell'orientamento. Movimento circolare e variazione dell'orientamento vengono in questa occasione eseguiti parallelamente.

N20 X =…Y=… Z=… G1 F200

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 493

Esempio 2: ORID Se ORID è attivo, tutti i blocchi vengono eseguiti fra i due blocchi di movimento alla fine del primo blocco di movimento. Il blocco circolare con orientamento costante viene eseguito subito prima del secondo blocco di movimento.

Codice di programma Commento

ORID

N8 A2=… B2=… C2=…

N10 X… Y… Z…

N12 A2=… B2=… C2=… ; Il blocco N12 e N14 viene eseguito alla fine di N10. Successivamente il blocco circolare viene spostato con l'orientamento attuale.

N14 M20 ; Funzioni ausiliarie ecc.

N20 X… Y… Z…

Nota Per il tipo di variazione dell'orientamento sullo spigolo esterno è determinante il comando di programma che risulta attivo nel primo blocco di movimento di uno spigolo esterno. Senza variazione dell'orientamento: Se l'orientamento non viene modificato alla fine del blocco, la sezione trasversale dell'utensile è un cerchio che tocca entrambi i profili.

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro 494 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 3: Variazione dell'orientamento su uno spigolo interno

Codice di programma

ORIC

N10 X …Y… Z… G1 F500

N12 X …Y… Z… A2=… B2=… C2=…

N15 X …Y… Z… A2=… B2=… C2=…

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 495

Ulteriori informazioni Comportamento sugli spigoli esterni Su uno spigolo esterno viene sempre inserito un blocco circolare con il raggio della fresa. Con i comandi di programma ORIC e ORID è possibile stabilire se le variazioni dell'orientamento che vengono programmate fra il blocco N1 e il blocco N2 vengono eseguite prima dell'inizio del blocco circolare inserito o contemporaneamente a questo.

Se è necessaria una variazione dell'orientamento su uno spigolo esterno, questa può avvenire sia parallelamente all'interpolazione che separatamente con il movimento vettoriale. Con ORID vengono per prima cosa eseguiti i blocchi inseriti senza movimento vettoriale. Il blocco circolare viene sempre inserito prima del secondo blocco di movimento, attraverso il quale viene formato lo spigolo. Se su uno spigolo esterno sono inseriti più blocchi di orientamento e ORIC è selezionato, il movimento circolare viene suddiviso su questi in base alle somme delle variazioni dell'orientamento dei singoli blocchi inseriti.

Correzioni utensile 7.6 Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)

Preparazione del lavoro 496 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Raccordo dell'orientamento con OSD o OST In caso di raccordo con G642 lo scostamento massimo per gli assi di profilo e gli assi di orientamento non può essere molto diverso. La tolleranza inferiore di entrambi determina la forma del movimento di raccordo o della tolleranza angolare, in modo da livellare in modo relativamente ampio il percorso di orientamento, senza dover accettare scostamenti superiori dal profilo. Attivando OSD o OST è possibile, con una lunghezza di raccordo e una tolleranza d'angolo preimpostate, livellare "ampiamente" scostamenti molto ridotti del percorso di orientamento senza provocare gravi scostamenti dal profilo.

Nota A differenza del raccordo del profilo (e del percorso di orientamento) con G642 nel raccordo dell'orientamento con OSD o OST non viene formato un blocco a sé stante, bensì il movimento di raccordo viene inserito direttamente nei blocchi originali programmati. Con OSD o OST non si possono raccordare passaggi di blocchi nei quali avviene un cambio del tipo di interpolazione per l'orientamento dell'utensile (vettore → asse rotante, asse rotante → vettore). Questi passaggi di blocco possono essere eventualmente raccordati con le funzioni di raccordatura tradizionali G641, G642 o G643.

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 497

7.7 7.7 Assegnazione di un numero D libero, numero del tagliente

7.7.1 Assegnazione di un numero D libero, numero del tagliente (indirizzo CE)

Numero D I numeri D possono essere utilizzati come numeri di correttori. Inoltre con l’indirizzo CE si può indirizzare il numero del tagliente. Con la variabile di sistema $TC_DPCE è possibile rappresentare il numero del tagliente. Preimpostazione: n. correttore == n. tagliente Tramite i dati macchina vengono stabiliti il numero massimo dei numeri D (numero di taglienti) e il numero massimo di taglienti per utensile (→ costruttore della macchina). I comandi che seguono hanno significato solo se è stato fissato un numero di taglienti massimo (MD18105) superiore al numero dei taglienti per utensile (MD18106). Tenere in considerazione i dati del costruttore della macchina.

Nota Oltre all'assegnazione relativa dei numeri D, gli stessi si possono impostare come "piani" oppure "assoluti" (1...32000) senza riferimento ad un numero T (nell'ambito della funzione "struttura del numero D piana").

Bibliografia Manuale di guida alle funzioni, Funzioni di base; Correzione utensile (W1)

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro 498 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.7.2 Assegnazione libera dei numeri D: Controllo dei numeri D (CHKDNO)

Funzione Con il comando CKKDNO è possibile controllare se i numeri D disponibili sono stati impostati univocamente. I numeri D di tutti gli utensili definiti nell’ambito di un’unità TO, possono essere assegnati solo una volta. Gli utensili sostitutivi non vengono verificati.

Sintassi state=CHKDNO(Tno1,Tno2,Dno)

Significato state =TRUE: i numeri D del settore verificato, sono stati

assegnati in modo univoco. =FALSE: avviene una collisione tra i numeri D oppure la

parametrizzazione è errata. I parametri che provocano la collisione vengono assegnati Con Tno1, Tno2 e Dno. Questi dati possono essere analizzati nel partprogram.

CHKDNO(Tno1,Tno2) Vengono verificati tutti i numeri D dell’utensile indicato. CHKDNO(Tno1) Vengono verificati tutti i numeri D di Tno1 rispetto agli altri

utensili. CHKDNO Vengono verificati tutti i numeri D di tutti gli utensili rispetto

agli altri utensili.

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 499

7.7.3 Assegnazione libera dei numeri D: Modifica dei nomi dei numeri D (GETDNO, SETDNO)

Funzione I numeri D devono essere sempre definiti in modo univoco. Due differenti taglienti di un utensile non possono avere lo stesso numero D. GETDNO Questa istruzione fornisce un numero D di un determinato tagliente (ce) di un utensile con il numero T t. Se per il parametro indicato non esiste nessun numero D, viene settato d=0. Se il numero D non è valido, viene restituito un valore > 32000. SETDNO Con questa istruzione viene assegnato il valore d al numero D di un tagliente ce dell’utensile t. Con state viene restituito il risultato di questa istruzione (TRUE oppure FALSE). Se per il parametro indicato non esiste nessun blocco dati, viene restituito FALSE. Gli errori di sintassi generano un allarme. Il numero D non può essere settato a 0 in modo esplicito.

Sintassi d = GETDNO (t,ce) state = SETDNO (t,ce,d)

Significato d Numero D del tagliente dell'utensile t Numero T dell'utensile ce Numero del tagliente (numero CE) dell’utensile state Indica se il comando è stato eseguito senza errori (TRUE oppure FALSE).

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro 500 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio di ridenominazione di un numero D Programmazione Commento

$TC_DP2[1,2]=120 ;

$TC_DP3[1,2] = 5.5 ;

$TC_DPCE[1,2] = 3 ; Numero di taglienti CE

... ;

N10 def int NrDVecchio, NrDNuovo = 17 ;

N20 NrDVecchio = GETDNO(1,3) ;

N30 SETDNO(1,3,NrDNuovo) ;

In questo modo al tagliente CE=3 viene assegnato il nuovo valore D 17. Ora i dati di questo tagliente vengono interrogati tramite il numero D 17; sia con le variabili di sistema che da programmazione con l’indirizzo NC.

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 501

7.7.4 Assegnazione libera dei numeri D: Individuazione del numero T per il numero D preimpostato (GETACTTD)

Funzione Con il comando GETACTTD si individua per un numero D-assoluto il numero T corrispondente. Non avviene nessuna verifica dell’univocità. Se esistono più numeri D uguali all'interno di un'unità TO, viene visualizzato il numero T del primo utensile trovato. Se si utilizzano numeri D "piani" non ha senso impiegare il comando, poichè viene sempre visualizzato il valore "1" (nessun numero T nella gestione dati).

Sintassi status=GETACTTD(Tnr,Dnr)

Significato Dnr Numero D per il quale deve essere ricercato il numero T. Tnr Numero T trovato

Valore: Significato: 0 Il numero T è stato trovato. Tnr contiene il valore del numero T. -1 Per il numero D indicato non esiste nessun numero T; Tnr=0. -2 Il numero D non è assoluto. Tnr mantiene il valore del primo

utensile trovato, che contiene il numero D con il valore Dnr.

stato

-5 La funzione potrebbe per un diverso motivo non essere eseguita.

Correzioni utensile 7.7 Assegnazione di un numero D libero, numero del tagliente

Preparazione del lavoro 502 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.7.5 Assegnazione libera dei numeri D: Impostazione non valida dei numeri D (DZERO)

Funzione Il comando DZERO serve da supporto durante il riattrezzaggio. I blocchi dati di correzione contraddistinti in questo modo non vengono più verificati dal comando CHKDNO. Per renderli nuovamente accessibili, il numero D deve essere ancora impostato con SETDNO.

Sintassi DZERO

Significato DZERO Contraddistingue tutti i numeri D dell'unità TO come non validi.

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 503

7.8 7.8 Cinematica del portautensile

Premesse Un portautensile può orientare un utensile in tutte le posizioni possibili nello spazio solo se ● sono presenti due assi rotanti V1 e V2. ● i due assi rotanti si trovano in posizione ortogonale l’uno rispetto all’altro. ● l'asse longitudinale dell'utensile è ortogonale al secondo asse rotante V2. Inoltre, per le macchine nelle quali devono essere impostabili tutti gli orientamenti possibili, è necessario che: ● l'orientamento utensile deve essere ortogonale al primo asse rotante V1.

Funzione La cinematica del portautensile con al massimo due assi rotanti v1 oppure v2viene definita attraverso le 17 variabili $TC_CARR1[m] ... $TC_CARR17[m]. La definizione del portautensile è composta: ● dalla distanza vettoriale del primo asse rotante rispetto al punto di riferimento del

portautensile I1, dalla distanza vettoriale del primo rispetto al secondo asse rotante I2, dalla distanza vettoriale del secondo asse rotante rispetto al punto di riferimento dell’utensile I3.

● dei vettori direzionali di entrambi gli assi rotanti V1, V2. ● dagli angoli di rotazione α1, α2intorno ad entrambi gli assi. Gli angoli di rotazione

vengono conteggiati osservando in direzione dei vettori degli assi rotanti, in senso orario positivo.

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro 504 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Per macchine con cinematica risolta (sia utensili che pezzi possono essere ruotati), le variabili di sistema vengono ampliate con le registrazioni ● $TC_CARR18[m] ... $TC_CARR23[m].

Parametri Funzione delle variabili di sistema per il portautensile orientabile Identificazione Componente x Componente y Componente z l1 Vettore offset $TC_CARR1[m] $TC_CARR2[m] $TC_CARR3[m] l2 Vettore offset $TC_CARR4[m] $TC_CARR5[m] $TC_CARR6[m] v1 Asse rotante $TC_CARR7[m] $TC_CARR8[m] $TC_CARR9[m] v2 Asse rotante $TC_CARR10[m] $TC_CARR11[m] $TC_CARR12[m] α1 Angolo di rotazione α2 Angolo di rotazione

$TC_CARR13[m] $TC_CARR14[m]

l3 Vettore offset $TC_CARR15[m] $TC_CARR16[m] $TC_CARR17[m]

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 505

Ampliamento delle variabili di sistema per il portautensile orientabile Denominazione Componente x Componente y Componente z l4 Vettore offset $TC_CARR18[m] $TC_CARR19[m] $TC_CARR20[m] Identificatori degli asse rotante v1 asse rotante v2

Identificatori degli assi rotanti v1e v2 (default = 0) $TC_CARR21[m] $TC_CARR22[m] $TC_CARR23[m] Tipo di cinematica T -> Tipo di cinematica P -> Tipo di cinematica M

Tipo di cinematica Tool Part Mixed mode

Solo l’utensile può essere ruotato (default)

Solo il pezzo può essere ruotato.

Pezzo e utensile possono essere ruotati

Identificatori degli asse rotante v1 asse rotante v2

Angolo in gradi degli assi rotanti v1e v2 assumendo la posizione base $TC_CARR21[m] $TC_CARR22[m]

Offset angolare asse rotante v1 asse rotante v2

Offset della dentatura Hirth in gradi degli assi rotanti v1e v2 $TC_CARR26[m] $TC_CARR27[m]

Increm.angolare asse rotante v1 asse rotante v2

Incremento della dentatura Hirth in gradi degli assi rotanti v1e v2 $TC_CARR28[m] $TC_CARR29[m]

Posiz.minima asse rotante v1 asse rotante v2

Limite software per la posizione minima degli assi rotanti v1e v2 $TC_CARR30[m] $TC_CARR31[m]

Posiz.massima asse rotante v1 asse rotante v2

Limite software per la posizione massima degli assi rotanti v1e v2 $TC_CARR32[m] $TC_CARR33[m]

Nome del portautensile

Il portautensile può essere definito con il nome anziché con un numero. $TC_CARR34[m] Utilizzo previsto nell’ambito dei cicli di misura dell’utente: $TC_CARR35[m] $TC_CARR36[m] $TC_CARR37[m]

Utente: Nome asse 1 Nome asse 2 Codice Posizione

$TC_CARR38[m] $TC_CARR39[m] $TC_CARR40[m]

Traslazione fine

Parametro che può essere sommato ai valori nei parametri di base.

l1 Vettore di offset $TC_CARR41[m] $TC_CARR42[m] $TC_CARR43[m] l2 Vettore di offset $TC_CARR44[m] $TC_CARR45[m] $TC_CARR46[m] l3 Vettore di offset $TC_CARR55[m] $TC_CARR56[m] $TC_CARR57[m] l4 Vettore di offset $TC_CARR58[m] $TC_CARR59[m] $TC_CARR60[m] v1 Asse rotante $TC_CARR64[m] v2 Asse rotante $TC_CARR65[m]

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro 506 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Chiarimenti sui parametri Con "m" viene indicato il numero del portautensile da definire. $TC_CARR47 ... $TC_CARR54 e $TC_CARR61 ... $TC_CARR63 non sono definiti e tentando di leggerli o scriverli viene emesso un allarme. I punti iniziali e finali dei vettori della distanza riferita agli assi, possono essere scelti liberamente. Gli angoli di rotazione α1, α2 intorno ad entrambi gli assi, vengono impostati a 0° nella posizione di riposo del portautensile. La cinematica di un portautensile, in questo modo, può essere definita liberamente. Portautensili con solo uno o nessun asse rotante, possono essere definiti ad uno o ad entrambi gli assi rotanti settando a zero i vettori direzionali. Nel caso di un portautensile senza asse rotante, i vettori della distanza hanno l’effetto di correttori utensili supplementari i cui componenti non vengono influenzati durante la commutazione dei piani di lavoro (G17 ... G19)°.

Ampliamenti dei parametri Parametri degli assi rotanti Le variabili di sistema sono state ampliate con le registrazioni $TC_CARR24[m] ... $TC_CARR33[m] e vengono descritte come segue: L'offset degli assi rotanti v1, v2

Variazione della posizione degli assi rotanti v1 oppure v2 nella posizione di base del portautensile orientabile.

Gli offset angolari/incrementi angolari degli assi rotanti v1, v2

Offset oppure incremento angolare della dentatura Hirth degli assi rotanti v1 e v2. L’angolo programmato o calcolato viene arrotondato al valore più vicino derivante dall’intero n da phi = s + n * d.

Posiz.minima e massima assi rotanti v1, v2

La posizione minima e massima dell'asse rotante Angolo limite (limite software) degli assi rotanti v1 e v2.

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 507

Parametri per l'utente $TC_CARR34 ... $TC_CARR40 contengono parametri che sono a completa disposizione dell'utente e che fino alla versione SW 6.4 non vengono di regola ulteriormente valutati all'interno dell'NCK o non hanno significato. Parametri della traslazione fine $TC_CARR41 ... $TC_CARR65 contengono parametri della traslazione fine, che possono essere aggiunti ai valori nei parametri di base. Il valore di traslazione fine abbinato ad un parametro di base si ricava sommando il valore 40 al numero del parametro.

Esempio Il portautensile utilizzato nel seguente esempio viene definito completamente con una rotazione intorno all’asse Y.

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro 508 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N10 $TC_CARR8[1]=1 ; Definizione dei componenti Y del primo asse rotante del portautensili 1.

N20 $TC_DP1[1,1]= 120 ; Definizione di una fresa a codolo.

N30 $TC_DP3[1,1]=20 ; Definizione di una fresa a codolo con lunghezza 20 mm.

N40 $TC_DP6[1,1]=5 ; Definizione di una fresa a codolo con raggio 5 mm.

N50 ROT Y37 ; Definizione di frame con rotazione di 37° intorno all'asse Y.

N60 X0 Y0 Z0 F10000 ; Raggiungimento della posizione iniziale.

N70 G42 CUT2DF TCOFR TCARR=1 T1 D1 X10 ; Correzione del raggio, impostazione della correzione della lunghezza utensile nel frame ruotato, selezione portautensili 1, utensile 1.

N80 X40 ; Esecuzione della lavorazione con una rotazione di 37°.

N90 Y40

N100 X0

N110 Y0

N120 M30

Ulteriori informazioni Cinematica risolta Per le macchine con cinematica risolta (sia l'utensile sia il pezzo sono orientabili) le variabili di sistema sono state ampliate delle voci da $TC_CARR18[m] a $TC_CARR23[m] e sono state descritte come di seguito: La tavola utensile girevole si compone: ● della distanza vettoriale del secondo asse rotante V2 rispetto al punto di riferimento di una

tavola utensile orientabile I4 del terzo asse rotante.

Correzioni utensile 7.8 Cinematica del portautensile

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 509

Gli assi rotanti si compongono: ● di entrambi gli identificatori del canale per il riferimento agli assi rotanti V1e V2, alla cui

posizione si accede eventualmente nella determinazione dell'orientamento del portautensili orientabile.

Il tipo di cinematica con uno dei valori T, P oppure M: ● tipo di cinematica T: solo l’utensile può essere ruotato. ● tipo di cinematica P: solo il pezzo può essere ruotato. ● tipo di cinematica M: utensile e pezzo possono essere entrambi ruotati. Cancellazione dei dati del portautensile Con $TC_CARR1[0]=0 i dati di tutti i blocchi dati dei portautensili vengono cancellati. Al tipo di cinematica $TC_CARR23[T]=T deve essere assegnata una delle tre lettere maiuscole o minuscole consentite (T,P,M) e per questo motivo non deve essere cancellato. Modifica dei dati del portautensile Ognuno dei valori definiti può essere modificato assegnando un nuovo valore nel partprogram. Ogni altra lettera diversa da T, P oppure M, comporta l'emissione di un allarme al momento dell'attivazione del portautensile orientabile. Lettura dei dati del portautensile Ognuno dei valori definiti può essere letto assegnandolo ad una variabile nel partprogram. Traslazioni fini Un valore di traslazione fine non consentito viene rilevato soltanto quando viene attivato un portautensili orientabile che contiene un valore simile e contemporaneamente il dato di setting SD42974 $SC_TOCARR_FINE_CORRECTION è = TRUE. La somma delle traslazioni fine consentite viene limitata ad un valore massimo tramite dati macchina.

Correzioni utensile 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)

Preparazione del lavoro 510 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.9 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)

Funzione Con la variazione dell'orientamento nello spazio dell'utensile variano anche i componenti della lunghezza utensile.

Dopo il riallestimento, per es. mediante impostazione manuale o cambio del portautensili con orientamento fisso nello spazio, occorre ricalcolare i componenti della lunghezza utensile. Questo avviene con i comandi di movimento TCOABS e TCOFR. Per un portautensili orientabile di un frame attivo, quando si seleziona l'utensile con TCOFRZ, TCOFRY e TCOFRX può essere determinata la direzione nella quale deve puntare l'utensile.

Sintassi TCARR=[<m>] TCOABS TCOFR TCOFRZ TCOFRY TCOFRX

Correzioni utensile 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCO

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 511

Significato TCARR=[<m>]: Richiesta portautensili con il numero "m" TCOABS: Calcolo dei componenti della lunghezza utensile in base

all'orientamento attuale del portautensili TCOFR: Determinazione componenti lunghezza utensile da orientamento del

frame attuale TCOFRZ: Portautensili orientabile dal frame attivo il cui utensile punta nella

direzione Z TCOFRY: Portautensili orientabile dal frame attivo il cui utensile punta nella

direzione Y. TCOFRX: Portautensili orientabile dal frame attivo il cui utensile punta nella

direzione X.

Ulteriori informazioni Correzione lunghezza utensile in base all'orientamento del portautensili (TCOABS) TCOABS calcola la correzione lunghezza utensile a partire dagli angoli di orientamento attuali del portautensili, memorizzati nelle variabili di sistema $TC_CARR13 e $TC_CARR14. Per la definizione della cinematica del portautensili con variabili di sistema, vedere " Cinematica del portautensili (Pagina 503) ". Per ricalcolare la correzione lunghezza utensile in caso di cambio di frame, occorre selezionare nuovamente l'utensile. Direzione dell’utensile dal frame attivo Il portautensili orientabile può essere impostato in maniera tale che l'utensile si rivolga nelle seguenti direzioni: ● con TCOFR e TCOFRZ in direzione Z ● con TCOFRY in direzione Y ● con TCOFRX in direzione X La commutazione fra TCOFR e TCOABS richiede un nuovo calcolo della correzione lunghezza utensile.

Correzioni utensile 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)

Preparazione del lavoro 512 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Richiesta portautensili (TCARR) Con TCARR vengono richiesti con il numero del portautensili m i relativi dati geometrici (memoria di correzione). Con m=0 si disattiva il portautensili attivo. I dati geometrici del portautensili diventano attivi solo dopo che è stato richiamato un utensile. L'utensile selezionato resta attivo anche dopo il cambio di un portautensili. I dati geometrici attuali del portautensili possono anche essere definiti nel partprogram mediante le corrispondenti variabili di sistema. Nuovo calcolo della correzione lunghezza utensile (TCOABS) con il cambio di frame Per ricalcolare la correzione lunghezza utensile in caso di cambio di frame, occorre selezionare nuovamente l'utensile.

Nota L'orientamento dell'utensile deve essere adattato manualmente al frame attivo.

Nel calcolo della correzione lunghezza utensile vengono calcolati in un passo intermedio anche gli angoli di rotazione del portautensili. Dato che nei portautensili con due assi di rotazione esistono in genere due coppie di angoli di rotazione con cui è possibile adattare l'orientamento dell'utensile al frame attivo, è necessario che i valori degli angoli di rotazione memorizzati nelle variabili di sistema corrispondano perlomeno approssimativamente agli angoli di rotazione impostati meccanicamente.

Correzioni utensile 7.9 Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCO

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 513

Nota Orientamento dell'utensile Il controllo numerico non può controllare gli angoli di rotazione calcolati tramite l'orientamento dei frame per verificare la loro possibilità di impostazione sulla macchina. Se gli assi di rotazione del portautensili sono disposti in modo che l'orientamento dell'utensile calcolato mediante l'orientamento dei frame non può essere raggiunto, viene emesso un allarme. Non è ammessa la combinazione della correzione fine dell'utensile con le funzionalità di correzione lunghezza utensile per i portautensili mobili. Se si tenta di richiamare contemporaneamente le due funzioni, viene emessa una segnalazione di errore. Con TOFRAME è possibile definire un frame in base alla direzione di orientamento del portautensili selezionato. Per maggiori informazioni vedere il capitolo "Frame" In caso di trasformazione attiva dell'orientamento (trasformazione a 3, 4, 5 assi), è possibile selezionare un portautensili con orientamento che si discosta dalla posizione di zero senza che venga emesso un allarme.

Parametri di trasferimento dei cicli standard e dei cicli di misura Per i parametri di trasferimento dei cicli standard e dei cicli di misura valgono dei campi di valori definiti. Per i valori angolari il campo di lavoro è definito come segue: ● Rotazione intorno al 1° asse geometrico: -180 gradi fino a +180 gradi ● Rotazione intorno al 2° asse geometrico: -90 gradi fino a +90 gradi ● Rotazione intorno al 3° asse geometrico: -180 gradi fino a +180 gradi Vedere il capitolo Frame, "Rotazione programmabile (ROT, AROT, RPL)".

Nota Nel trasferire i valori angolari a un ciclo standard o a un ciclo di misura occorre considerare i seguenti aspetti: I valori inferiori alla precisione di calcolo dell'NC vanno arrotondati a zero! La precisione di calcolo dell'NC per le posizioni angolari è definita nel dato macchina: MD10210 $MN_INT_INCR_PER_DEG

Correzioni utensile 7.10 Correzione della lunghezza utensile on line (TOFFON, TOFFOF)

Preparazione del lavoro 514 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

7.10 7.10 Correzione della lunghezza utensile on line (TOFFON, TOFFOF)

Funzione Con la variabile $AA_TOFF[ ] si può eseguire una correzione tridimensionale in tempo reale sulla base delle tre dimensioni effettive dell'utensile. Come indice si utilizzano i tre identificativi degli assi geometrici. In questo modo il numero delle direzioni di correzione attive viene definito attraverso gli assi geometrici abilitati nello stesso momento. Tutte le correzioni possono essere abilitate contemporaneamente. La funzione di correzione online della lunghezza utensile è utilizzabile in questi casi: ● Trasformazione dell'orientamento TRAORI ● Carrello portautensili orientabile TCARR Costruttore della macchina La correzione online della lunghezza utensile è un'opzione che va abilitata prima dell'uso. La funzione è utile solo se abbinata a una trasformazione dell'orientamento attiva o a carrello portautensili orientabile attivo.

Sintassi N.. TRAORI N.. TOFFON(X,25) N.. WHEN TRUE DO $AA_TOFF[direzione utensile] in azioni sincrone Per ulteriori dettagli sulla programmazione della correzione online della lunghezza utensile in azioni sincrone di movimento vedere il capitolo "Azioni in azioni sincrone".

Significato TOFFON Tool Offset ON (attivare la correzione online della lunghezza

utensile) Quando si attiva la funzione, per la relativa direzione di correzione si può indicare un valore di offset che verrà subito eseguito.

TOFFOF Tool Offset ON (disattivare la correzione online della lunghezza utensile) I valori di correzione vengono resettati e viene attivato uno stop preelaborazione.

X, Y, Z, Direzione di correzione per il valore di offset indicato in TOFFON

Correzioni utensile 7.10 Correzione della lunghezza utensile on line (TOFFON, TOFFOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 515

Esempio di attivazione della correzione lunghezza utensile Codice di programma Commento

MD21190 $MC_TOFF_MODE =1

MD21194 $MC_TOFF_VELO[0] =1000

MD21196 $MC_TOFF_VELO[1] =1000

MD21194 $MC_TOFF_VELO[2] =1000

MD21196 $MC_TOFF_ACCEL[0] =1

MD21196 $MC_TOFF_ACCEL[1] =1

MD21196 $MC_TOFF_ACCEL[2] =1

; I valori assoluti vengono raggiunti

N5 DEF REAL XOFFSET

N10 TRAORI(1) ; Trasformazione On

N20 TOFFON(Z) ; Attivazione della correzione online della lunghezza utensile� per la direzione utensile Z

N30 WHEN TRUE DO $AA_TOFF[Z] = 10 G4 F5

; Per la direzione utensile Z viene interpolata una correzione della lunghezza utensile di 10

...

N100 XOFFSET = $AA_TOFF_VAL[X] N120 TOFFON(X, -XOFFSET) G4 F5

; Assegnazione dell'attuale correzione in direzione X per la direzione utensile X la correzione della lunghezza utensile viene nuovamente riportata a 0

Esempio di disattivazione della correzione lunghezza utensile Codice di programma Commento

N10 TRAORI(1) ; Trasformazione On

N20 TOFFON(X) ; Attivazione della direzione utensile Z

N30 WHEN TRUE DO $AA_TOFF[X] = 10 G4 F5

; Per la direzione utensile X viene interpolata una correzione della lunghezza utensile di 10

...

N80 TOFFOF(X) ; L'offset di posizione della direzione utensile X viene cancellato: ...$AA_TOFF[X] = 0 Nessun asse viene spostato nella posizione attuale nel SCP l'offset di posizione viene aggiunto in base all' orientamento attuale

Correzioni utensile 7.10 Correzione della lunghezza utensile on line (TOFFON, TOFFOF)

Preparazione del lavoro 516 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione Preparazione del blocco Nella preparazione del blocco in fase di preelaborazione viene preso in considerazione l'offset attuale per la lunghezza utensile valido nel ciclo principale. Per poter sfruttare completamente la velocità max. consentita per gli assi, è necessario interrompere la preparazione del blocco con uno stop della preelaborazione STOPRE mentre si predispone un offset per l'utensile. L'offset per l'utensile nella fase di preelaborazione viene sempre considerato anche quando le correzioni delle lunghezze dell'utensile non vengono più modificate dopo l'avvio del programma oppure quando, dopo una modifica di queste correzioni, è stato elaborato un numero di blocchi superiore a quello accettato dal buffer IPO fra la fase di preelaborazione e il ciclo principale. Variabile $AA_TOFF_PREP_DIFF Il valore della differenza fra la correzione attuale attiva nell'interpolatore e la correzione che era attiva nella fase di preparazione del blocco può essere interrogato nella variabile $AA_TOFF_PREP_DIFF[ ].

Impostazione dei dati macchina e dati setting Per la correzione online della lunghezza utensile sono disponibili i seguenti dati macchina: ● DM 20610: ADD_MOVE_ACCEL_RESERVE Riserva di accelerazione per movimento

sovrapposto. ● DM 21190: TOFF_MODE contenuto della variabile di sistema $AA_TOFF[ ], viene

indicato come valore assoluto oppure viene aggiunto. ● DM 21194: TOFF_VELO velocità della correzione della lunghezza utensile online. ● DM 21196: TOFF_ACCEL accelerazione della correzione della lunghezza utensile

online. ● Dato setting per l’impostazione del valori limite

DS 42970: TOFF_LIMIT limite superiore del valore di correzione lunghezza utensile. Bibliografia: /FB3/ Manuale delle funzioni speciali; Trasformazioni a 3 ... 5 assi (F2).

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 517

7.11 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Funzione Con la funzione "Modifica dei dati dei taglienti con utensili orientabili" è possibile considerare i rapporti geometrici modificati, che risultano dalla rotazione degli utensili (prevalentemente utensili da tornio ma anche utensili per foratura e fresatura) relativa al pezzo lavorato, durante la correzione utensile.

Figura 7-1 Utensile orientabile con un tornio

La rotazione attuale dell'utensile viene quindi sempre rilevata da un portautensili orientabile attualmente attivo (vedere " Correzione lunghezza utensile per portautensili orientabili (Pagina 510) "). La funzione viene attivata con il comando CUTMOD.

Sintassi CUTMOD=<Valore>

Significato CUTMOD Comando per l'attivazione della funzione "Modifica dei dati taglienti con utensili

orientabili"

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro 518 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Al comando CUTMOD possono essere assegnati i seguenti valori: 0 La funzione è disattivata.

I valori forniti dalle variabili di sistema $P_AD... sono identici ai parametri utensile corrispondenti.

> 0 La funzione viene attivata se un portautensili orientabile con il numero indicato è attivo, vale a dire l'attivazione è collegata a un determinato portautensili orientabile. I valori forniti dalle variabili di sistema $P_AD... possono essere eventualmente modificati rispetto ai parametri utensile corrispondenti in base alla rotazione attiva. La disattivazione del portautensili orientabile identificato disattiva la funzione temporaneamente, l'attivazione di un altro portautensili orientabile la disattiva permanentemente. Nel primo caso la funzione viene perciò riattivata selezionando ancora lo stesso portautensili orientabile, nel secondo caso è necessaria una nuova attivazione, anche se in un secondo tempo il portautensili orientabile viene riattivato con il numero indicato. La funzione non viene influenzata dal reset.

-1 La funzione viene sempre attivata nel caso in cui un portautensili orientabile sia attivo. Durante il cambio del portautensili o durante la relativa disattivazione e una riattivazione successiva, CUTMOD non deve essere nuovamente impostato.

-2 La funzione viene sempre attivata nel caso in cui sia attivo un portautensili orientabile, il cui numero è identico a quello del portautensili orientabile attualmente attivo. Se non è attivo alcun portautensili orientabile, questo è equivalente a CUTMOD=0. Se un portautensili orientabile è attivo, questo è equivalente a quanto direttamente indicato per il numero portautensili attuale.

<Valore>

< -2 I valori inferiori a 2 vengono ignorati, vale a dire questo caso viene trattato come se CUTMOD non fosse programmato. Avvertenza: Questo campo dei valori non dovrebbe essere modificato, dato che è riservato per eventuali estensioni successive.

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 519

Nota SD42984 $SC_CUTDIRMOD La funzione attivabile attraverso il comando CUTMOD sostituisce la funzione attivabile tramite il dato di setting SD42984 $SC_CUTDIRMOD. Questa funzione continua tuttavia ad essere disponibile inalterata. Poichè non ha senso utilizzare parallelamente entrambe le funzioni, essa può essere attivata solo se CUTMOD è uguale a zero.

Esempio L'esempio che segue si riferisce a un utensile con la posizione del tagliente 3 e con un portautensili orientabile, che può ruotare l'utensile intorno all'asse B. I valori numerici nei commenti indicano ogni volta le posizioni finali del blocco nelle coordinate macchina (SCM) nella sequenza X, Y, Z.

Codice di programma Commento

N10 $TC_DP1[1,1]=500

N20 $TC_DP2[1,1]=3 ; Posizione dei taglienti

N30 $TC_DP3[1,1]=12

N40 $TC_DP4[1,1]=1

N50 $TC_DP6[1,1]=6

N60 $TC_DP10[1,1]=110 ; Angolo supporto

N70 $TC_DP11[1,1]=3 ; Direzione di taglio

N80 $TC_DP24[1,1]=25 ; Angolo libero

N90 $TC_CARR7[2]=0 $TC_CARR8[2]=1 $TC_CARR9[2]=0 ; Asse B

N100 $TC_CARR10[2]=0 $TC_CARR11[2]=0 $TC_CARR12[2]=1 ; Asse C

N110 $TC_CARR13[2]=0

N120 $TC_CARR14[2]=0

N130 $TC_CARR21[2]=X

N140 $TC_CARR22[2]=X

N150 $TC_CARR23[2]="M"

N160 TCOABS CUTMOD=0

N170 G18 T1 D1 TCARR=2 X Y Z

N180 X0 Y0 Z0 F10000 ; 12.000 0.000 1.000

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro 520 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N190 $TC_CARR13[2]=30

N200 TCARR=2

N210 X0 Y0 Z0 ; 10.892 0.000 -5.134

N220 G42 Z–10 ; 8.696 0.000 –17.330

N230 Z–20 ; 8.696 0.000 –21.330

N240 X10 ; 12.696 0.000 –21.330

N250 G40 X20 Z0 ; 30.892 0.000 –5.134

N260 CUTMOD=2 X0 Y0 Z0 ; 8.696 0.000 –7.330

N270 G42 Z–10 ; 8.696 0.000 –17.330

N280 Z–20 ; 8.696 0.000 –21.330

N290 X10 ; 12.696 0.000 –21.330

N300 G40 X20 Z0 ; 28.696 0.000 –7.330

N310 M30

Spiegazioni: Nel blocco N180 viene per prima cosa attivato l'utensile con CUTMOD=0 e con il portautensili orientabile non ruotato. Poichè tutti i vettori di offset del portautensili orientabile sono pari a 0, viene raggiunta la posizione che corrisponde alle lunghezze utensile indicate in $TC_DP3[1,1] e $TC_DP4[1,1]. Nel blocco N200 il portautensili orientabile viene attivato con una rotazione di 30° intorno all'asse B. Poichè la posizione del tagliente non viene modificata a causa di CUTMOD=0, resta determinante il punto di taglio di riferimento precedente. Perciò nel blocco N210 viene raggiunta la posizione che mantiene il vecchio punto di taglio di riferimento nel punto zero (ciò significa che il vettore (1, 12) viene ruotato di 30° nel piano Z/X). Nel blocco N260, a differenza del blocco N200, è attivo CUTMOD=2. A causa della rotazione del portautensili orientabile, viene utilizzata la posizione dei taglienti 8 modificata. Da ciò derivano anche posizioni asse differenti. Nei blocchi N220 e N270 viene ogni volta attivata la correzione del raggio utensile (CRU). La differente posizione dei taglienti nelle due parti di programma non ha alcun influsso sulle posizioni finali dei blocchi in cui la CRU è attiva, le posizioni corrispondenti sono quindi identiche. Soltanto nei blocchi di disattivazione N260 e N300 le posizioni differenti dei taglienti hanno nuovamente effetto.

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 521

Ulteriori informazioni Attivazione dei dati dei taglienti modificati La posizione dei taglienti modificata e il punto di taglio di riferimento modificato diventano immediatamente attivi al momento della programmazione anche per un utensile già attivo. Una riattivazione dell'utensile non è a questo scopo necessaria. Influenza del piano di lavoro attivo Per la definizione di posizione dei taglienti modificata, direzione di taglio e angolo supporto/ angolo libero è determinante l'analisi dei taglienti nel piano ogni volta attivo (G17 - G19). Se tuttavia il dato di setting SD42940 $SC_TOOL_LENGTH_CONST (cambio dei componenti della lunghezza utensile al cambio del piano) contiene un valore valido diverso da zero (più o meno 17, 18 o 19), tale contenuto definisce il piano in cui vengono analizzate le grandezze rilevanti.

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro 522 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabili di sistema Sono disponibili le seguenti variabili di sistema: Variabili di sistema Significato $P_CUTMOD_ANG/ $AC_CUTMOD_ANG

Restituisce l'angolo (non arrotondato) nel piano di lavorazione attivo, che per la modifica dei dati dei taglienti (posizione dei taglienti, direzione di taglio, angolo libero e angolo supporto) era stato alla base delle funzioni attivate con CUTMOD e $SC_CUTDIRMOD. $P_CUTMOD_ANG si riferisce allo stato attualmente in corso, $AC_CUTMOD_ANG si riferisce al blocco di elaborazione principale corrente.

$P_CUTMOD/ $AC_CUTMOD

Legge il valore attualmente valido che è stato programmato per ultimo con il comando CUTMOD (numero del portautensili, per il quale la modifica dei dati dei taglienti deve essere attivata). Se l'ultimo valore CUTMOD programmato è = -2 (attivazione con il portautensili orientabile attualmente attivo), in $P_CUTMOD non viene restituito il valore -2, ma il numero del portautensili orientabile attivo al momento della programmazione. $P_CUTMOD si riferisce allo stato attualmente in corso, $AC_CUTMOD si riferisce al blocco di elaborazione principale corrente.

$P_CUT_INV/ $AC_CUT_INV

Restituisce il valore TRUE se l'utensile è ruotato in modo tale che la direzione di rotazione del mandrino debba essere invertita. A questo scopo è necessario soddisfare, nel blocco al quale si riferisce l'operazione di lettura interessata, le seguenti quattro condizioni: 1. È attivo un utensile di tornitura o di rettifica

(tipi di utensili da 400 a 599 e/o SD42950 $SC_TOOL_LENGTH_TYPE = 2).

2. L'azione dei taglienti è stata attivata con il comando di linguaggio CUTMOD.

3. È attivo un portautensili orientabile che è stato contrassegnato con il valore numerico di CUTMOD.

4. Il portautensili orientabile ruota l'utensile intorno a un asse nel piano di lavorazione (generalmente l'asse C) in modo tale che la normale risultante del tagliente utensile sia ruotata rispetto alla posizione di partenza di più di 90° (generalmente 180°).

Se almeno una delle quattro condizioni menzionate non è soddisfatta, il contenuto delle variabili è FALSE. Per gli utensili la cui posizione dei taglienti non è definita, il valore delle variabili è sempre FALSE. $P_CUT_INV si riferisce allo stato attualmente in corso e $AC_CUT_INV si riferisce al blocco di elaborazione principale corrente.

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 523

Tutte le variabili di elaborazione principale ($AC_CUTMOD_ANG, $AC_CUTMOD e $AC_CUT_INV) possono essere lette nelle azioni sincrone. Un accesso in lettura dall'elaborazione genera uno stop dell'elaborazione. Dati taglienti modificati: Nel caso in cui sia attiva una rotazione utensile, i dati modificati vengono resi disponibili nelle variabili di sistema seguenti: Variabile di sistema Significato $P_AD[2] Posizione dei taglienti $P_AD[10] Angolo supporto $P_AD[11] Direzione di taglio $P_AD[24] Angolo libero

Nota I dati sono quindi sempre modificati rispetto ai parametri utensile corrispondenti ($TC_DP2[..., ...] ecc.) se la funzione "Modifica dei dati dei taglienti con utensili orientabili" è stata attivata con il comando CUTMOD e se è attivo un portautensili orientabile che provoca una rotazione utensile.

Bibliografia Per ulteriori informazioni sulla funzione "Modifica dei dati dei taglienti con utensili orientabili" vedere: Manuale di guida alle funzioni, Funzioni di base; Correzione utensile (W1)

Correzioni utensile 7.11 Modifica del dati dei taglienti con utensili orientabili (CUTMOD)

Preparazione del lavoro 524 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 525

Comportamento sulla traiettoria 88.1 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Funzione L’asse slave viene gestito a seguire in funzione della tangente alla traiettoria definita attraverso l’asse master. In questo modo un utensile viene orientato parallelamente al profilo. Con l'angolo programmato con l'istruzione TANGON, l'utensile può essere collocato in posizione relativa alla tangente.

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro 526 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Campi di impiego Il controllo tangenziale può essere tra l'altro utilizzato per: ● controllo tangenziale di un utensile rotativo per la roditura ● gestione dell'attrezzo portapezzo per una sega a nastro (vedere disegno) ● posizionamento di un utensile di diamantatura su una mola ● posizionamento di un diamante circolare per il taglio del vetro o per la lavorazione della

carta ● posizionamento tangenziale del filo per la saldatura su 5 assi

Sintassi TANG (FAsse,LAsse1,LAsse2,Accopp.,KS, Opt.) TANGON (FAsse,Angolo, Dist, Angolotol) TANGDEL (FAsse) TLIFT (FAsse) TANGDEL (FAsse)

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 527

Programmazioni semplificate: Un fattore di accoppiamento di 1 non deve essere obbligatoriamente programmato in modo esplicito. TANG(C, X, Y, 1, "B", "P") può essere abbreviato come TANG(C, X, Y, , , , "P"). Come finora, invece di TANG(C, X, Y, 1, "B", "S") si può scrivere TANG(C, X, Y). L'istruzione TLIFT(...) deve essere impostata insieme all’abbinamento degli assi con TANG(...). Esempio: TANG(C,X,Y...) TLIFT(C)

Disattivazione di TLIFT Ripetere a tal fine l’abbinamento degli assi TANG(...) senza il successivo TLIFT(...). TANGDEL Cancellazione della definizione di un funzionamento a seguire tangenziale Un funzionamento a seguire tangenziale definito dall'utente dovrà essere cancellato, in caso si presenti la necessità di definire un nuovo inseguimento tangenziale con lo stesso asse a seguire nel richiamo TANG. La cancellazione è possibile solo se l'accoppiamento a TANGOF(asse F) è disabilitato.

Significato TANG Istruzione preparatoria per la definizione del funzionamento a

seguire tangenziale; preimpostazione: 1 TANG(C,X,Y,1,"B") significa: l'asse rotante C segue gli assi geometrici X e Y. Disattivazione di TLIFT

TANGON Attivazione del controllo tangenziale con indicazione dell'asse slave e dell'angolo di offset desiderato per l'asse slave, eventualmente percorso di raccordo, deviazione angolare. TANGON(C,90) significa: L'asse C è asse slave. Esso viene tenuto a 90° rispetto alla tangente sul punto di lavoro degli assi di contornatura.

TANGOF Disattivazione del controllo tangenziale con indicazione dell'asse slave. Per escludere il controllo tangenziale dell'asse slave impostare: TANGOF(C)

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro 528 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

TLIFT Inserimento di blocchi intermedi sugli spigoli del profilo. TANGDEL Cancellazione della definizione di un funzionamento a seguire

tangenziale. Esempio: TANGDEL (asse slave)

Asse slave Asse slave: asse rotante supplementare in funzionamento a seguire tangenziale

AsseMaster1, asseMaster2 Assi master: assi di contornitura dai quali viene ricavata la

tangente per il funzionamento a seguire Accoppiamento Fattore di accoppiamento: relazione tra variazione angolare

della tangente ed asse slave. Indicazione opzionale; preimpostazione: 1

KS Lettera identificativa per sistema di coordinate "B" = sistema di coordinate di base; indicazione opzionale; preimpostazione "W" = il sistema di coordinate del pezzo non è disponibile

Opt Ottimizzazione: "S" Standard, Default "P" adeguamento automatico della caratteristica di tempo dell'asse tangenziale e del profilo

Angolo Angolo di offset dell'asse slave Dist Percorso di raccordo dell’asse slave, necessario per Opt. "P" Angolotol Tolleranza angolare dell’asse slave, (opzionale), viene

interpretato solo con Opt.=”P” Possibilità di ottimizzazione Opt, Dist e Winkeltol Con Opt="P" viene sorvegliata la dinamica dell'asse slave al limite di velocità dell'asse master e deve essere utilizzata in primo luogo quando si utilizzano trasformazioni cinematiche. I parametri (Dist e Winkeltol) limitano l’errore presente tra l’asse slave e la tangente dell’asse master.

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 529

Esempio: Cambio del piano Codice di programma Commento

N10 TANG(A, X, Y,1) ; 1ª definizione dell'inseguimento tangenziale. N20 TANGON(A) ; Attivazione dell'accoppiamento.

N30 X10 Y20 ; Raggio

...

N80 TANGOF(A) ; Disattivazione del 1° accoppiamento.

N90 TANGDEL(A) ; Cancellazione della 1° definizione.

...

TANG(A, X, Z) ; 2ª definizione dell'inseguimento tangenziale. TANGON(A) ; Attivazione del nuovo accoppiamento

...

N200 M30

Esempio di commutazione di assi geometrici e TANGDEL Non viene generato alcun allarme. Codice di programma Commento

N10 GEOAX(2,Y1) ; Y1 è l'asse geometrico 2.

N20 TANG(A, X, Y)

N30 TANGON(A, 90)

N40 G2 F8000 X0 Y0 I0 J50

N50 TANGOF(A) ; Disattivazione inseguimento con Y1.

N60 TANGDEL(A) ; Cancellazione della definizione 1.

N70 GEOAX(2, Y2) ; Y2 è il nuovo asse geometrico 2

N80 TANG(A, X, Y) ; 2ª definizione dell'inseguimento tangenziale. N90 TANGON(A, 90) ; Attivazione dell'inseguimento con la definizione 2.

...

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro 530 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Inseguimento tangenziale con ottimizzazione automatica Ottimizzazione automatica tramite distanza e tolleranza angolare. Codice di programma Commento

N80 G0 C0 ; Y1 è l'asse geometrico 2.

N100 F=50000

N110 G1 X1000 Y500

N120 TRAORI ; Raccordo con tolleranza assiale.

N130 G642

N171 TRANS X–Y– ; Ottimizzazione automatica della velocità vettoriale.

N180 TANG(C,X,Y, 1,,"P") ; Percorso di raccordo 5 mm

N190 TANGON(C, 0, 5.0, 2.0) ; Tolleranza angolare 2 gradi

N210 G1 X1310 Y500 ; Attivazione dell'inseguimento con la definizione 2.

N215 G1 X1420 Y500

N220 G3 X1500 Y580 I=AC(1420) J=AC(580)

N230 G1 X1500 Y760

N240 G3 X1360 Y900 I=AC(1360) J=AC(760)

N250 G1 X1000 Y900

N280 TANGOF(C)

N290 TRAFOOF

N300 M02

Definizione dell'asse slave e dell'asse master La definizione di asse master e di asse slave avviene con TANG. Un fattore di accoppiamento fornisce la relazione tra una variazione angolare della tangente e l'asse slave a seguire. Il suo valore, in genere, è 1 (preimpostazione di default).

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 531

Angolo limite tramite limitazione del campo di lavoro Per movimenti pendolari la tangente ruota di 180° sui punti di inversione del percorso e l'orientamento dell'asse slave varia di conseguenza. Normalmente questo comportamento non è sensato: il movimento di ritorno deve essere eseguito con lo stesso angolo di offset negativo del movimento di andata. A questo scopo limitare il campo di lavoro dell'asse slave (G25, G26). La limitazione del campo di lavoro deve essere attiva al momento dell'inversione del percorso (WALIMON). Se l'angolo di offset va oltre il limite del campo di lavoro, con un angolo di offset negativo si tenta di rimanere nel campo di lavoro consentito.

Inserimento di blocchi intermedi sugli spigoli del profilo, TLIFT Su uno spigolo del profilo la tangente, e di conseguenza la posizione di riferimento dell'asse trascinato, sono soggette a variazioni brusche e irregolari. L'asse tenta normalmente di assorbire tali variazioni con la velocità massima possibile, causando tuttavia su un tratto del profilo uno scostamento rispetto alla posizione tangenziale desiderata. Se questo scostamento per motivi tecnologici non è ammissibile, con l'istruzione TLIFT si può fare in modo che il controllo si arresti in corrispondenza dello spigolo e ruoti l'asse trascinato nella nuova direzione tangenziale mediante un blocco intermedio creato automaticamente.

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro 532 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La rotazione avviene con l’asse di contornitura programmato quando l’asse slave è stato mosso una volta come asse di contornitura. Con la funzione TFGREF[ax] = 0.001 si può raggiungere la velocità massima dell’asse slave. Se l’asse slave in precedenza non era mai stato mosso come asse di contornitura, esso viene gestito come asse di posizionamento. La velocità dipende quindi dall’impostazione dei dati macchina per la velocità di posizionamento. La rotazione viene effettuata alla velocità massima dell'asse trascinato.

Possibilità di ottimizzazione I gradini di velocità dell’asse slave, conseguenti ai gradini nel profilo dell’asse master, vengono smorzati o raccordati (Dist e Winkeltol). In questo modo l’asse slave viene gestito “in anticipo” (vedere diagramma) per ridurre il più possibile gli scostamenti.

Comportamento sulla traiettoria 8.1 Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 533

Definizione della variazione dell'angolo La variazione dell'angolo a partire dalla quale viene inserito un blocco intermedio viene definita nel dato macchina $MA_EPS_TLIFT_TANG_STEP.

Influenza sulle trasformazioni La posizione di un asse trascinato può essere il valore di ingresso per una trasformazione.

Posizionamento esplicito dell'asse slave Se un asse slave viene posizionato esplicitamente, il dato di posizione viene sommato algebricamente all'angolo di offset. Sono consentite tutte le impostazioni di percorso: movimenti degli assi di posizionamento e di contornitura.

Stato dell'accoppiamento Nel partprogram dell'NC è possibile interrogare lo stato dell'accoppiamento con la seguente variabile di sistema: $AA_COUP_ACT[asse] 0: Nessun accoppiamento attivo 1,2,3: Funzionamento a seguire tangenziale attivo

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro 534 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.2 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Funzione Per impieghi sempre più flessibili dell'avanzamento, la programmazione viene ampliata con la caratteristica lineare e cubica secondo DIN 66025. Le caratteristiche cubiche possono essere programmate o direttamente, o come spline interpolate. In questo modo è possibile programmare, a seconda della curvatura del pezzo in lavorazione, caratteristiche di velocità con variazione graduale continua. Queste caratteristiche di velocità consentono variazioni di accelerazioni senza overshoot e quindi una finitura uniforme della superficie del pezzo.

Sintassi F… FNORM F… FLIN F… FCUB F=FPO(…,…,…)

Significato FNORM Posizione base. Il valore di avanzamento viene specificato nei blocchi di

percorso ed ha validità modale. FLIN Profilo velocità vettoriale lineare:

Il valore dell'avanzamento viene impostato linearmente dal valore attuale all'inizio del blocco fino alla fine dello stesso ed è valido poi come valore modale. Questo comportamento può essere combinato con G93 e G94.

FCUB Profilo velocità vettoriale cubico: I valori di F programmati con validità blocco-blocco vengono collegati tramite una spline, prendendo come riferimento il punto finale del blocco. La Spline inizia e finisce tangenzialmente all'impostazione dell'avanzamento precedente o successivo ed agisce con G93 e G94. Se in un blocco manca l'indirizzo F, viene utilizzato l'ultimo valore di F programmato.

F=FPO… Profilo velocità vettoriale tramite polinomi: L'indirizzo F identifica la caratteristica dell'avanzamento con polinomio dal valore attuale fino a fine blocco. Il valore finale vale pertanto come valore modale.

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 535

Ottimizzazione dell'avanzamento con tratti di percorso curvilinei Il polinomio di avanzamento F=FPO e la spline di avanzamento FCUB devono essere sempre utilizzati con la velocità di taglio costante CFC. In questo modo è possibile generare un profilo di avanzamento ed accelerazione continua.

Esempio: Profili di avanzamento diversi In questo esempio vengono programmati e rappresentati graficamente diverse tipologie di profili di avanzamento.

Codice di programma Commento

N1 F1000 FNORM G1 X8 G91 G64 ; Profilo di avanzamento costante, impostazione in quote incrementali

N2 F2000 X7 ; Variazione discontinua della velocità di riferimento

N3 F=FPO(4000, 6000, -4000) ; Profilo di avanzamento tramite polinomio con avanzamento 4000 alla fine del blocco

N4 X6 ; L'avanzamento polinomio 4000 ha validità di valore modale

N5 F3000 FLIN X5 ; Profilo di avanzamento lineare

N6 F2000 X8 ; Profilo di avanzamento lineare

N7 X5 L'avanzamento lineare ha validità di valore modale

N8 F1000 FNORM X5 ; Profilo di avanzamento costante con variazione discontinua dell'accelerazione

N9 F1400 FCUB X8 ; Tutti i valori F seguenti, programmati blocco a blocco, vengono collegati a spline

N10 F2200 X6

N11 F3900 X7

N12 F4600 X7

N13 F4900 X5 ; Disattivazione del profilo di spline

N14 FNORM X5

N15 X20

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro 536 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

FNORM L'indirizzo F indica l'avanzamento lineare come valore costante secondo DIN 66025. Ulteriori indicazioni si possono trovare nel manuale di programmazione "Concetti fondamentali".

FLIN La caratteristica dell'avanzamento viene impostata dal valore di avanzamento attuale al valore di F programmata, linearmente fino alla fine del blocco. Esempio: N30 F1400 FLIN X50

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 537

FCUB L'avanzamento viene impostato con caratteristica cubica dal valore di avanzamento attuale al valore di F programmato fino a fine blocco. Il controllo numerico collega tramite spline tutti i valori di avanzamento programmati con validità blocco-blocco ed FCUB attiva. I valori di avanzamento, in questo caso, servono come punti di supporto per il calcolo dell'interpolazione spline. Esempio: N50 F1400 FCUB X50 N60 F2000 X47 N70 F3800 X52

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro 538 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

F=FPO(…,…,…) La caratteristica dell'avanzamento viene programmata direttamente con un polinomio. L'impostazione dei coefficienti polinomici avviene analogamente all'interpolazione polinomica. Esempio: F=FPO(endfeed, quadf, cubf) endfeed, quadf e cubf sono variabili definite in precedenza. endfeed: avanzamento a fine blocco quadf: coefficiente polinomico quadratico cubf: coefficiente polinomico cubico

Con FCUB attiva, la spline collega tangenzialmente ad inizio e a fine blocco la caratteristica definita tramite FPO.

Comportamento sulla traiettoria 8.2 Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 539

Condizioni marginali Le funzioni per la programmazione del movimento sul profilo sono valide indipendentemente dalla caratteristica dell'avanzamento programmata. La caratteristica dell'avanzamento programmabile è sempre assoluta, indipendentemente da G90 oppure G91. L’andamento dell’avanzamento FLIN e FCUB agisce con G93 e G94. FLIN e FCUB non agiscono con G95, G96/G961 e G97/G971.

Compressore attivo COMPON Con compressore attivo COMPON, per la raccolta di più blocchi in un segmento spline vale quanto segue: FNORM: Per il segmento spline vale la word F dell'ultimo blocco di appartenenza. FLIN: Per il segmento spline vale la parola F dell'ultimo blocco di appartenenza. Il valore di F programmato vale fino al termine del segmento; l'accostamento viene poi effettuato linearmente. FCUB: La spline di avanzamento generata, rispetto ai punti finali programmati, ha uno scostamento max. pari al valore definito nel dato macchina C $MC_COMPRESS_VELO_TOL. F=FPO(…,…,…) Questi blocchi non vengono compressi.

Comportamento sulla traiettoria 8.3 Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE)

Preparazione del lavoro 540 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.3 8.3 Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE)

Funzione A seconda del tipo, il controllo numerico dispone di una determinata quantità di memoria di preelaborazione, che memorizza i blocchi preparati prima della loro esecuzione per poi emetterli come sequenze rapide di blocchi nel corso della produzione. In tal modo è possibile eseguire percorsi brevi a grande velocità. Se il tempo residuo del controllo lo permette, la memoria di preelaborazione viene normalmente riempita.

Identificazione della fase di lavorazione La fase di lavorazione che deve essere memorizzata temporaneamente nella memoria di preelaborazione viene identificata nel partprogram all'inizio con STOPFIFO e alla fine con STARTFIFO. L'elaborazione dei blocchi preparati e memorizzati temporaneamente inizia solo dopo il comando STARTFIFO o quando la memoria di preelaborazione è piena.

Comportamento sulla traiettoria 8.3 Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 541

Controllo automatico della memoria di preelaborazione Il controllo automatico della memoria di preelaborazione viene richiamato con il comando FIFOCTRL. FIFOCTRL agisce in un primo tempo esattamente come STOPFIFO. Ad ogni programmazione si attende che la memoria di preelaborazione sia piena, quindi inizia la lavorazione. Diverso è invece il comportamento in caso di funzionamento a vuoto della memoria di preelaborazione: con FIFOCTRL, a partire da un livello di riempimento di 2/3 la velocità vettoriale viene ridotta progressivamente allo scopo di evitare un funzionamento a vuoto completo e una frenatura fino all'arresto. Arresto dell'avanzamento La preparazione e memorizzazione temporanea dei blocchi vengono interrotte se nel blocco è programmato il comando STOPRE. Il blocco successivo viene eseguito solo quando tutti i blocchi già preparati e memorizzati sono stati completamenti eseguiti. Il blocco precedente viene arrestato con arresto preciso (come G9).

Sintassi

Tabella 8- 1 Identificazione della fase di lavorazione:

STOPFIFO

...

STARTFIFO

Tabella 8- 2 Controllo automatico della memoria di preelaborazione:

...

FIFOCTRL

...

Tabella 8- 3 Stop preelaborazione:

...

STOPRE

...

Nota I comandi STOPFIFO, STARTFIFO, FIFOCTRL e STOPRE devono essere programmati in un blocco a sé stante.

Comportamento sulla traiettoria 8.3 Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE)

Preparazione del lavoro 542 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato STOPFIFO: STOPFIFO identifica l'inizio di una fase di lavorazione che deve essere

memorizzata temporaneamente nella memoria di preelaborazione. Con STOPFIFO la lavorazione viene interrotta e la memoria di preelaborazione viene riempita fino a quando: • viene riconosciuto STARTFIFO o STOPRE

oppure • la memoria di preelaborazione è piena

oppure • viene raggiunta la fine del programma.

STARTFIFO: Con STARTFIFO inizia l'elaborazione rapida della fase di lavorazione; parallelamente avviene il riempimento della memoria di preelaborazione

FIFOCTRL: Attivazione del controllo automatico della memoria di preelaborazione STOPRE: Stop preelaborazione

Nota Il riempimento della memoria di preelaborazione non viene eseguito o viene interrotto se la fase di lavorazione contiene comandi che forzano un funzionamento non bufferizzato (ricerca del punto di riferimento, funzioni di misura, ...).

Nota Nell'accesso ai dati di stato della macchina ($SA...), il controllo numerico genera un arresto interno della preelaborazione.

CAUTELA Evitare di programmare STOPRE quando sono attive la correzione utensile e interpolazioni spline, altrimenti vengono interrotte sequenze connesse di blocchi.

Esempio: Stop preelaborazione Codice di programma Commento

...

N30 MEAW=1 G1 F1000 X100 Y100 Z50 ; Blocco di misura con tastatore di misura sul primo ingresso di misura ed interpolazione lineare.

N40 STOPRE ; Arresto preelaborazione.

...

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 543

8.4 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Funzione Interruzioni condizionate di sezioni di programma vengono definite Settori Stop Delay, nell'ambito di determinate sezioni di programma non sono consentite interruzioni e nemmeno modifiche dell'avanzamento. In sostanza, le brevi fasi di programma che servono ad es. alla creazione di un filetto devono essere protette da quasi tutti gli eventi di stop. Un eventuale stop agisce solo al termine di questa sezione di programma.

Sintassi DELAYFSTON DELAYFSTOF

Le istruzioni vengono programmate in una riga a sé stante del partprogram. Entrambe le istruzioni sono solo consentite in un partprogram e non in azioni sincrone.

Significato DELAYFSTON Definizione dell'inizio di un settore nel quale deve avvenire uno stop

"leggero" fino a quando non viene raggiunta la fine del settore Stop Delay.

DELAYFSTOF Definizione della fine di un settore Stop Delay

Nota Con il dato macchina MD11550 $MN_STOP_MODE_MASK Bit 0 = 0 (Default) viene definito implicitamente un settore Stop-Delay quando è attivo G331/G332 ed è programmato un movimento vettoriale o G4 .

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro 544 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Eventi di stop Nel settore Stop Delay vengono ignorate le variazioni dell'avanzamento e dell'arresto dell'avanzamento. Tali variazioni sono attive soltanto dopo il settore Stop Delay. Gli eventi di stop vengono distinti in: eventi di stop “leggeri” Reazione: ritardata eventi di stop “duri” Reazione: immediata

Scelta di alcuni eventi di stop, che eseguono almeno uno stop di breve durata:

Nome dell’evento Reazione Parametro di interruzione RESET immediata NST: DB21,… DBX7.7 e DB11, … DBX20.7 PROG_END Allarme 16954 Prog.NC: M30 INTERRUPT ritardata NST: FC-9 e ASUP DB10, ... DBB1 SINGLEBLOCKSTOP delayed Funzionamento in blocco singolo nel settore Stop Delay:

l’NC si arresta alla fine del 1° blocco al di fuori del settore Stop Delay. Nel blocco singolo, già prima che venga attivato il settore Stop Delay: NST: "NC-Stop a fine blocco" DB21, ... DBX7.2

STOPPROG delayed NST: DB21,… DBX7.3 e DB11, … DBX20.5 PROG_STOP Allarme 16954 Prog.NC: M0 e M1 WAITM Allarme 16954 Prog.NC: WAITM WAITE Allarme 16954 Prog.NC: WAITE STOP_ALARM immediata Allarme: progettazione allarme STOPBYALARM RETREAT_MOVE_THREAD Allarme 16954 Prog.NC: allarme 16954 con LFON

(Stop & Fastlift in G33 non possibile) WAITMC Allarme 16954 Prog.NC: WAITMC NEWCONF_PREP_STOP Allarme 16954 Prog.NC: NEWCONF SYSTEM_SHUTDOWN immediate System-Shutdown con 840Di ESR delayed Funzione ampliata di arresto e svincolo EXT_ZERO_POINT delayed Spostamento origine esterno STOPRUN Allarme 16955 BTSS: PI "_N_FINDST" STOPRUN

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 545

Descrizione delle reazioni immediata (evento di stop “duro”) Stop immediato anche nel settore Stop

Delay ritardata (evento di stop “leggero”) Lo stop (anche breve) avviene solo dopo il

settore Stop Delay. Allarme 16954 Il programma viene interrotto in quanto nel

settore di Stop Delay sono state utilizzate istruzioni non consentite.

Allarme 16955 Il programma viene proseguito, nel settore Stop Delay ha avuto luogo un’azione non consentita.

Allarme 16957 Il settore di programma (settore Stop Delay), riportato tra parentesi con DELAYFSTON e DELAYFSTOF, non ha potuto essere attivato. In questo modo ogni stop agisce immediatamente nel settore e non viene ritardato.

Per una sintesi di altre reazioni agli eventi che provocano lo stop, vedere: Bibliografia: Manuale di guida alle funzioni, Funzioni di base; BAG, canale, funzionamento del programma, (K1), capitolo "Influenza ed effetto sugli eventi di stop".

Esempio: Annidamento dei settori Stop Delay in due livelli di programma Codice di programma Commento

N10010 DELAYFSTON() ; Blocchi con N10xxx livello di programma 1.

N10020 R1 = R1 + 1

N10030 G4 F1 ; Inizio del settore Stop Delay.

...

N10040 Sottoprogramma2

...

... ; Interpretazione del sottoprogramma 2.

N20010 DELAYFSTON() ; Senza effetto, inizio ripetuto, livello 2.

...

N20020 DELAYFSTOF() ; Senza effetto, fine nell'altro livello.

N20030 RET

N10050 DELAYFSTOF() ; Fine del settore Stop Delay nello stesso� livello.

...

N10060 R2 = R2 + 2

N10070 G4 F1 ; Fine del settore Stop Delay. Gli stop da ora hanno efficacia immediata.

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro 546 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Estratto di programma In un loop viene ripetuto il seguente blocco di programma:

Dalla figura risulta chiaro che l'utente ha premuto lo "Stop" nel settore Stop Delay e l'NC inizia la procedura di frenata al di fuori del settore stesso, cioè nel blocco N100. In questo modo l’NC si arresta nel settore precedente a N100. Codice di programma Commento

...

N99 MY_LOOP:

N100 G0 Z200

N200 G0 X0 Z200

N300 DELAYFSTON()

N400 G33 Z5 K2 M3 S1000

N500 G33 Z0 X5 K3

N600 G0 X100

N700 DELAYFSTOF()

N800 GOTOB MY_LOOP

Per dettagli sulla ricerca blocchi del tipo SERUPRO e gli avanzamenti relativi a G331/G332 durante la maschiatura senza utensile compensato vedere: Bibliografia: Manuale di guida alle funzioni, Funzioni di base; BAG, canale, funzionamento del programma (K1) Manuale di guida alle funzioni, Funzioni di base; Avanzamenti (V1)

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 547

Vantaggi del settore Stop Delay Una sezione di programma è stata elaborata senza interruzione di velocità. Se l’utente interrompe il programma con RESET dopo averlo sospeso, il blocco di programma interrotto si trova dopo il settore protetto. Questo blocco di programma è adatto quindi come destinazione di ricerca per una successiva ricerca blocco. Finché un settore Stop Delay viene elaborato, i seguenti assi dell’elaborazione principale non vengono arrestati: ● assi di comando e ● assi di posizionamento gestiti con POSA L’istruzione di programma G4 è consentita nel settore Stop Delay tuttavia ci sono altre istruzioni non consentite che provocano un arresto temporaneo (es. WAITM). G4, come anche un movimento vettoriale, attiva il settore Stop Delay e mantiene quindi la sua efficacia. Esempio: Interventi sull’avanzamento Se l’override viene ridotto al 6% prima del settore Stop Delay, esso resta valido anche nel settore Stop Delay. Se l’override viene ridotto dal 100% al 6% nel settore Stop Delay, quest’ultimo viene eseguito fino alla fine al 100% e successivamente il movimento prosegue al 6%. Il blocco avanzamento non è efficace nel settore Stop Delay e viene attivato solo all’uscita del settore stesso.

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro 548 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sovrapposizione/annidamento Se due settori Stop Delay si sovrappongono, uno da un’istruzione di programma e l’altro dal dato macchina DM 11550: STOP_MODE_MASK, viene formato il settore Stop Delay più grande possibile. I seguenti punti regolano la correlazione delle istruzioni di programma DELAYFSTON e DELAYFSTOF con annidamenti e fine programma: 1. con la fine del sottoprogramma, nel quale è stato richiamato DELAYFSTON viene attivato

implicitamente DELAYFSTOF. 2. DELAYFSTON Il settore Stop Delay non ha alcun effetto. 3. se il sottoprogramma 1 richiama il sottoprogramma 2 in un settore Stop-Delay, tutto il

sottoprogramma 2 è un settore Stop Delay. in particolare DELAYFSTOF nel sottoprogramma 2 non ha alcun effetto.

Nota REPOSA è un fine sottoprogramma e DELAYFSTON viene in ogni caso disattivato. Se si verifica un evento di stop “duro“ nel settore Stop Delay, quest’ultimo viene completamente disattivato! Se in questa sezione di programma si verifica un ulteriore (qualsiasi) stop, avviene un arresto immediato. Solo una nuova programmazione (nuovo DELAYFSTON) consente di riattivare un nuovo settore Stop Delay. Se viene premuto il tasto di stop prima del settore Stop Delay e l’NCK deve entrare nel settore Stop Delay per frenare, allora l’NCK frena nel settore Stop Delay e lo stesso resta disattivato! Se ad un settore Stop Delay si accede con override 0%, il settore Stop Delay non viene accettato! Questo vale per tutti gli eventi di stop “dolci”. Con STOPALL è possibile frenare nel settore Stop Delay. Con STOPALL vengono però attivati immediatamente tutti gli eventi di stop che finora erano stati ritardati.

Comportamento sulla traiettoria 8.4 Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 549

Variabili di sistema Un settore Stop Delay può essere riconosciuto nel partprogram con $P_DELAYFST. Se il bit 0 della variabile di sistema è settato a 1, l’elaborazione del partprogram in questo momento si trova in un settore Stop Delay. Un settore Stop Delay può essere riconosciuto nelle azioni sincrone con $AC_DELAYFST. Se il bit 0 della variabile di sistema è settato a 1, l’elaborazione del partprogram in questo momento si trova in un settore Stop Delay.

Compatibilità La preimpostazione del dato macchinaDM 11550: STOP_MODE_MASK Bit 0 = 0 comporta implicitamente un settore Stop Delay quando vengono programmati codici G del gruppo G331/G332 oppure un movimento vettoriale o G4. Il bit 0 = 1 consente uno stop quando vengono programmati codici G del gruppo G331/G332 oppure un movimento vettoriale o G4 ((comportamento fino al SW 6). Per la definizione di un settore Stop Delay devono essere utilizzate le istruzioni DELAYFSTON/DELAYFSTOF.

Comportamento sulla traiettoria 8.5 Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK)

Preparazione del lavoro 550 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.5 8.5 Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK)

Funzione Per determinate situazioni meccaniche complicate della macchina, è necessario impedire la ricerca blocco SERUPRO. Con un puntatore di interruzione programmabile, si può impostare una possibilità di accesso in fase di “ricerca del punto di interruzione” prima della posizione senza possibilità di ricerca. Si possono definire anche settori nel partprogram senza possibilità di ricerca nei quali l’NCK non può ancora rientrare. Con l'interruzione del programma, l'NCK si ricorda l'ultimo blocco elaborato che può essere ricercato tramite la superficie operativa dell'HMI.

Sintassi IPTRLOCK IPTRUNLOCK

I comandi si trovano in un'unica riga di partprogram e consentono un puntatore di interruzione programmabile

Significato IPTRLOCK Inizio della sezione di programma senza possibilità di ricerca IPTRUNLOCK Fine della sezione di programma senza possibilità di ricerca

Entrambe le istruzioni sono solo consentite in un partprogram e non in azioni sincrone.

Comportamento sulla traiettoria 8.5 Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 551

Esempio Annidamenti di sezioni di programma senza possibilità di ricerca in due livelli di programma con IPTRUNLOCK implicito. IPTRUNLOCK implicito nel sottoprogramma 1 conclude il settore senza possibilità di ricerca. Codice di programma Commento

N10010 IPTRLOCK()

N10020 R1 = R1 + 1

N10030 G4 F1 ; Blocco di interruzione che inizia la fase di programma senza possibilità di ricerca.

...

N10040 Sottoprogramma2

... ; Interpretazione del sottoprogramma 2.

N20010 IPTRLOCK () ; Senza effetto, inizio ripetuto.

...

N20020 IPTRUNLOCK () ; Senza effetto, fine nell'altro livello.

N20030 RET

...

N10060 R2 = R2 + 2

N10070 RET ; Fine della fase di programma senza possibilità di ricerca.

N100 G4 F2 ; Il programma principale viene� proseguito.

Una interruzione a 100 restituisce nuovamente il puntatore di interruzione.

Trovare e rilevare i settori senza possibilità di ricerca Le sezioni di programma senza possibilità di ricerca vengono identificate con le istruzioni IPTRLOCK e IPTRUNLOCK. L’istruzione IPTRLOCK congela il puntatore di interruzione ad un blocco singolo (SBL1) eseguibile nel cicli di elaborazione principale. Questo blocco viene denominato di seguito come blocco di arresto. Se dopo IPTRLOCK si verifica un’interruzione del programma, tramite la superficie HMI si può ricercare il blocco di arresto citato in precedenza.

Comportamento sulla traiettoria 8.5 Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK)

Preparazione del lavoro 552 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ritornare nuovamente al blocco attuale Il puntatore di interruzione viene settato con IPTRUNLOCK sul punto di interruzione del blocco attuale per la successiva sezione di programma. Dopo aver trovato una destinazione di ricerca, con lo stesso blocco di arresto si può ripetere una nuova destinazione di ricerca. Un puntatore di interruzione editato dall’utilizzatore, deve essere eliminato dalla superficie operativa HMI.

Regole per gli annidamenti I seguenti punti regolano la correlazione delle istruzioni di programma IPTRLOCK e IPTRLOCK con annidamenti e fine programma: 1. con la fine del sottoprogramma, nel quale è stato richiamato IPTRLOCK viene attivato

implicitamente IPTRUNLOCK. 2. IPTRLOCK non ha alcun effetto in un settore senza possibilità di ricerca. 3. Se il sottoprogramma1 richiama il sottoprogramma2 in un settore senza possibilità di

ricerca, tutto il sottoprogramma2 resta senza possibilità di ricerca. in particolare, IPTRUNLOCK nel sottoprogramma 2 non ha alcun effetto.

Per ulteriori informazioni vedere /FB1/ Manuale delle funzioni di base; BAG, canale, funzionamento del programma (K1).

Variabile di sistema Un settore senza possibilità di ricerca può essere riconosciuto nel partprogram con $P_IPTRLOCK.

Puntatore di interruzione automatico La funzione „puntatore di interruzione automatico” definisce automaticamente una tipologia di accoppiamento, definita precedentemente, come “senza possibilità di ricerca”. Tramite dato macchina, per ● cambio elettronico con EGON ● accoppiamento assiale tramite valore di riferimento LEADON viene attivato il puntatore di interruzione automatico. Se i puntatori di interruzione programmato ed automatico attivabile tramite dato macchina si sovrappongono, allora il settore senza possibilità di ricerca, viene formato più grande possibile.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 553

8.6 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Funzione Se nel corso della lavorazione il programma viene interrotto e l'utensile staccato (per es. a causa della rottura dell'utensile o perché è necessaria una misura), è possibile il riaccostamento al profilo da programma su un punto scelto. Il comando REPOS ha azione di ritorno al sottoprogramma (ad es. tramite M17). I blocchi successivi della routine di interrupt non vengono più eseguiti.

Per l'interruzione della sequenza di programma vedere anche la sezione "Programmazione NC flessibile", capitolo "Routine di interrupt" in questo manuale di programmazione.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Preparazione del lavoro 554 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi REPOSA RMI DISPR=… REPOSA RMB REPOSA RME REPOSA RMN REPOSL RMI DISPR=… REPOSL RMB REPOSL RME REPOSL RMN REPOSQ RMI DISPR=… DISR=… REPOSQ RMB DISR=… REPOSQ RME DISR=… REPOSQA DISR=… REPOSH RMI DISPR=… DISR=… REPOSH RMB DISR=… REPOSH RME DISR=… REPOSHA DISR=…

Significato Percorso di accostamento REPOSA Accostamento su una retta con tutti gli assi REPOSL Accostamento su una retta REPOSQ DISR=… Accostamento con un quarto di cerchio con raggio DISR REPOSQA DISR=… Accostamento con tutti gli assi con un quarto di cerchio con

raggio DISR REPOSH DISR=… Accostamento su un semicerchio con diametro DISR REPOSHA DISR=… Accostamento con tutti gli assi con un semicerchio con raggio

DISR Punto di riposizionamento RMI Accostamento al punto di interruzione RMI DISPR=… Punto di ingresso a distanza DISPR in mm/inch prima del punto

di interruzione RMB Accostamento al punto di inizio blocco RME Accostamento al punto di fine blocco RME DISPR=… Accostamento al punto di fine blocco, con distanza DISPR dal

punto finale RMN Accostamento al successivo punto vettoriale A0 B0 C0 Assi con cui deve avvenire l'accostamento

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 555

Esempio: Avvicinamento al punto di riaccostamento su una retta, REPOSA, REPOSL L'utensile si avvicina al punto di riaccostamento direttamente con una retta. Con REPOSA vengono mossi automaticamente tutti gli assi. Con REPOSL è invece possibile impostare gli assi da muovere. Esempio: REPOSL RMI DISPR=6 F400

oppure REPOSA RMI DISPR=6 F400

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Preparazione del lavoro 556 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: Avvicinamento al punto di riaccostamento in un quarto di cerchio, REPOSQ, REPOSQA L'utensile raggiunge il punto di riaccostamento compiendo un quarto di cerchio con raggio DISR=... Il controllo calcola automaticamente il punto intermedio necessario fra punto di inizio e punto di riaccostamento. Esempio: REPOSQ RMI DISR=10 F400

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 557

Esempio: Accostamento all'utensile nel quarto di cerchio, REPOSH, REPOSHA L'utensile raggiunge il punto di riaccostamento compiendo un semicerchio con diametro DISR=.... Il controllo calcola automaticamente il punto intermedio necessario fra punto di inizio e punto di riaccostamento. Esempio: REPOSH RMI DISR=20 F400

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Preparazione del lavoro 558 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Definizione del punto di riaccostamento (non per accostamento SERUPRO con RMN) In relazione al blocco NC in cui è stato interrotto il programma è possibile scegliere fra tre diversi punti di riaccostamento: ● RMI, punto di interruzione ● RMB, punto di inizio blocco o ultimo punto finale ● RME, punto di fine blocco

Con RMI DISPR=... oppure con RME DISPR=... si può definire un punto di riaccostamento posto prima del punto di interruzione o della fine blocco. Con DISPR=... si può descrivere il percorso del profilo in mm/inch sul quale si trova il punto di riaccostamento prima del punto di interruzione o del punto finale. Questo punto, anche per valori più grandi, può trovarsi al massimo nel punto di inizio blocco. Se non viene programmato unDISPR=..., vale DISPR=0 e quindi il punto di interruzione (per RMI) oppure il punto di fine blocco (per RME).

Segno di DISPR Il segno di DISPR viene considerato. Se il segno è positivo, il comportamento è come in precedenza. Se il segno è negativo, la ripresa avviene monte del punto di interruzione o con RMB a monte del punto di partenza. La distanza tra punto di interruzione e punto di ripresa si ricava dal valore di DISPR. Questo punto può trovarsi al massimo sul punto di fine blocco anche per valori più alti.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 559

Esempio applicativo: Con un sensore si individua l'accostamento a una staffa di serraggio. Viene emesso un ASUP con cui si aggira la staffa di serraggio. Infine, con DISPR negativo viene eseguito il riposizionamento a monte della staffa di serraggio e il programma viene proseguito.

Accostamento SERUPRO con RMN Se si verifica un’interruzione della lavorazione in un punto qualsiasi, con SERUPRO avviene l’accostamento al punto di interruzione con RMN per la via più breve per poter eseguire il percorso residuo. A questo scopo l’utilizzatore deve startare una procedura SERUPRO sul blocco di interruzione e posizionare gli assi in JOG prima della posizione danneggiata del blocco di destinazione.

Nota SERUPRO Per SERUPRO RMI e RMB sono identici. RMN non si può utilizzare solo con SERUPRO ma in modo generico.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Preparazione del lavoro 560 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Accostamento sul punto vettoriale successivo RMN Nel punto di interpretazione di REPOSA dopo un’interruzione, il blocco di riaccostamento con RMN non viene ripetuto completamente ma viene solo eseguito il percorso residuo. Viene accostato il punto vettoriale successivo al blocco di interruzione.

Stato per il modo REPOS valido Il modo REPOS valido del blocco interrotto può essere letto tramite azioni sincrone con la variabile di sistema $AC_REPOS_PATH_MODE. 0: Accostamento non definito 1 RMB: accostamento all’inizio 2 RMI: accostamento nel punto di interruzione 3 RME: accostamento al punto finale del blocco 4 RMN: accostamento al punto vettoriale successivo al blocco di interruzione.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RM

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 561

Accostamento con nuovo utensile Se l'esecuzione del programma è stata interrotta per la rottura di un utensile, programmando il nuovo numero D il programma viene proseguito a partire dal punto di riaccostamento con i valori modificati della correzione utensile. Se i valori della correzione utensile sono stati modificati può accadere che il punto di interruzione non possa più essere riaccostato. In questo caso viene riaccostato il punto del nuovo profilo che si trova il più vicino possibile al punto di interruzione (modificato eventualmente del valore DISPR).

Accostamento al profilo Il movimento con cui l'utensile si riaccosta al profilo può essere programmato. Per gli indirizzi degli assi da muovere impostare il valore zero. Con le istruzioni REPOSA, REPOSQA e REPOSHA vengono riposizionati automaticamente tutti gli assi. Non è necessario fare alcuna impostazione per gli assi. Programmando REPOSL, REPOSQ e REPOSH gli assi geometrici si muovono automaticamente, anche senza impostazione nel comando. Tutti gli altri assi invece devono essere impostati nel comando.

Comportamento sulla traiettoria 8.6 Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)

Preparazione del lavoro 562 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Per i movimenti circolari REPOSH e REPOSQ vale quanto segue: Il cerchio viene eseguito sul piano di lavoro impostato G17 ... G19. Se nel blocco di accostamento viene impostato il terzo asse geometrico (direzione incremento), il punto di riaccostamento viene raggiunto in forma elicoidale, nel caso in cui la posizione dell'utensile e la posizione programmata in direzione dell'incremento non coincidano. Nei seguenti casi viene automaticamente commutato in accostamento lineare REPOSL: ● non è stato impostato alcun valore per DISR. ● manca una direzione di accostamento definita (interruzione programma in un blocco privo

di informazione di movimento). ● la direzione di accostamento è perpendicolare al piano di lavoro attuale.

Comportamento sulla traiettoria 8.7 Influenza della gestione dei movimenti

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 563

8.7 8.7 Influenza della gestione dei movimenti

8.7.1 Correzione percentuale dello strappo (JERKLIM)

Funzione Nelle fasi di programma critiche può essere necessario mantenere lo strappo al di sotto del valore massimo possibile, per ridurre ad esempio le sollecitazioni della macchina. Deve essere abilitato il modo di accelerazione SOFT. La funzione agisce solo per gli assi di contornitura.

Sintassi JERKLIM[<Asse>]=<Valore>

Significato JERKLIM Comando per la correzione dello strappo <Asse> Asse macchina il cui valore limite dello strappo deve essere adattato.

Variazione in percentuale dello strappo massimo consentito riferita al valore impostato nel dato macchina per l'asse. Campo dei valori: 1 ... 200

<Valore>

Il valore 100 non ha nessun effetto sullo strappo. Questa impostazione è attiva dopo il reset e l'avvio del partprogram.

Esempio Nei modi operativi AUTOMATICO il valore limite dello strappo per l'asse programmato viene limitato al blocco percentuale indicato del valore limite dello strappo registrato nel dato macchina: N60 JERKLIM[X]=75

Significa: La slitta in direzione X deve essere accelerata/rallentata solo con il 75% dello strappo consentito per l'asse.

Comportamento sulla traiettoria 8.7 Influenza della gestione dei movimenti

Preparazione del lavoro 564 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.7.2 Correzione percentuale della velocità (VELOLIM)

Funzione Nelle fasi di programma critiche può essere necessario mantenere la velocità al di sotto del valore massimo possibile, per ridurre ad esempio le sollecitazioni della macchina o per migliorare la qualità della lavorazione. La funzione agisce solo sugli assi di posizionamento e di contornitura.

Sintassi VELOLIM[<Asse>]=<Valore>

Significato VELOLIM Comando per la correzione della velocità <Asse> Asse macchina il cui valore limite della velocità deve essere adattato.

Variazione in percentuale della velocità massima consentita riferita al valore impostato nel dato macchina per l'asse. Campo dei valori: 1 ... 100

<Valore>

Il valore 100 non ha nessun effetto sulla velocità. Questa impostazione è attiva dopo il reset e l'avvio del partprogram.

Esempio Nei modi operativi AUTOMATICO il valore limite della velocità per l'asse programmato viene limitato al blocco percentuale indicato del valore limite della velocità registrato nel dato macchina: N70 VELOLIM[X]=80 Significa: La slitta in direzione X deve essere spostata solo con l'80% della velocità consentita per l'asse.

Comportamento sulla traiettoria 8.7 Influenza della gestione dei movimenti

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 565

8.7.3 Esempio di programma per JERKLIM e VELOLIM Il seguente programma rappresenta un esempio di applicazione per la limitazione percentuale di strappo e velocità: Codice di programma Commento

N1000 G0 X0 Y0 F10000 SOFT G64

N1100 G1 X20 RNDM=5 ACC[X]=20

ACC[Y]=30

N1200 G1 Y20 VELOLIM[X]=5 ; La slitta in direzione X deve essere spostata solo con max. il 5% della velocità consentita per l'asse.

JERKLIM[Y]=200 ; La slitta in direzione Y può essere accelerata/rallentata solo con max. il 200% dello strappo consentito per l'asse.

N1300 G1 X0 JERKLIM[X]=2 ; La slitta in direzione X deve essere accelerata/rallentata solo con max. il 2% dello strappo consentito per l'asse.

N1400 G1 Y0

M30

Comportamento sulla traiettoria 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Preparazione del lavoro 566 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

8.8 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Funzione Con i comandi CTOL, OTOL e ATOL è possibile adattare nel programma NC le tolleranze di lavorazione definite tramite dati macchina e dati setting per le funzioni del compressore (COMPON, COMPCURV, COMPCAD), i tipi di movimento raccordato G642, G643, G645, OST e lo spianamento dell'orientamento ORISON. I valori programmati valgono fino alla successiva programmazione oppure finché non vengono cancellati mediante assegnazione di un valore negativo. Inoltre vengono cancellati con fine programma, reset di canale, BAG-reset, NCK-reset (avvio a caldo) e power on (avvio a freddo). Dopo la cancellazione valgono nuovamente i valori dei dati macchina e dei dati setting.

Sintassi CTOL=<valore> OTOL=<valore> ATOL[<asse>]=<valore>

Significato

Comando per la programmazione della tolleranza del profilo CTOL è valido per: • tutte le funzioni del compressore • tutti i tipi di movimento raccordato tranne G641 e G644

Il valore per la tolleranza del profilo è un'indicazione di lunghezza.Tipo: REAL

CTOL

<valore>:

Unità: Inch/mm (a seconda dell'impostazione attuale dell'indicazione di misura)

Comando per la programmazione della tolleranza dell'orientamento OTOL è valido per: • tutte le funzioni del compressore • spianamento dell'orientamento ORISON • tutti i tipi di movimento raccordato tranne G641, G644, OSD

Il valore per la tolleranza dell'orientamento è un'indicazione di angolo. Tipo: REAL

OTOL

<valore>:

Unità: gradi

Comportamento sulla traiettoria 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 567

Comando per la programmazione di una tolleranza specifica per asse ATOL è valido per: • tutte le funzioni del compressore • Spianamento dell'orientamento ORISON • tutti i tipi di movimento raccordato tranne G641, G644, OSD

<asse>: Nome dell'asse per il quale deve essere programmata una tolleranza asse Il valore per la tolleranza asse è un'indicazione di lunghezza o di angolo a seconda del tipo di asse (lineare o rotante). Tipo: REAL

per assi lineari: Inch/mm (a seconda dell'impostazione attuale dell'indicazione di misura)

ATOL

<valore>:

Unità:

per assi rotanti: gradi

Nota CTOL e OTOL hanno la priorità su ATOL.

Condizioni marginali Frane in scala I frame in scala agiscono sulle tolleranze programmate esattamente come le posizioni assi, ovvero la tolleranza relativa resta uguale.

Comportamento sulla traiettoria 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Preparazione del lavoro 568 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Codice di programma Commento

COMPCAD G645 G1 F10000 ; Attivazione della funzione compressore COMPCAD.

X... Y... Z... ; Qui sono attivi i dati macchina e i dati setting.

X... Y... Z...

X... Y... Z...

CTOL=0.02 ; Da qui è attiva una tolleranza del profilo di 0,02 mm.

X... Y... Z...

X... Y... Z...

X... Y... Z...

ASCALE X0.25 Y0.25 Z0.25 ; Da qui è attiva una tolleranza del profilo di 0,005 mm.

X... Y... Z...

X... Y... Z...

X... Y... Z...

CTOL=–1 ; Da qui sono nuovamente attivi i dati macchina e i dati setting.

X... Y... Z...

X... Y... Z...

X... Y... Z...

Comportamento sulla traiettoria 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 569

Ulteriori informazioni Lettura dei valori di tolleranza Per ulteriori applicazioni oppure per scopi di diagnostica, le tolleranze valide attualmente per le funzioni del compressore (COMPON, COMPCURV, COMPCAD), i tipi di movimento raccordato G642, G643, G645, OST e lo spianamento dell'orientamento ORISON possono essere letti tramite variabili di sistema indipendentemente dal tipo di realizzazione. ● In azioni sincrone o con stop di preelaborazione blocchi nel partprogram tramite le

variabili di sistema: $AC_CTOL Tolleranza del profilo che era attiva durante la

preparazione del blocco attuale del ciclo principale. Nel caso in cui sia attiva una tolleranza del profilo, $AC_CTOL fornisce la radice della somma del quadrato delle tolleranze degli assi geometrici.

$AC_OTOL Tolleranza di orientamento che era attiva durante la preparazione del blocco attuale del ciclo principale. Nel caso in cui non sia attiva una tolleranza di orientamento, $AC_OTOL fornisce, durante una trasformazione di orientamento attiva, la radice della somma dei quadrati delle tolleranze degli assi di orientamento, altrimenti il valore "-1".

$AA_ATOL[<asse>] Tolleranza asse che era attiva durante la preparazione del blocco attuale del ciclo principale. Nel caso in cui sia attiva una tolleranza del profilo, $AA_ATOL[<asse_geometrico>] fornisce la tolleranza del profilo divisa per la radice del numero di assi geometrici. Nel caso in cui sia attiva una tolleranza di orientamento, AA_ATOL[<asse_orientamento>] fornisce la tolleranza dell'orientamento divisa per la radice del numero di assi di orientamento.

Comportamento sulla traiettoria 8.8 Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL)

Preparazione del lavoro 570 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Se non sono stati programmati valori di tolleranza, le variabili $A non sono sufficientemente differenziate per distinguere le eventuali tolleranze diverse delle singole funzioni in quanto possono nominare un solo valore. Tali casi possono verificarsi quando i dati macchina e i dati setting impostano tolleranze diverse per funzioni del compressore, movimento raccordato e spianamento dell'orientamento. Le variabili forniscono il valore maggiore che si produce nelle funzioni attive in quel momento. Se ad esempio sono attivi una funzione del compressore con tolleranza di orientamento 0,1° e uno spianamento dell'orientamento ORISON con 1°, la variabile $AC_OTOL restituisce il valore "1". Se lo spianamento dell'orientamento viene disattivato, si legge solo il valore "0.1".

● Senza stop di preelaborazione blocchi nel programma pezzo tramite le variabili di

sistema: $P_CTOL Tolleranza del profilo programmata $P_OTOL Tolleranza di orientamento programmata $PA_ATOL Tolleranza asse programmata

Nota Se non sono programmati valori di tolleranza, le variabili $P restituiscono il valore "-1".

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 571

Accoppiamenti assi 99.1 9.1 Trascinamento (TRAILON, TRAILOF)

Funzione Quando un asse master definito muove, gli assi trascinati (= assi slave) ad esso abbinati si muovono sui percorsi derivati dall'asse master tenendo conto di un fattore di accoppiamento. Asse master ed assi slave costituiscono insieme un gruppo di trascinamento. Campi di impiego ● Movimento di un asse attraverso un asse simulato. L'asse master è un asse simulato

mentre l'asse trascinato è un asse reale. In questo modo l'asse reale può essere mosso considerando il fattore di accoppiamento.

● Lavorazione sui due lati con 2 gruppi di trascinamento: 1. Asse master Y, asse trascinato V 2. Asse master Z, asse trascinato W

Sintassi TRAILON(<asse_slave>,<asse_master>,<fattore_accoppiamento>) TRAILOF(<asse_slave>,<asse_master>,<asse_master_2>) TRAILOF(<asse_slave>)

Accoppiamenti assi 9.1 Trascinamento (TRAILON, TRAILOF)

Preparazione del lavoro 572 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato

Comando per l'inserzione e definizione di un gruppo di trascinamento

TRAILON

Attivazione: modale <asse_slave> Parametro 1: Indicatore dell'asse slave

Nota: Un asse trascinato può essere anche master di ulteriori assi trascinati. In questo modo è possibile formare diversi gruppi di trascinamento.

<asse_master> Parametro 2: Indicatore dell'asse master Parametro 3: fattore di accoppiamento Il fattore di accoppiamento indica il rapporto desiderato tra i percorsi dell'asse trascinato e dell'asse master: <fattore_accoppiamento> = percorso dell'asse trascinato/percorso dell'asse master Tipo: REAL Preimpostazione: 1

<fattore_ accoppiamento>

L'impostazione di un valore negativo comporta un movimento opposto per asse master ed asse trascinato. Se nella programmazione non viene indicato il fattore di accoppiamento, viene considerato automaticamente il fattore 1.

Comando per la disinserzione di un gruppo di trascinamento. Attivazione: modale

TRAILOF

TRAILOF con 2 parametri disattiva soltanto l'accoppiamento all'asse master specificato: TRAILOF(<asse_slave>,<asse_master>)

Se un asse trascinato possiede 2 assi master, per la disattivazione dei due accoppiamenti può essere richiamato TRAILOF con 3 parametri: TRAILOF(<asse_slave>,<asse_master>,<asse_master_2>)

Lo stesso risultato si produce programmando TRAILOF senza definizione di un asse master: TRAILOF(<asse_slave>)

Accoppiamenti assi 9.1 Trascinamento (TRAILON, TRAILOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 573

Nota Il trascinamento avviene sempre nel sistema di coordinate base (SCB). Il numero dei gruppi di trascinamento attivabili contemporaneamente viene limitato solo dalle possibili combinazioni degli assi presenti nella macchina.

Esempio Il pezzo deve essere lavorato su due lati con la configurazione di assi qui rappresentata. Vengono formati 2 gruppi di trascinamento.

Codice di programma Commento

N100 TRAILON(V,Y) ; Attivazione del gruppo di trascinamento 1

N110 TRAILON(W,Z,–1) ; Attivazione del 2° gruppo di trascinamento. Fattore di accoppiamento negativo: l'asse trascinato si sposta ogni volta in direzione opposta come asse master.

N120 G0 Z10 ; Incremento dell'asse Z e W nella direzione dell'asse opposta.

N130 G0 Y20 ; Incremento dell'asse Y e V nella stessa direzione assiale.

N200 G1 Y22 V25 F200 ; Sovrapposizione di un movimento dipendente e indipendente dell'asse di trascinamento V.

TRAILOF(V,Y) ; Disattivazione del 1° gruppo di trascinamento.

TRAILOF(W,Z) ; Disattivazione del 2° gruppo di trascinamento.

Accoppiamenti assi 9.1 Trascinamento (TRAILON, TRAILOF)

Preparazione del lavoro 574 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Tipi di asse Un gruppo di trascinamento può essere composto da una combinazione qualsiasi di assi lineari e rotanti. Come asse master può essere definito anche un asse simulato. Assi trascinati Ad un asse trascinato possono essere assegnati al massimo 2 assi master. L'abbinamento avviene in diversi gruppi di trascinamento. Un asse trascinato può essere programmato con tutti i comandi di movimento disponibili (G0, G1, G2, G3, …). Oltre ai percorsi definiti in forma indipendente, l'asse di trascinamento esegue i percorsi derivati dai suoi assi master con i relativi fattori di accoppiamento. Limitazione dinamica La limitazione dinamica è in funzione del tipo di attivazione del gruppo di trascinamento: ● Attivazione nel programma pezzo

Se l'attivazione si verifica nel programma pezzo e tutti gli assi master sono attivi come assi di programma nel canale che si sta attivando, durante lo spostamento degli assi master la dinamica di tutti gli assi trascinati viene considerata in modo che nessun asse trascinato risulti sovraccaricato. Se l'attivazione si verifica nel programma pezzo con assi master che non sono attivi come assi di programma nel canale che si sta attivando ($AA_TYP ≠ 1), durante lo spostamento degli assi master la dinamica degli assi trascinati non viene considerata. In questo modi si può verificare un sovraccarico per gli assi trascinati con una dinamica minore di quella richiesta per l'accoppiamento.

● Attivazione in azione sincrona Se l'attivazione avviene in un'azione sincrona, durante lo spostamento degli assi master la dinamica degli assi trascinati non viene considerata. In questo modi si può verificare un sovraccarico per gli assi trascinati con una dinamica minore di quella richiesta per l'accoppiamento.

Accoppiamenti assi 9.1 Trascinamento (TRAILON, TRAILOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 575

CAUTELA

Se viene attivato un gruppo di trascinamento • in azioni sincrone • nel programma pezzo con assi master che non sono assi di programma nel canale

degli assi trascinati, ricade nella specifica responsabilità dell'utente/del costruttore della macchina di prevedere misure idonee ad evitare che i movimenti di spostamento dell'asse master provochino un sovraccarico degli assi trascinati.

Stato dell'accoppiamento Lo stato dell'accoppiamento di un asse può essere oggetto d'interrogazione con la variabile di sistema: $AA_COUP_ACT[<asse>] Valore Significato 0 Nessun accoppiamento attivo 8 Trascinamento attivo

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 576 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

9.2 9.2 Tabelle di curve (CTAB)

Funzione Tramite le tabelle delle curve è possibile programmare i rapporti di posizione e velocità fra due assi (asse master e slave). La definizione della tabella delle curve avviene nel programma pezzo.

Applicazione Le tabelle delle curve sostituiscono le camme meccaniche. la tabella costituisce la base per l'accoppiamento assiale al valore master, in quanto crea il rapporto funzionale fra asse master e asse slave: Il controllo, in base alla programmazione eseguita, calcola dalle posizioni reciproche dell'asse master e dell'asse slave un polinomio che corrisponde al profilo di camma.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 577

9.2.1 Definizione delle tabelle delle curve (CTABDEF, CATBEND)

Funzione Una tabella per una curva costituisce un partprogram o una sezione di partprogram, contrassegnato all'inizio con l'istruzione CTABDEF e alla fine dalla istruzione CTABEND. All'interno di questa sezione di programma pezzo alle singole posizioni dell'asse master vengono assegnate, mediante istruzioni di movimento, posizioni ben determinate dell'asse slave, che servono come supporto per il calcolo di un tratto curvilineo sotto forma di un polinomio al massimo di 5° grado.

Presupposti Per la definizione delle tabelle delle curve è necessario che la relativa programmazione MD riservi spazio di memoria (→ costruttore della macchina!).

Sintassi CTABDEF(<asse_slave>,<asse_master>,<n>,<periodicità>[,<percorso_ salvataggio>]) ... CTABEND

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 578 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato CTABDEF ( ) Inizio della definizione della tabella delle curve CTABEND Fine della definizione della tabella delle curve <asse_slave> Asse il cui movimento va calcolato tramite la tabella delle curve <asse_master> Asse che fornisce i valori master per il calcolo del movimento

dell'asse slave <n> Numero (ID) della tabella delle curve

Il numero assegnato a una tabella delle curve è univoco e indipendente dal percorso di salvataggio. Non possono trovarsi tabelle con lo stesso numero nella memoria NC statica e dinamica. Periodicità delle tabelle 0 La tabella non è periodica (viene eseguita una sola volta,

anche per gli assi rotanti) 1 Tabella periodica riferita all'asse master

<periodicità>

2 Tabella periodica riferita all'asse master e all'asse slave Definizione del percorso di salvataggio (opzionale) "SRAM" La tabella delle curve viene creata nella memoria NC

statica. "DRAM" La tabella delle curve viene creata nella memoria NC

dinamico.

<percorso_ salvataggio>

Nota: se per questo parametro non è programmato un valore, viene utilizzato il percorso di salvataggio standard impostato con MD20905 $MC_CTAB_DEFAULT_MEMORY_TYPE.

Nota Sovrascrittura Una tabella viene sovrascritta quando per la definizione ne viene impiegato il numero (<n>); (eccezione: la tabella delle curve è attiva in un accoppiamento assi o bloccata con CTABLOCK). Al momento della sovrascrittura non viene emessa alcuna segnalazione di avvertimento!

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 579

Esempi Esempio 1: sezione di programma come definizione della tabella delle curve Si intende impiegare una sezione inalterata di partprogram per la definizione di una tabella. Il comando di stop preelaborazione STOPRE che vi compare può restare e ridiventa attivo non appena la sezione di programma non viene più impiegata per la definizione della tabelle e CTABDEF e CTABEND sono state eliminate. Codice di programma Commento

CTABDEF(Y,X,1,1) ; Definizione di una tabella di curve.

IF NOT ($P_CTABDEF)

STOPRE

ENDIF

CTABEND

Esempio 2: definizione di una tabella di curve non periodica

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 580 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N100 CTABDEF(Y,X,3,0) ; Inizio della definizione di una tabella di curve non periodica con numero 3.

N110 X0 Y0 ; La istruzione di movimento, definisce i valori iniziali e il 1° punto di appoggio:

valore master: 0; valore slave: 0

N120 X20 Y0 ; 2° punto di appoggio:

valore master: 0…20, valore slave: valore iniziale...0

N130 X100 Y6 ; 3° punto di appoggio:

valore master: 20…100, valore slave: 0…6

N140 X150 Y6 ; 4° punto di appoggio:

valore master: 100…150, valore slave: 6…6

N150 X180 Y0 ; 5° punto di appoggio:

valore master: 150…180, valore slave: 6…0

N200 CTABEND ; Fine della definizione. La tabella delle curve viene generata nella propria rappresentazione interna come polinomio di max. 5° grado. Il calcolo del tratto curvilineo con i punti di appoggio indicati dipende dal tipo di interpolazione con selezione modale (interpolazione circolare, lineare, spline). Viene ripristinato lo stato del programma pezzo prima dell'inizio della definizione.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 581

Esempio 3: definizione di una tabella di curve periodica Definizione di una tabella periodica con numero 2, campo dei valori master da 0 a 360, movimento dell'asse slave da 0 a 45 e ritorno a 0: Codice di programma Commento

N10 DEF REAL DEPPOS

N20 DEF REAL GRADIENT

N30 CTABDEF(Y,X,2,1) ; Inizio della definizione.

N40 G1 X=0 Y=0

N50 POLY

N60 PO[X]=(45.0)

N70 PO[X]=(90.0) PO[Y]=(45.0,135.0,-90)

N80 PO[X]=(270.0)

N90 PO[X]=(315.0) PO[Y]=(0.0,-135.0,90)

N100 PO[X]=(360.0)

N110 CTABEND ; Fine della definizione.

;Test della curva mediante accoppiamento di Y a X:

N120 G1 F1000 X0

N130 LEADON(Y,X,2)

N140 X360

N150 X0

N160 LEADOF(Y,X)

N170 DEPPOS=CTAB(75.0,2,GRADIENTE) ; Lettura della funzione tabellare con valore master 75.0.

N180 G0 X75 Y=DEPPOS ; Posizionamento di asse master ed asse slave.

;Dopo l'attivazione dell'accoppiamento non è più necessario sincronizzare l'asse slave.

N190 LEADON(Y,X,2)

N200 G1 X110 F1000

N210 LEADOF(Y,X)

N220 M30

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 582 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Valore iniziale e finale della tabella di curve Quale valore iniziale, per il settore di definizione della tabelle, vale la prima impostazione di posizioni di assi raggruppati (la prima istruzione di movimento) all'interno della definizione della tabella di curve. Il valore finale del settore di definizione della tabella viene definito dall'ultima istruzione di movimento. Linguaggio disponibile All'interno della definizione della tabella è disponibile l'intero set di istruzioni NC.

Nota Le seguenti indicazioni non sono ammesse nella definizione della tabella delle curve: • Stop preelaborazione • Salti nel movimento dell'asse master (per es. al cambio di trasformazioni) • Istruzioni di movimento solo per l'asse slave • L'inversione di movimento dell'asse master, cioè la posizione dell'asse master, deve

sempre essere univoca • Istruzione CTABDEF e CTABEND in diversi livelli di programma.

Efficacia delle istruzioni modali Tutte le istruzioni con effetto modale che vengono generate all'interno della definizione della tabella di curve perdono validità alla conclusione della definizione della tabella. Prima e dopo la definizione di una tabella, il partprogram in cui la definizione viene eseguita si trova nello stesso stato.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 583

Assegnazioni ai parametri R Le assegnazioni ai parametri R nell'ambito della definizione delle tabelle vengono azzerate dopo CTABEND. Esempio: Codice di programma Commento

...

R10=5 R11=20 ; R10=5

...

CTABDEF

G1 X=10 Y=20 F1000

R10=R11+5 ; R10=25

X=R10

CTABEND

... ; R10=5

Attivazione di ASPLINE, BSPLINE, CSPLINE Se nell'ambito di una definizione della tabella delle curve viene attivata una CTABDEF ... CTABEND una ASPLINE, BSPLINE o CSPLINE, prima di questa attivazione spline deve essere programmato almeno un punto di partenza. E’ da evitare un’attivazione immediata dopo CTABDEF altrimenti la Spline dipende dalla posizione attuale dell’asse prima della definizione della tabella di curve. Esempio: Codice di programma

...

CTABDEF(Y,X,1,0)

X0 Y0

ASPLINE

X=5 Y=10

X10 Y40

...

CTABEND

Impiego ripetuto di tabelle di curve Il rapporto funzionale di asse master ed asse slave calcolato tramite la tabella per una curva resta attivo con il numero di tabella selezionato anche dopo la fine del programma pezzo e dopo POWER OFF, sempre che la tabella stessa sia archiviata nella memoria NC statica (SRAM).

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 584 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Una tabella creata nella memoria dinamica (DRAM) viene cancellata con POWER ON e deve essere eventualmente ricreata. Una tabella di curve creata una volta può essere utilizzata a piacere per qualsiasi combinazione di asse master ed asse slave ed è indipendente dagli assi impiegati per la generazione della tabella stessa. Sovrascrittura di tabelle per curve Una tabella viene sovrascritta quando, definendo una nuova tabella, per la definizione ne viene impiegato il numero. Eccezione: Una tabella di curve è attiva in un accoppiamento assi o bloccata CTABLOCK.

Nota Quando si sovrascrivono le tabelle delle curve non viene emessa una relativa segnalazione di avvertimento!

Definizione della tabella delle curve attiva? Con la variabile di sistema $P_CTABDEF è possibile in qualsiasi momento apprendere mediante query dal programma pezzo se è attiva la definizione della tabella delle curve. Revoca della definizione della tabella delle curve Dopo aver estratto le istruzioni per la definizione della tabella di curve è possibile utilizzare nuovamente la sezione di programma pezzo come programma pezzo reale. Caricamento di tabelle delle curve tramite l'"elaborazione dall'esterno" Per l'elaborazione dall'esterno delle tabelle di curve è necessario definire la dimensione del buffer di caricamento (DRAM) con il DM D18360 $MN_MM_EXT_PROG_BUFFER_SIZE in modo che tutte le tabelle di curve definite possano essere create contemporaneamente nel buffer di caricamento. In caso contrario l’elaborazione del programma pezzo viene interrotta con un allarme. Salti dell'asse slave In base all'impostazione del dato macchina: MD20900 $MC_CTAB_ENABLE_NO_LEADMOTION i salti dell'asse slave sono tollerabili se l'asse master non è in movimento.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 585

9.2.2 Verifica della presenza di una tabella delle curve (CTABEXISTS)

Funzione Con il comando CTABEXISTS è possibile verificare se sia presente un determinato numero di tabella delle curve nella memoria NC.

Sintassi CTABEXISTS(<n>)

Significato

Verifica se la tabella delle curve con il numero <n> è presente nella memoria NC statica o dinamica 0 La tabella non esiste

CTABEXISTS

1 La tabella esiste <n> Numero (ID) della tabella delle curve

9.2.3 Eliminazione di tabelle delle curve (CTABDEL)

Funzione Con CTABDEL si possono cancellare tabelle di curve.

Nota Questa funzione non può però cancellare tabelle di un accoppiamento assi attivo.

Sintassi CTABDEL(<n>) CTABDEL(<n>,<m>) CTABDEL(<n>,<m>,<percorso_salvataggio>) CTABDEL () CTABDEL(,,<percorso_salvataggio>)

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 586 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato CTABDEL Comando per la cancellazione di azioni sincrone <n> Numero (ID) della tabella delle curve da eliminare

Per l'eliminazione di un intervallo di tabelle delle curve CTABDEL(<n>,<m>) si specifica con <n> il numero della prima tabella dell'intervallo stesso.

<m> Per l'eliminazione di un intervallo di tabelle delle curve CTABDEL(<n>,<m>) si specifica con <m> il numero dell'ultima tabella dell'intervallo stesso. <m> deve essere maggiore di <n>! Definizione del percorso di salvataggio (opzionale) Con l'eliminazione senza indicazione del percorso le tabelle di curve specificate vengono eliminate nella memoria NC statica e dinamica. In caso di eliminazione con indicazione del percorso, delle tabelle di curve specificate vengono eliminate solo quelle contenute nella memoria specificata. Le rimanenti restano attive. "SRAM" Eliminazione nella memoria NC statica

<percorso_ salvataggio>

"DRAM" Eliminazione nella memoria NC dinamica Se CTABDEL viene programmato senza indicazione della tabella delle curve da eliminare, sono eliminate tutte le tabelle delle curve o tutte le tabelle delle curve nella memoria specificata: CTABDEL () Elimina tutte le tabelle delle curve nella memoria NC statica e

dinamica CTABDEL(,,"SRAM") Elimina tutte le tabelle delle curve nella memoria NC statica CTABDEL(,,"DRAM") Elimina tutte le tabelle delle curve nella memoria NC

dinamica

Nota Se durante le eliminazioni multiple CTABDEL(<n>,<m>) o CTABDEL() è attiva in un accoppiamento almeno una delle tabelle delle curve da eliminare, il comando di eliminazione non viene eseguito, ossia nessuna delle tabelle indirizzate delle curve viene eliminata.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 587

9.2.4 Inibizione dell'eliminazione e della sovrascrittura delle tabelle delle curve (CTABLOCK, CTABUNLOCK)

Funzione Le tabelle delle curve possono essere protette impostando inibizioni delle cancellature e sovrascritture accidentali. Un'inibizione impostata può venire revocata in ogni momento.

Sintassi Impostazione dell'inibizione: CTABLOCK(<n>) CTABLOCK(<n>,<m>) CTABLOCK(<n>,<m>,<percorso_salvataggio>) CTABLOCK() CTABLOCK(,,<percorso_salvataggio>)

Revoca dell'inibizione: CTABUNLOCK(<n>) CTABUNLOCK(<n>,<m>) CTABUNLOCK(<n>,<m>,<percorso_salvataggio>) CTABUNLOCK() CTABUNLOCK(,,<percorso_salvataggio>)

Significato CTABLOCK Comando per l'impostazione di un'inibizione di

eliminazione/sovrascrittura CTABUNLOCK Comando per la revoca di un'inibizione di eliminazione/sovrascrittura

CTABUNLOCK sblocca le tabelle di curve bloccate con CTABLOCK. In presenza di un accoppiamento attivo le tabelle delle curve continuano a rimanere bloccate e non possono essere cancellate. Il blocco con CTABLOCK è revocato non appena l'inibizione viene rimossa dall'accoppiamento attivo con disattivazione dello stesso. In questo modo è possibile cancellare questa tabella. Non è necessario un altro richiamo di CTABUNLOCK.

<n> Numero (ID) della tabella delle curve da bloccare/sbloccare Per il blocco/lo sblocco di un intervallo di tabelle delle curve CTABLOCK(<n>,<m>)/CTABUNLOCK(<n>,<m>) si specifica con <n> il numero della prima tabella dell'intervallo stesso.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 588 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

<m> Per il blocco/lo sblocco di un intervallo di tabelle delle curve CTABLOCK(<n>,<m>)/CTABUNLOCK(<n>,<m>) si specifica con <m> il numero dell'ultima tabella dell'intervallo stesso. <m> deve essere maggiore di <n>! Definizione del percorso di salvataggio (opzionale) Con l'impostazione/la revoca di un blocco senza indicazione del percorso le tabelle di curve specificate vengono bloccate/sbloccate nella memoria NC statica e dinamica. In caso di impostazione/la revoca di un blocco con indicazione del percorso, delle tabelle di curve specificate vengono bloccate/sbloccate solo quelle contenute nella memoria specificata. Le restanti non vengono bloccate/sbloccate. "SRAM" Impostazione/revoca di un blocco nella memoria NC

statica

<percorso_ salvataggio>

"DRAM" Impostazione/revoca di un blocco nella memoria NC dinamica

Se CTABLOCK/CTABUNLOCK viene programmato senza indicazione della tabella delle curve da bloccare/sbloccare, sono bloccate/sbloccate tutte le tabelle delle curve o tutte le tabelle delle curve nella memoria specificata: CTABLOCK() Blocca tutte le tabelle delle curve nella memoria NC

statica e dinamica CTABLOCK(,,"SRAM") Blocca tutte le tabelle delle curve nella memoria NC

statica CTABLOCK(,,"DRAM") Blocca tutte le tabelle delle curve nella memoria NC

dinamica CTABUNLOCK() Sblocca tutte le tabelle delle curve nella memoria NC

statica e dinamica CTABUNLOCK(,,"SRAM") Sblocca tutte le tabelle delle curve nella memoria NC

statica CTABUNLOCK(,,"DRAM") Sblocca tutte le tabelle delle curve nella memoria NC

dinamica

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 589

9.2.5 Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD)

Funzione Con questi comandi è possibile effettuare interrogazioni su proprietà importanti di una tabella delle curve (numero della tabella, stato di blocco, percorso di archiviazione, periodicità).

Sintassi CTABID(<p>) CTABID(<p>,<percorso_salvataggio>) CTABISLOCK(<n>) CTABMEMTYP(<n>) TABPERIOD(<n>)

Significato CTABID Restituisce il numero della tabella che nella memoria specificata è

registrato come tabella delle curve N. <p>. Esempio: CTABID(1,"SRAM") restituisce il numero della prima tabella delle curve nella memoria NC statica. La prima tabella delle curve corrisponde alla tabella delle curve con il numero di tabella più elevato. Nota: Se tra due richiami in successione CTABID viene modificata la sequenza delle tabelle delle curve nella memoria, ad es. eliminando delle tabelle delle curve con CTABDEL, CTABID(<p>,...) può restituire con lo stesso numero <p> un'altra tabella delle curve (diversa da prima). Restituisce lo stato del blocco della tabella delle curve con il numero <n>: 0 La tabella non è bloccata 1 La tabella è bloccata da CTABLOCK 2 La tabella è bloccata dall'accoppiamento attivo 3 La tabella è bloccata da CTABLOCK e dall'accoppiamento

attivo

CTABISLOCK

-1 La tabella non esiste

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 590 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Restituisce lo stato del blocco della tabella delle curve con il numero <n>: 0 Tabella nella memoria NC statica 1 Tabella nella memoria NC dinamica

CTABMEMTYP

-1 La tabella non esiste Restituisce la periodicità della tabella delle curve con il numero <n>: 0 Tabella non periodica 1 La tabella è periodica nell'asse master 2 La tabella è periodica nell'asse master e slave

CTABPERIOD

-1 La tabella non esiste <p> Numero di registrazione nella memoria <n> Numero (ID) della tabella delle curve

Definizione del percorso di salvataggio (opzionale) "SRAM" Memoria NC statica "DRAM" Memoria NC dinamica

<percorso_ salvataggio>

Nota: se per questo parametro non è programmato un valore, viene utilizzato il percorso di salvataggio standard impostato con MD20905 $MC_CTAB_DEFAULT_MEMORY_TYPE.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 591

9.2.6 Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX)

Funzione È possibile leggere nel programma pezzo i seguenti valori delle tabelle delle curve: ● Valori degli assi slave e master all’inizio ed alla fine di una tabella di curve ● Valori degli assi slave all’inizio ed alla fine di un segmento di curve ● Valore dell'asse slave rispetto a un valore dell'asse master ● Valore dell'asse master rispetto a un valore dell'asse slave ● Valore minimo e massimo dell'asse slave

– nell'intero campo di definizione della tabella delle curve oppure

– in un intervallo definito della tabella delle curve

Sintassi CTABTSV(<n>,<gradiente>[,<asse_slave>]) CTABTEV(<n>,<gradiente>[,<asse_slave>]) CTABTSP(<n>,<gradiente>[,<asse_master>]) CTABTEP(<n>,<gradiente>[,<asse_master>]) CTABSSV(<valore_master>,<n>,<gradiente>[,<asse_slave>]) CTABSEV(<valore_master>,<n>,<gradiente>[,<asse_slave>]) CTAB(<valore_master>,<n>,<gradiente>[,<asse_slave>,<asse_master>] CTABINV(<valore_slave>,<valore_approx>,<n>,<gradiente>[,<asse_slave>,<asse_master>] CTABTMIN(<n>[,<asse_slave>]) CTABTMAX(<n>[,<asse_slave>]) CTABTMIN(<n>,<a>,<b>[,<asse_slave>,<asse_master>]) CTABTMAX(<n>,<a>,<b>[,<asse_slave>,<asse_master>])

Significato CTABTSV Lettura del valore dell'asse slave all'inizio della tabella delle curve N. <n> CTABTEV Lettura del valore dell'asse slave alla fine della tabella delle curve N. <n> CTABTSP Lettura del valore dell'asse master all'inizio della tabella delle curve N. <n>CTABTEP Lettura del valore dell'asse master alla fine della tabella delle curve N. <n>CTABSSV Lettura del valore dell'asse slave all'inizio del segmento di curve

appartenente al valore dell'asse master da definire (<valore_master>)

CTABSEV Lettura del valore dell'asse slave alla fine del segmento di curve appartenente al valore dell'asse master da definire (<valore_master>)

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 592 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

CTAB Lettura del valore dell'asse slave rispetto al valore dell'asse master da definire (<valore_master>)

CTABINV Lettura del valore dell'asse master rispetto al valore dell'asse slave da definire (<valore_slave>)

CTABTMIN Determinazione del valore minimo dell'asse slave: • nell'intero campo di definizione della tabella delle curve

oppure • in un intervallo definito <a> ... <b>

CTABTMAX Determinazione del valore massimo dell'asse slave: • nell'intero campo di definizione della tabella delle curve

oppure • in un intervallo definito <a> ... <b>

<n> Numero (ID) della tabella delle curve <gradiente> Nel parametro <gradiente> il passo del filetto della funzione delle

tabelle delle curve viene restituito alla posizione rilavata <asse_slave> Asse il cui movimento va calcolato tramite la tabella delle curve

(opzionale) <asse_master> Asse che fornisce i valori master per il calcolo del movimento dell'asse

slave (opzionale) <valore_slave> Valore dell'asse slave per la lettura del relativo valore dell'asse master

con CTABINV <valore_master> Valore dell'asse master:

• per la lettura del relativo valore dell'asse slave con CTAB oppure

• per la selezione del segmento di curve con CTABSSV/CTABSEV <valore_approx> L'assegnazione di un valore dell'asse master a un valore dell'asse slave

con CTABINV non sempre deve essere univoca. CTABINV necessita pertanto come parametro di un valore approssimativo per il valore dell'asse master richiesto.

<a> Limite inferiore dell'intervallo di valori master per CTABTMIN/CTABTMAX <b> Limite superiore dell'intervallo di valori master per CTABTMIN/CTABTMAX Nota:

L'intervallo di valori master <a> ... <b> deve rientrare nel campo di definizione della tabella delle curve.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 593

Esempi Esempio 1: Determinazione dei valori degli assi slave e master all’inizio ed alla fine della tabella di curve nonché del valore minimo e massimo dell'asse slave nell'intero campo di definizione della tabella delle curve.

Codice di programma Commento

N10 DEF REAL STARTPOS

N20 DEF REAL ENDPOS

N30 DEF REAL STARTPARA

N40 DEF REAL ENDPARA

N50 DEF REAL MINVAL

N60 DEF REAL MAXVAL

N70 DEF REAL GRADIENTE

...

N100 CTABDEF(Y,X,1,0) ; Inizio della definizione della tabella

N110 X0 Y10 ; Posizione iniziale del 1° segmento di tabella

N120 X30 Y40 ; Posizione finale del 1° segmento di tabella = posizione iniziale del 2° segmento di tabella

N130 X60 Y5 ; Posizione finale del 2° segmento della tabella = ...

N140 X70 Y30

N150 X80 Y20

N160 CTABEND ; Fine della definizione della tabella.

...

N200 STARTPOS=CTABTSV(1,GRADIENT) ; Valore dell'asse slave all'inizio della tabella delle curve = 10

N210 ENDPOS=CTABTEV(1,GRADIENT) ; Valore dell'asse slave alla fine della tabella delle curve = 20

N220 STARTPARA=CTABTSP(1,GRADIENT) ; Valore dell'asse master all'inizio della tabella delle curve = 0

N230 ENDPARA=CTABTEP(1,GRADIENT) ; Valore dell'asse master alla fine della tabella delle curve = 80

N240 MINVAL=CTABTMIN(1) ; Valore minimo dell'asse slave per Y=5

N250 MAXVAL=CTABTMAX(1) ; Valore massimo dell'asse slave per Y=40

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 594 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: Determinazione dei valori degli assi slave all’inizio e alla fine del segmento di curve appartenente al valore dell'asse master X=30.

Codice di programma Commento

N10 DEF REAL STARTPOS

N20 DEF REAL ENDPOS

N30 DEF REAL GRADIENTE

...

N100 CTABDEF(Y,X,1,0) ; Inizio della definizione della tabella.

N110 X0 Y0 ; Posizione iniziale del 1° segmento di tabella

N120 X20 Y10 ; Posizione finale del 1° segmento di tabella = posizione iniziale del 2° segmento di tabella

N130 X40 Y40 Posizione finale del 2° segmento della tabella = ...

N140 X60 Y10

N150 X80 Y0

N160 CTABEND ; Fine della definizione della tabella.

...

N200 STARTPOS=CTABSSV(30.0,1,GRADIENT) ; Posizione iniziale Y nel 2° segmento = 10

N210 ENDPOS=CTABSEV(30.0,1,GRADIENT) ; Posizione finale Y nel 2° segmento = 40

Ulteriori informazioni Utilizzo nelle azioni sincrone Tutti i comandi per la lettura dei valori delle tabelle delle curve possono essere utilizzati anche in azioni sincrone (vedere anche il capitolo "Azioni sincrone al movimento"). Per l'utilizzo dei comandi CTABINV, CTABTMIN e CTABTMAX occorre verificare che: ● all'atto dell'esecuzione siano disponibili sufficienti risorse NC

oppure ● l'interrogazione relativa al numero dei segmenti della tabella di curve venga effettuata

prima del richiamo per poter eventualmente suddividere la relativa tabella.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 595

CTAB per tabelle di curve non periodiche Se il <valore_master> specificato si trova al di fuori del campo di definizione, come valore slave viene emesso il limite superiore o inferiore:

CTAB per tabelle di curve periodiche Se il <valore_master> specificato si trova al di fuori del campo di definizione, viene valutato il valore master Modulo del campo di definizione e viene emesso il corrispondente valore slave:

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 596 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Valore approssimativo per CTABINV Il comando CTABINV necessita di un valore approssimativo per il valore master richiesto. CTABINV restituisce il valore master più vicino a quello approssimativo. Tale valore approssimativo può essere per esempio il valore master del clock di interpolazione precedente. Passo della funzione delle tabelle delle curve L'uscita del passo (<gradiente>) permette di calcolare la velocità dell'asse master o slave nella relativa posizione. Definizione dell'asse master o slave La definizione opzionale dell'asse master o slave è importante nel caso in cui questi due assi siano stati progettati in unità di lunghezza diverse. CTABSSV, CTABSEV Nei seguenti casi i comandi CTABSSV e CTABSEV non sono adatti alle interrogazioni sui segmenti programmati: ● sono stati programmati cerchi o evolventi. ● sono attivi smussi o raccordi con CHF/RND. ● è attivo un movimento raccordato con G643. ● è attiva la compressione blocco NC con COMPON, COMPCURV, COMPCAD.

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 597

9.2.7 Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL)

Funzione Con questi comandi il programmatore ha la possibilità di informarsi sullo stato attuale dell'assegnazione delle risorse per le tabelle delle curve, i segmenti di tabella e i polinomi.

Sintassi CTABNO CTABNOMEM(<percorso_salvataggio>) CTABFNO(<percorso_salvataggio>) CTABSEGID(<n>,<percorso_salvataggio>) CTABSEG(<percorso_salvataggio>,<tipo_segmento>) CTABFSEG(<percorso_salvataggio>,<tipo_segmento>) CTABMSEG(<percorso_salvataggio>,<tipo_segmento>) CTABPOLID(<n>) CTABPOL(<percorso_salvataggio>) CTABFPOL(<percorso_salvataggio>) CTABMPOL(<percorso_salvataggio>)

Significato CTABNO Determinazione del numero complessivo delle tabelle delle curve

definite (nella memoria NC statica e dinamica) CTABNOMEM Determinazione del numero di tabelle delle curve definite nel

<percorso_salvataggio> specificato CTABFNO Determinazione del numero di tabelle delle curve ancora possibili

nel <percorso_salvataggio> specificato CTABSEGID Determinazione del numero dei segmenti di curve del

<tipo_segmento> specificato che vengono utilizzati dalla tabella delle curve con il numero <n>

CTABSEG Determinazione del numero dei segmenti di curve utilizzati del <tipo_segmento> specificato nel <percorso_salvataggio> specificato

CTABFSEG Determinazione del numero dei segmenti di curve ancora possibili del <tipo_segmento> specificato nel <percorso_salvataggio> specificato

CTABMSEG Determinazione del numero dei segmenti di curve massimi possibile del <tipo_segmento> specificato nel <percorso_salvataggio> specificato

Accoppiamenti assi 9.2 Tabelle di curve (CTAB)

Preparazione del lavoro 598 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

CTABPOLID Determinazione del numero dei polinomi di curve utilizzati dalla tabella del curve con il numero <n>

CTABPOL Determinazione del numero dei polinomi di curve utilizzati nel <percorso_salvataggio> specificato

CTABFPOL Determinazione del numero dei polinomi di curve ancora possibili nel <percorso_salvataggio> specificato

CTABMPOL Determinazione del numero dei polinomi di curve massimo possibile nel <percorso_salvataggio> specificato

<n> Numero (ID) della tabella delle curve Definizione del percorso di salvataggio (opzionale) "SRAM" Memoria NC statica "DRAM" Memoria NC dinamica

<percorso_ salvataggio>

Nota: se per questo parametro non è programmato un valore, viene utilizzato il percorso di salvataggio standard impostato con MD20905 $MC_CTAB_DEFAULT_MEMORY_TYPE. Definizione del tipo di segmento (opzionale) "L" Segmenti lineari "P" Segmenti polinomiali

<tipo_segmento>

Nota: se per questo parametro non è programmato alcun valore, viene emessa la somma dei segmenti lineari e polinomiali.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 599

9.3 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Nota Questa funzione non è disponibile per SINUMERIK 828D!

Funzione Con l'accoppiamento assiale al valore master un asse master ed un asse slave vengono mossi in maniera sincronizzata. La posizione dell'asse slave è sempre assegnata in modo univoco alla posizione dell'asse master, mediante una tabella o un polinomio da essa calcolato.

L'asse master è quello che fornisce i valori di ingresso per la tabella delle curve. Si definisce asse slave l'asse che acquisisce le posizioni calcolate tramite la tabella per curve. Accoppiamento valore reale e di riferimento Quali valori master dell'asse slave, cioè come valori di partenza per il rilevamento della posizione, si possono utilizzare: ● i valori reali di posizione dell'asse master: Accoppiamento al valore reale ● i valori di riferimento della posizione dell'asse master: Accoppiamento tramite riferimento L'accoppiamento al valore master ha validità sempre nel sistema di coordinate di base. Per la realizzazione delle tabelle di curve vedere la sezione “Tabelle di curve” in questo capitolo. Per l’accoppiamento al valore master, vedere /FB/, M3, Trascinamento e accoppiamento al valore master.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro 600 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi LEADON(asse S,asse M,n) LEADOF(asse S, asse M)

o disattivazione senza indicazione dell'asse master: LEADOF(asse S)

L'accoppiamento al valore master può essere attivato e disattivato sia dal partprogram che da azioni sincrone durante il movimento, vedere capitolo "Azioni sincrone al movimento").

Significato LEADON Attivare l'accoppiamento al valore master LEADOF Disattivare l'accoppiamento al valore master Asse slave Asse slave Asse master Asse master n Numero della tabella $SA_LEAD_TYPE Commutazione tra accoppiamento al valore di riferimento e

accoppiamento al valore reale Disattivazione dell'accoppiamento, LEADOF Disattivando l'accoppiamento al valore master l'asse slave torna ad essere un normale asse di comando. Accoppiamento assiale al valore master e diversi stati operativi, RESET In funzione dell'impostazione eseguita nel dato macchina gli accoppiamenti al valore master vengono disattivati con RESET.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 601

Esempio di accoppiamento al valore master da azioni sincrone In un impianto di presse si intende sostituire un accoppiamento meccanico tradizionale fra un asse master (mazza) e gli assi di un sistema transfer costituito da assi di trasferimento e assi ausiliari con un sistema di accoppiamento elettronico. L'esempio che segue è tratto da un impiego reale e dimostra come un sistema di accoppiamento meccanico viene sostituito con un sistema di accoppiamento elettronico. Le procedure di accoppiamento e di disaccoppiamento sono realizzate come azioni sincrone statiche. L'asse master LW (mazza) comanda assi di trasferimento e assi ausiliari come assi slave definiti tramite tabella per curve. Assi slave X Asse di avanzamento o longitudinale YL Asse di chiusura o asse trasversale ZL Asse di sollevamento U Avanzamento lamiera, asse ausiliario V Testa orientabile, asse ausiliario W Ingrassaggio, asse ausiliario Azioni Le azioni presenti nelle azioni sincrone sono ad es.: ● Accoppiamento, LEADON (asse slave, asse master, numero delle

tabelle) ● Disaccoppiamento, LEADOF (asse slave, asse master) ● Settare il valore reale, PRESETON (asse, valore) ● Settare marker, $AC_MARKER[i] = valore ● Tipo di accoppiamento: valore master reale/virtuale ● Raggiungimento delle posizioni asse, �POS[asse]=valore Condizioni Come condizioni vengono valutati ingressi digitali veloci, variabili in tempo reale $AC_MARKER e confronti di posizione, combinati con l'operatore logico AND.

Nota Nell'esempio seguente il cambio riga, i rientri e la scrittura in grassetto sono stati impiegati esclusivamente allo scopo di migliorare la lettura della programmazione. Per il controllo numerico tutto ciò che si trova sotto un numero di riga fa parte di una riga unica.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro 602 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Commento Codice di programma Commento

; Definisce tutte le azioni sincrone statiche.

; ****Ripristino marker

N2 $AC_MARKER[0]=0 $AC_MARKER[1]=0 $AC_MARKER[2]=0 $AC_MARKER[3]=0 $AC_MARKER[4]=0 $AC_MARKER[5]=0 $AC_MARKER[6]=0 $AC_MARKER[7]=0

; **** E1 0=>1 accoppiamento trasferimento ON

N10 IDS=1 EVERY ($A_IN[1]==1) AND ($A_IN[16]==1) AND ($AC_MARKER[0]==0) DO LEADON(X,LW,1) LEADON(YL,LW,2) LEADON(ZL,LW,3) $AC_MARKER[0]=1

; **** E1 0=>1 accoppiamento avanzamento lamiera ON

N20 IDS=11 EVERY ($A_IN[1]==1) AND ($A_IN[5]==0) AND ($AC_MARKER[5]==0) DO LEADON(U,LW,4) PRESETON(U,0) $AC_MARKER[5]=1

; **** E1 0->1 accoppiamento testa orientabile ON

N21 IDS=12 EVERY ($A_IN[1]==1) AND ($A_IN[5]==0) AND ($AC_MARKER[6]==0) DO LEADON(V,LW,4) PRESETON(V,0) $AC_MARKER[6]=1

; **** E1 0->1 accoppiamento ingrassaggio ON

N22 IDS=13 EVERY ($A_IN[1]==1) AND ($A_IN[5]==0) AND ($AC_MARKER[7]==0) DO LEADON(W,LW,4) PRESETON(W,0) $AC_MARKER[7]=1

; **** E2 0=>1 accoppiamento OFF

N30 IDS=3 EVERY ($A_IN[2]==1) DO LEADOF(X,LW) LEADOF(YL,LW) LEADOF(ZL,LW) LEADOF(U,LW) LEADOF(V,LW) LEADOF(W,LW) $AC_MARKER[0]=0 $AC_MARKER[1]=0 $AC_MARKER[3]=0 $AC_MARKER[4]=0 $AC_MARKER[5]=0 $AC_MARKER[6]=0 $AC_MARKER[7]=0

....

N110 G04 F01

N120 M30

Descrizione L'accoppiamento al valore master richiede la sincronizzazione di asse master ed asse slave. Tale sincronizzazione si può ottenere soltanto se l'asse slave al momento dell'attivazione dell'accoppiamento si trova all'interno del campo di tolleranza del tratto curvilineo che è stato calcolato mediante la tabella di curve. Il campo di tolleranza per la posizione dell'asse slave viene definito con il dato macchina DM 37200: COUPLE_POS_POL_COARSE A_LEAD_TYPE.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 603

Se l'asse slave al momento dell'attivazione dell'accoppiamento al valore master non si trova ancora nella posizione opportuna, la sincronizzazione viene eseguita automaticamente non appena il valore di posizione calcolato dell'asse slave si avvicina alla posizione reale di detto asse. L'asse slave viene mosso solo in direzione delle posizioni per esso calcolate. Nel corso della sincronizzazione l'asse slave viene mosso nella direzione definita dalla velocità di riferimento dell'asse slave (risultante dalla velocità dell'asse master e da CTAB).

Nessun sincronismo Se al momento dell'attivazione dell'accoppiamento la posizione calcolata dell'asse slave non corrisponde alla posizione attuale dell'asse slave, il sincronismo non viene attivato Accoppiamento al valore di riferimento e al valore reale Rispetto all'accoppiamento al valore reale, l'accoppiamento al valore di riferimento offre una migliore marcia sincrona di asse master ed asse slave ed è quindi preimpostato come standard.

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro 604 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

L'accoppiamento al valore di riferimento è possibile solo se asse slave ed asse master vengono interpolati dalla stessa NCU. In caso di asse master esterno l'asse slave può essere accoppiato all'asse master solo tramite valori reali.

Una commutazione è possibile con il dato di setting $SA_LEAD_TYPE. La commutazione tra accoppiamento al valore di riferimento e accoppiamento al valore reale dovrebbe avvenire sempre ad asse slave fermo. Una nuova sincronizzazione dopo la commutazione viene eseguita solo in stato di fermo. Esempio d'utilizzo Nel caso la macchina sia sottoposta a forti vibrazioni non è possibile leggere senza errori i valori reali. Se per es. nel caso di presse è in funzione l'accoppiamento al valore reale, nei passi di lavoro con le più forti vibrazioni può rendersi quindi necessario commutare all'accoppiamento al valore di riferimento. Simulazione del valore master in caso di accoppiamento al valore di riferimento Mediante dato macchina è possibile separare l'interpolatore dell'asse master dal servo. In tal modo nel caso di accoppiamento al valore di riferimento è possibile generare valori di riferimento anche senza movimenti reali dell'asse master. Per il loro impiego, per es. in azioni sincrone, i valori master generati mediante accoppiamento al valore di riferimento possono essere letti nelle seguenti variabili: - $AA_LEAD_P posizione master

- $AA_LEAD_V velocità master

Accoppiamenti assi 9.3 Accoppiamento assiale tramite valore master (LEADON, LEADOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 605

Generazione dei valori master I valori master possono essere generati a scelta in altri modi programmati dall'utente. I valori master generati in tal modo vengono scritti e letti nella variabile - $AA_LEAD_SP posizione master

- $AA_LEAD_SV velocità master

Per l'utilizzo di queste variabili il dato di setting $SA_LEAD_TYPE = 2.

Stato dell'accoppiamento Nel partprogram dell'NC è possibile informarsi sullo stato dell'accoppiamento mediante le seguenti variabili di sistema: $AA_COUP_ACT[asse] 0: Nessun accoppiamento attivo 16: Accoppiamento al valore master attivo Stato della gestione con azioni sincrone Le procedure di inserzione e di accoppiamento vengono gestite con variabili in tempo reale: $AC_MARKER[i] = n gestito con: i Merker nr. n Valore di stato

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro 606 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

9.4 9.4 Cambio elettronico (EG)

Funzione Con la funzione "Cambio elettronico" si può controllare il movimento di un asse slave secondo un blocco di movimento lineare in funzione di un massimo di cinque assi master. I rapporti che intercorrono tra gli assi master e l'asse slave sono definiti per ogni asse master dal fattore di accoppiamento. La quota calcolata di movimento dell'asse slave è ottenuta sommando le singole quote di movimento degli assi master moltiplicate per i rispettivi fattori di accoppiamento. Nel caso di attivazione di un raggruppamento di assi EG si può indurre la sincronizzazione dell'asse slave su una posizione definita. Dal partprogram un raggruppamento di rapporti può essere: ● definito, ● attivato, ● disattivato, ● cancellato. Il movimento dell’asse slave può essere avviato con i ● riferimenti degli assi master e anche ● con i valori reali degli assi master. Come ampliamento si possono realizzare anche relazioni non lineari tra asse master e asse slave tramite tabelle di curve (vedere il capitolo Comportamento vettoriale). I cambi elettronici possono essere attivati in cascata, cioè l’asse slave del primo cambio elettronico può essere l’asse master per un secondo cambio elettronico.

9.4.1 Definizione del cambio elettronico (EGDEF)

Funzione Un raggruppamento assi EG viene stabilito indicando l'asse slave e da un minimo di uno a un massimo di cinque assi master con il rispettivo tipo di accoppiamento.

Premessa Requisito per una definizione del raggruppamento assi EG: Per l'asse slave non deve essere ancora definito alcun accoppiamento assi (event. è possibile cancellare precedentemente un accoppiamento esistente con EGDEL).

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 607

Sintassi EGDEF(asse slave,asse master1,tipo di accoppiamento1,asse master2,tipo di accoppiamento2,...)

Significato EGDEF Definizione di un cambio elettronico Asse slave Asse che viene influenzato dagli assi master Asse master1 ,..., Asse master5

Assi che influenzano l'asse slave

Tipo di accoppiamento Il tipo di accoppiamento non deve essere lo stesso per tutti gli assi master e pertanto deve essere indicato singolarmente per ogni asse master. Valore: Significato: 0 L'asse slave viene influenzato dal valore reale

dell'asse master corrispondente.

Tipo di accoppiamento1 ,..., Tipo di accoppiamento5

1 L'asse slave viene influenzato dal valore di riferimento dell'asse master corrispondente.

Nota Nella definizione del gruppo di accoppiamenti del cambio elettronico (EG) il fattore di accoppiamento viene preimpostato a zero.

Nota EGDEF provoca uno stop preelaborazione. La definizione di cambio con EGDEF si può anche utilizzare in modo invariato, se nei sistemi uno o più assi master sono legati all'asse slave tramite tabella di curve.

Esempio Codice di programma Commento

EGDEF(C,B,1,Z,1,Y,1) ; Definizione del raggruppamento assi EG. Gli assi master B, Z, Y influenzano l'asse slave C tramite il valore di riferimento.

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro 608 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

9.4.2 Attivazione del cambio elettronico (EGON, EGONSYN, EGONSYNE)

Funzione Per l'attivazione di un raggruppamento assi EG esistono 3 varianti.

Sintassi Variante 1: Il raggruppamento assi EG viene attivato selettivamente senza sincronizzazione con: EGON(asse slave,"Modo di cambio blocco",asse master1,Z1,N1,asse master2,Z2,N2,...,asse master5,Z5,N5)

Variante 2: Il raggruppamento assi EG viene attivato selettivamente con sincronizzazione con: EGONSYN(asse slave,"Modo di cambio blocco",SynPos asse slave,[,asse master i,SynPos asse master i,Zi,Ni])

Variante 3: Il raggruppamento assi EG viene attivato selettivamente con sincronizzazione e il modo di accostamento viene indicato con: EGONSYNE(asse slave,"Modo di cambio blocco",SynPos asse slave,Modo di accostamento[,asse master i,SynPos asse master i,Zi,Ni])

Significato Variante 1: FA Asse slave

Si possono utilizzare i seguenti modi di accostamento: "NOC" Il cambio blocco avviene immediatamente "FINE" Il cambio blocco avviene con "Corsa

sincrona precisa" "COARSE" Il cambio blocco avviene con "Corsa

sincrona approssimativa"

Modo di cambio blocco

"IPOSTOP" Il cambio blocco avviene con la corsa sincrona in direzione del valore di riferimento

LA1, ... LA5 Assi master Z1, ... Z5 Numeratore per il fattore di accoppiamento i N1, ... N5 Denominatore per il fattore di accoppiamento i

Fattore di accoppiamento i = numeratore i/denominatore i Possono essere programmati solo gli assi master che erano stati precedentemente specificati con EGDEF. Deve essere specificato almeno un asse master.

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 609

Variante 2: FA Asse slave

Possono essere utilizzati i seguenti modi: "NOC" Il cambio blocco avviene

immediatamente "FINE" Il cambio blocco avviene con "Corsa

sincrona precisa" "COARSE" Il cambio blocco avviene con "Corsa

sincrona approssimativa"

Modo di cambio blocco

"IPOSTOP" Il cambio blocco avviene con la corsa sincrona in direzione del valore di riferimento

[,asse master i,SynPos asse master i,Zi,Ni]

(Non scrivere le parentesi quadre) min. 1, max. 5 slave di:

asse master1, ... asse master 5

Assi master

SynPosLAi Posizione di sincronismo per l'asse master i. Z1, ... Z5 Numeratore per il fattore di accoppiamento i N1, ... N5 Denominatore per il fattore di accoppiamento i

Fattore di accoppiamento i = Numeratore i/Denominatore i

Possono essere programmati solo gli assi master che erano stati precedentemente specificati con EGDEF. Attraverso le "posizioni di sincronismo" programmate per l'asse slave (SynPosFA) e per gli assi master (SynPosLA) vengono definite le posizioni in cui il gruppo di accoppiamento è valido in modo sincrono. Se all'avviamento il cambio elettronico non si trova in stato sincrono, l'asse slave procede verso la posizione di sicnronismo definita. Variante 3: I parametri corrispondono a quelli della variante 2 con l'aggiunta di:

Possono essere utilizzati i seguenti modi: "NTGT" Successivo interspazio tra i denti, ottimizzato nel tempo "NTGP" Successivo interspazio tra i denti, ottimizzato nel percorso "ACN" Posizionamento dell’asse rotante in direzione negativa

assoluta "ACP" Posizionamento dell’asse rotante in direzione positiva assoluta"DCT" Ottimizzazione dei tempi in base alla posizione di sincronismo

programmata

Modo di accostamento

"DCP" Ottimizzazione del percorso in base alla posizione di sincronismo programmata

La variante 3 ha effetto solo sugli assi modulo slave che sono accoppiati agli assi modulo master. L'ottimizzazione del tempo tiene conto dei limiti di velocità dell'asse slave.

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro 610 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Descrizione delle varianti di attivazione Variante 1: Le posizioni degli assi master così come quelle dell’asse slave nell’istante dell’attivazione vengono memorizzate come "Posizioni sincrone". Le “Posizioni sincrone” possono essere lette con la variabile di sistema $AA_EG_SYN. Variante 2: Se gli assi modulo sono nel gruppo di accoppiamento, i loro valori di posizione vengono ridotti a modulo. Si garantisce così che venga raggiunta la posizione di sincronismo più vicina possibile (la cosiddetta sincronizzazione relativa: es. il successivo interspazio tra i denti). Se per l'asse slave non è stata data "Abilitazione sovrapposizione asse slave" segnale di interfaccia DB(30 +numero di asse), DBX 26 bit 4, non si attiva la funzione di posizione sincrona. Al contrario, il programma viene arrestato al blocco EGONSYN e viene dato l'allarme a cancellazione automatica 16771, finché non viene impostato il suddetto segnale. Variante 3: La distanza fra i denti (gradi) si ricava da: 360 * Zi/Ni. Nel caso in cui l'asse slave al momento del richiamo sia fermo, l'ottimizzazione del percorso influisce in modo analogo all'ottimizzazione del tempo. Se l'asse slave è già in movimento, con NTGP indipendentemente dalla velocità attuale dell'asse slave, la sincronizzazione avviene nell'interspazio fra i denti successivo. Se l'asse slave è già in movimento, con NTGT in funzione della velocità attuale dell'asse slave, la sincronizzazione avviene nell'interspazio fra i denti successivo. Se necessario l'asse può anche essere frenato. Tabelle delle curve Se si utilizza una tabella di curve per l'asse master, allora: Ni Il denominatore del fattore di accoppiamento per accoppiamenti lineari deve

essere impostato a 0. (Il denominatore 0 sarebbe ammesso per accoppiamento lineari). Un denominatore nullo, per il controllo

Zi Deve essere interpretato come numero della tabella di curve da utilizzare. La tabella di curve con il numero impostato deve essere già al momento dell’attivazione.

LAi L'indicazione dell'asse master corrisponde a quella dell'asse master con accoppiamento tramite fattore di accoppiamento (accoppiamento lineare).

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 611

Per indicazioni sull'uso delle tabelle di curve, per il collegamento in cascata dei cambi elettronici e la relativa sincronizzazione, vedere: Bibliografia: Manuale di guida alle funzioni, Funzioni speciali; Accoppiamenti asse e ESR (M3), capitolo "Trascinamento, accoppiamento al valore master". Comportamento del cambio elettronico con power on, RESET, cambio del modo operativo, ricerca blocco ● Dopo Power On nessun accoppiamento è attivo. ● Gli accoppiamenti attivi sono mantenuti anche dopo RESET e cambio del modo

operativo. ● Nella ricerca blocco i comandi di commutazione, cancellazione, definizione del cambio

elettronico non vengono eseguiti né cumulati, ma ignorati. Variabili di sistema del cambio elettronico Grazie alle variabili di sistema del cambio elettronico, il partprogram può rilevare gli stati attuali di un raggruppamento assi EG ed eventualmente reagire di conseguenza. Le variabili di sistema del cambio elettronico sono contrassegnati come di seguito: $AA_EG_ ... oppure $VA_EG_ ... Bibliografia: Manuale delle variabili di sistema

9.4.3 Disattivazione del cambio elettronico (EGOFS, EGOFC)

Funzione Per la disattivazione di un raggruppamento assi EG attivo esistono 3 varianti.

Programmazione Variante 1: Sintassi Significato EGOFS(asse slave) Il cambio elettronico viene disattivato. L'asse slave viene

frenato fino all'arresto. Il richiamo provoca uno stop preelaborazione.

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro 612 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variante 2: Sintassi Significato EGOFS(asse slave,asse master1,…, asse master5) Questa parametrizzazione del comando

permette di eliminare selettivamente l'influenza di singoli assi master sul movimento dell'asse slave.

Deve essere specificato almeno un asse master. L'influenza degli assi master specificati sull'asse slave viene disattivata in modo mirato. Il richiamo provoca uno stop preelaborazione. Se restano degli assi master ancora attivi, l'asse slave continua a muoversi sotto la loro influenza. Una volta disattivati in questo modo tutti gli assi master, l'asse slave viene frenato fino all'arresto. Variante 3: Sintassi Significato EGOFC(mandrino slave1) Il cambio elettronico viene disattivato. Il mandrino slave

continua a muoversi al numero di giri/alla velocità attuali al momento della disattivazione. Il richiamo provoca uno stop preelaborazione.

Nota Questa variante è consentita solo per i mandrini.

Accoppiamenti assi 9.4 Cambio elettronico (EG)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 613

9.4.4 Cancellazione della definizione di un cambio elettronico (EGDEL)

Funzione Un raggruppamento asse EG deve essere disattivato prima che possa essere cancellata la relativa definizione.

Programmazione Sintassi Significato EGDEL (asse slave) La definizione di accoppiamento del raggruppamento asse

viene cancellata. È nuovamente possibile, fino al raggiungimento del numero massimo di raggruppamenti assi attivati contemporaneamente, ridefinire altri raggruppamenti assi con EGDEF. Il richiamo provoca uno stop preelaborazione.

9.4.5 Avanzamento del giro (G95)/Cambio elettronico (FPR)

Funzioni Con il comando FPR è possibile indicare anche l'asse slave di un cambio elettronico come asse determinante per l'avanzamento del giro. Per questo caso vale il seguente comportamento: ● L'avanzamento è in funzione della velocità di riferimento dell'asse slave del cambio

elettronico. ● La velocità di riferimento viene calcolata a partire dalle velocità dei mandrini master e

degli assi master a modulo (che non sono assi di contornatura) e dai fattori di accoppiamento assegnati.

● Le componenti di velocità di assi master lineari o non a modulo e i movimenti sovrapposti dell'asse slave non vengono considerati.

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 614 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

9.5 9.5 Mandrino sincrono

Funzione Nel funzionamento sincrono sono coinvolti un mandrino master (LS) ed un mandrino slave (FS), che formano la cosiddetta coppia di mandrini sincroni. Con accoppiamento attivo (funzionamento sincrono) il mandrino slave segue i movimenti del mandrino master in funzione della relazione definita. Le coppie di mandrini sincroni possono essere progettate per ogni macchina con l'ausilio di dati macchina specifici per canale oppure definite tramite il partprogram NC. Per ogni canale NC sono gestibili contemporaneamente fino a 2 coppie di mandrini sincroni. Dal partprogram l'accoppiamento può essere ● definito o modificato ● attivato ● disattivato ● cancellato. Inoltre a seconda della versione del software è possibile ● attendere la condizione di sincronismo in corso ● modificare il comportamento di cambio blocco ● selezionare il tipo di accoppiamento (del valore di riferimento o del valore attuale) oppure

preimpostare la traslazione angolare tra mandrino master e mandrino slave ● applicare una programmazione precedente del mandrino slave al momento

dell'attivazione dell'accoppiamento ● correggere uno scostamento della corsa sincrona misurato o già noto.

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 615

9.5.1 Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC)

Funzione La funzione mandrino sincrono consente un movimento sincrono di due mandrini (mandrino slave FS e mandrino master LS), ad es. per il trasferimento al volo del pezzo. Questa funzione offre le seguenti modalità: ● Sincronismo di velocità (nFS = n LS) ● Sincronismo di posizione (ϕFS = ϕLS) ● Sincronismo di posizione con traslazione angolare (ϕFS = ϕLS+ ∆ϕ)

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 616 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La definizione di un rapporto di trasmissione diverso da 1 tra mandrino master e slave rende possibile anche una lavorazione poligonale (tornitura poligonale).

Sintassi COUPDEF(FS,LS,ÜFS,ÜLS,cambio_blocco,tipo_accoppiamento) COUPON(FS,LS,POSFS) COUPONC(FS,LS) COUPOF(FS,LS,POSFS,POSLS) COUPOFS(FS,LS) COUPOFS(FS,LS,POSFS) COUPRES(FS,LS) COUPDEL(FS,LS) WAITC(FS,cambio_blocco,LS,cambio_blocco)

Nota Scrittura abbreviata Per le istruzioni COUPOF, COUPOFS, COUPRES e COUPDEL è possibile una scrittura abbreviata senza indicazione del mandrino master.

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 617

Significato COUPDEF Definizione/modifica, specifica dell'utente, dell'accoppiamento COUPON Attivare l'accoppiamento. A partire dal numero di giri attuale, il

mandrino slave si sincronizza sul mandrino master COUPONC Applicazione dell'accoppiamento all'attivazione con programmazione

precedente di M3 S... o M4 S.... Un numero di giri differenziale del mandrino slave viene applicato immediatamente.

COUPOF Disattivare l'accoppiamento. • Con cambio di blocco immediato:

COUPOF(S2,S1) • Cambio blocco solo dopo il superamento di una o più posizioni di

disattivazione POSFS o POSLS: COUPOF(S2,S1,POSFS) COUPOF(S2,S1,POSFS,POSLS)

COUPOFS Disattivazione di un accoppiamento con arresto del mandrino slave. Cambio blocco quanto più rapidamente possibile con cambio blocco immediato: COUPOFS(S2,S1) Cambio blocco solo dopo il superamento della posizione di disattivazione: COUPOFS(S2,S1,POSFS)

COUPRES Ripristino dei parametri di accoppiamento ai dati macchina e ai dati setting progettati

COUPDEL Cancellare l'accoppiamento definito dall'utente WAITC Attesa della condizione di sincronismo

(i NOC vengono rimossi su IPO in caso di cambio blocco) FS Definizione del mandrino slave

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 618 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Parametri opzionali: LS Definizione del mandrino master

Indicazione con numero di mandrino: ad es. S2, S1 ÜFS, ÜLS Rapporto di trasmissione tra FS e LS

ÜFS = numeratore, ÜLS = denominatore Preimpostazione: ÜFS/ÜLS = 1.0; definizione del denominatore opzionale Comportamento al cambio blocco Il cambio blocco avviene: "NOC" Immediatamente "FINE" Al raggiungimento di "sincronismo fine" "COARSE" Al raggiungimento di "sincronismo grossolano" "IPOSTOP" Al raggiungimento di IPOSTOP, cioè dopo il

movimento sincrono del riferimento (preimpostazione)

Cambio del blocco

Il comportamento al cambio blocco ha validità modale. Tipo di accoppiamento: accoppiamento tra FS (slave) ed LS (master) "DV" Accoppiamento tramite riferimento

(preimpostazione) "AV" Accoppiamento al valore reale "VV" Accoppiamento di velocità

Tipo di accoppiamento

Il tipo di accoppiamento ha validità modale. Traslazione angolare tra mandrino master e mandrino slave POSFS

Campo dei valori: 0°… 359,999° Posizioni di disattivazione di mandrino slave e master "Il cambio blocco viene abilitato dopo il superamento di POSFS, POSLS"

POSFS,POSLS

Campo dei valori: 0°… 359,999°

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 619

Esempi Esempio 1: Lavorazione con mandrino master e mandrino slave

Programmazione Commento

; Mandrino master = mandrino master = mandrino 1

; Mandrino slave = mandrino 2

N05 M3 S3000 M2=4 S2=500 ;

;

Il mandrino master gira a 3000 giri/min

Il mandrino slave gira a 500 giri/min

N10 COUPDEF(S2,S1,1,1,"NOC","Dv") ; Definizione dell'accoppiamento (può anche essere progettata)

...

N70 SPCON ; Acquisizione del mandrino master nella regolazione di posizione (accoppiamento del valore di riferimento)

N75 SPCON(2) ; Acquisizione del mandrino slave nella regolazione di posizione

N80 COUPON(S2,S1,45) ; Accoppiamento al volo su posizione di offset = 45 gradi

...

N200 FA[S2]=100 ; Velocità di posizionamento = 100 gradi/min

N205 SPOS[2]=IC(-90) ; Spostamento di 90 gradi sovrapposto in direzione negativa

N210 WAITC(S2,"Fine") ; Attesa del movimento sincrono "fine"

N212 G1 X... Y... F... ; Lavorazione

...

N215 SPOS[2]=IC(180) ; Spostamento di 180 gradi sovrapposto in direzione positiva

N220 G4 S50 ; Tempo di attesa = 50 giri del mandrino master

N225 FA[S2]=0 ; Attivazione della velocità progettata (MD)

N230 SPOS[2]=IC(-7200) ;

;

20 giri Con velocità progettata in

direzione negativa

...

N350 COUPOF(S2,S1) ; Disaccoppiamento al volo, S=S2=3000

N355 SPOSA[2]=0 ; Arresto mandrino slave con zero gradi

N360 G0 X0 Y0 ;

N365 WAITS(2) ; Attesa del mandrino 2

N370 M5 ; Arresto mandrino slave

N375 M30

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 620 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: programmazione di un numero di giri differenziale Programmazione Commento

; Mandrino master = mandrino master = mandrino 1

; Mandrino slave = mandrino 2

N01 M3 S500 ; Il mandrino master gira a 500 giri/min

N02 M2=3 S2=300 ; Il mandrino slave gira a 300 giri/min

...

N10 G4 F1 ; Tempo di sosta del mandrino master

N15 COUPDEF (S2, S1, -1) ; Fattore di accoppiamento con rapporto di trasmissione -1:1

N20 COUPON (S2, S1) ;

;

;

Attivazione accoppiamento. Il numero di giri del mandrino slave

si ricava dal numero di giri del mandrino master e dal fattore di

accoppiamento

...

N26 M2=3 S2=100 ; Programmazione di un numero di giri differenziale Esempio 3: Esempi di applicazione di un movimento per il numero di giri differenziale 1. Attivazione dell'accoppiamento in caso di programmazione precedente del mandrino slave con COUPON

Programmazione Commento

; Mandrino master = mandrino master = mandrino 1

; Mandrino slave = mandrino 2

N05 M3 S100 M2=3 S2=200 ; Il mandrino master gira a 100 giri/min, il mandrino slave a 200 giri/min

N10 G4 F5 ; Tempo di attesa = 5 secondi del mandrino master

N15 COUPDEF(S2,S1,1) ; Il rapporto di trasmissione del mandrino slave con il mandrino master è 1,0 (preimpostazione)

N20 COUPON(S2,S1) ; Accoppiamento al volo su mandrino master

N10 G4 F5 ; Il mandrino slave gira a 100 giri/min

2. Attivazione dell'accoppiamento in caso di programmazione precedente del mandrino slave con COUPONC

Programmazione Commento

; Mandrino master = mandrino master = mandrino 1

; Mandrino slave = mandrino 2

N05 M3 S100 M2=3 S2=200 ; Il mandrino master gira a 100 giri/min, il mandrino slave a 200 giri/min

N10 G4 F5 ; Tempo di attesa = 5 secondi del mandrino master

N15 COUPDEF(S2,S1,1) ; Il rapporto di trasmissione del mandrino slave con il mandrino master è 1,0 (preimpostazione)

N20 COUPONC(S2,S1) ;

;

Accoppiamento al volo su mandrino master e applicazione

del numero di giri precedente a S2

N10 G4 F5 ; S2 gira a 100 giri/min + 200 giri/min = 300 giri/min

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 621

3. Attivazione dell'accoppiamento in caso di mandrino slave fermo con COUPON

Programmazione Commento

; Mandrino master = mandrino master = mandrino 1

; Mandrino slave = mandrino 2

N05 SPOS=10 SPOS[2]=20 ; Mandrino slave S2 in funzionamento di posizionamento

N15 COUPDEF(S2,S1,1) ; Il rapporto di trasmissione del mandrino slave con il mandrino master è 1,0 (preimpostazione)

N20 COUPON(S2,S1) ; Accoppiamento al volo su mandrino master

N10 G4 F1 ; L'accoppiamento viene concluso, S2 resta su 20 gradi

4. Attivazione dell'accoppiamento in caso di mandrino slave fermo con COUPONC

Nota Funzionamento di posizionamento o funzionamento assi Se prima dell'accoppiamento il mandrino slave si trova nel funzionamento di posizionamento o nel funzionamento assi, il mandrino slave si comporta allo stesso modo con COUPON(FS,LS) e COUPONC(FS,LS).

ATTENZIONE Mandrino master e funzionamento asse Se il madrino master si trova prima della definizione dell'accoppiamento in funzionamento asse, anche dopo l'inserzione dell'accoppiamento è attivo il valore limite di velocità dal dato macchina: MD32000 $MA_MAX_AX_VELO (max. velocità dell'asse) Per evitare questo comportamento, prima della definizione dell'accoppiamento l'asse deve essere commutato nel modo di funzionamento mandrino (M3 S... o M4 S...).

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 622 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Definizione della coppia di mandrini sincroni Accoppiamento progettato: Nell'accoppiamento programmato il mandrino master e il mandrino slave vengono definiti mediante dato macchina. I mandrini progettati non possono essere modificati nel partprogram. La parametrizzazione dell'accoppiamento può avvenire nel partprogram con COUPDEF (presupposto: nessuna protezione alla scrittura impostata). Accoppiamento definito dall'utente: Con COUPDEF è possibile ridefinire o modificare un accoppiamento nel partprogram. Se è già attivo un accoppiamento, questo deve essere prima annullato con COUPDEL prima della definizione di un nuovo accoppiamento.

Definizione di un accoppiamento COUPDEF Un accoppiamento viene definito in modo completo con: COUPDEF(FS, LS, ÜFS, ÜLS, comportamento blocco, tipo di accoppiamento)

Mandrino slave (FS) e mandrino master (LS) Con i nomi assi per il mandrino slave ( FS ) e il mandrino master ( LS ) l'accoppiamento viene definito in modo univoco. I nomi assi devono essere programmati con ogni istruzione COUPDEF. Gli altri parametri di accoppiamento hanno effetto modale e devono essere programmati solo se vengono modificati. Esempio: COUPDEF(S2, S1)

Rapporto di trasmissione ÜFS/ÜLS Il rapporto di trasmissione viene indicato come rapporto del numero di giri tra mandrino slave (numeratore) e mandrino master (denominatore). Il numeratore deve essere programmato. Se non è programmato un denominatore, questo viene impostato = 1.0. Esempio: mandrino slave S2 e mandrino master S1, rapporto di trasmissione = 1/4 = 0.25. COUPDEF (S2, S1, 1.0, 4.0)

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 623

Nota Il rapporto di trasmissione può anche essere modificato ad accoppiamento inserito e con mandrini rotanti.

Comportamento di cambio blocco NOC, FINE, COARSE, IPOSTOP Nella programmazione del comportamento di cambio blocco è possibile la seguente notazione abbreviata: ● NO: immediatamente (impostazione predefinita) ● FI: al raggiungimento di "funzionamento sincrono fine" ● CO: al raggiungimento di "funzionamento sincrono grossolano" ● IP: al raggiungimento di IPOSTOP, ovvero dopo funzionamento sincrono del riferimento

Tipo di accoppiamento DV, AV

CAUTELA Il tipo di accoppiamento può essere variato solo ad accoppiamento disinserito!

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 624 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Attivazione del sincronismo COUPON, POSFS ● Attivazione dell'accoppiamento con riferimento angolare qualsiasi tra LS e FS:

– COUPON(S2, S1) – COUPON(S2, S1, POSFS)

– COUPON(S2) ● Attivazione dell'accoppiamento con traslazione angolare POSFS

Per accoppiamenti sincroni alla posizione con pezzi profilati. POSFS si riferisce alla posizione 0° del mandrino master in direzione di rotazione positiva campo di valori POSFS: 0°… 359,999°:

– COUPON(S2, S1, 30) In questo modo la traslazione angolare può essere modificata anche quando l'accoppiamento è già attivo.

Posizionamento del mandrino slave Quando l'accoppiamento dei mandrini sincroni è attivo, è possibile posizionare i mandrini slave nel campo ±180° anche indipendentemente dal movimento dei mandrini master.

Posizionamento SPOS Il mandrino slave può essere interpolato con SPOS = .... Esempio: SPOS[2] = IC(-90) Per maggiori informazioni su SPOS consultare: Bibliografia: Manuale di programmazione, Nozioni di base.

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 625

Numero di giri differenza differenziale M3 S... o M4 S... Un numero di giri differenziale è dato dalla sovrapposizione con segno di due sorgenti del numero di giri e viene riprogrammato per il mandrino slave ad es. con Sn=... o Mn=3, Mn=4 nel funzionamento di comando del numero di giri durante un accoppiamento attivo del mandrino sincrono. Questa componente del numero di giri viene ricavata dal mandrino master tramite il fattore di accoppiamento e il mandrino slave viene aggiunto con il segno corretto.

Nota Con la direzione di rotazione M3 o M4 occorre riprogrammare anche il numero di giri S..., altrimenti la mancata programmazione viene segnalata con un allarme. Per ulteriori informazioni sul numero di giri differenziale, consultare Bibliografia: /FB2/ Manuale delle funzioni di ampliamento; Mandrino sincrono (S3)

Numero di giri differenziale per COUPONC Applicazione di un movimento al numero di giri differenziale Tramite l'attivazione dell'accoppiamento sincrono mandrini con COUPONC il numero di giri attualmente attivo del mandrino slave ( M3 S... o M4 S...) viene sovrapposto.

Nota Abilitazione della sovrapposizione Una sovrapposizione di un numero di giri mandrino ( M3 S... o M4 S...) tramite accoppiamento sincrono mandrini COUPONC diventa attiva solo se la sovrapposizione è abilitata.

Limitazione della dinamica del mandrino master La dinamica del mandrino master deve essere limitata in modo tale che in caso di sovrapposizione del mandrino slave i valori limite della dinamica non vengano superati.

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 626 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Velocità, accelerazione: FA, ACC, OVRA, VELOLIMA La velocità assiale e l'accelerazione di un mandrino slave possono essere programmate con: ● FA[SPI(Sn)] oppure FA[Sn] (velocità assiale) ● ACC[SPI(Sn)] oppure ACC[Sn] (accelerazione assiale) ● OVRA[SPI(Sn)] oppure OVRA[Sn] (override assiale) ● VELOLIMA[SPI(Sn)] oppure VELOLIMA[Sn] (superamento o riduzione velocità

assiale) Con n = 1, 2, 3, ... (numero del mandrino slave) Bibliografia Manuale di programmazione, Nozioni di base

Nota Componente di accelerazione JERKLIMA[Sn] La programmazione di un superamento o di una riduzione velocità assiale non è attualmente attiva per i mandrini. Per maggiori informazioni sulla progettazione della dinamica assiale consultare: Bibliografia: /FB2/ Manuale di guida alle funzioni, Funzioni di ampliamento; Assi rotanti (R2)

Comportamento cambio blocco programmabile WAITC Con WAITC è possibile impostare il comportamento del cambio blocco, ad es. dopo la modifica di parametri di accoppiamento o di processi di posizionamento, con diverse condizioni di sincronismo (grossolano, fine, IPOSTOP). Se non sono specificate condizioni di sincronismo, vale il comportamento di cambio blocco indicato nella definizione COUPDEF. Esempio: Attesa del raggiungimento della condizione di sincronismo secondo quanto specificato in COUPDEF WAITC( ) Attesa del raggiungimento della condizione di sincronismo FINE per il mandrino slave S2 e COARSE per il mandrino slave S4: WAITC(S2, "FINE", S4, "COARSE")

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 627

Disattivazione accoppiamento COUPOF Con COUPOF è possibile impostare il comportamento di disattivazione dell'accoppiamento: ● Disattivazione dell'accoppiamento con cambio blocco immediato:

– COUPOF(S2,S1) (con indicazione del mandrino master) – COUPOF(S2) (senza indicazione del mandrino master)

● Disattivazione dell'accoppiamento dopo il superamento delle posizioni di disattivazione. Il cambio di blocco avviene dopo il superamento delle posizioni di disattivazione. – COUPOF(S2, S1, 150) (posizione di disattivazione FS: 150°) – COUPOF(S2, S1, 150, 30) (posizione di disattivazione FS: 150°, LS: 30°)

Disattivazione dell'accoppiamento con arresto del mandrino slave COUPOFS Con COUPOFS è possibile impostare il comportamento di disattivazione dell'accoppiamento con arresto del mandrino slave: ● Disattivazione dell'accoppiamento con arresto del mandrino slave e cambio di blocco

immediato: – COUPOFS(S2,S1) (con indicazione del mandrino master) – COUPOFS(S2) (senza indicazione del mandrino master)

● Disattivazione dell'accoppiamento dopo il superamento delle posizioni di disattivazione con arresto del mandrino slave. Il cambio di blocco avviene dopo il superamento delle posizioni di disattivazione. – COUPOFS(S2, S1, 150) (posizione di disattivazione FS: 150°)

Cancellazione accoppiamenti COUPDEL Con COUPDEL l'accoppiamento viene cancellato: ● COUPDEL(S2, S1) (con indicazione del mandrino master) ● COUPDEL(S2) (senza indicazione del mandrino master)

Parametri di accoppiamento COUPRES Con COUPRES vengono attivati i valori dell'accoppiamento parametrizzati nei dati macchina e nei dati di setting: ● COUPRES(S2, S1) (con indicazione del mandrino master) ● COUPRES(S2) (senza indicazione del mandrino master)

Accoppiamenti assi 9.5 Mandrino sincrono

Preparazione del lavoro 628 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabili di sistema Stato di accoppiamento attuale del mandrino slave Lo stato di accoppiamento attuale di un mandrino slave si può leggere tramite la seguente variabile di sistema: $AA_COUP_ACT[FS] Valore Significato 0 nessun accoppiamento attivo 4 accoppiamento tra mandrini sincroni attivo Nota Gli altri valori della variabile di sistema si riferiscono al funzionamento come asse Bibliografia /LGA1/ Manuale delle variabili di sistema

Attuale traslazione angolare L'offset angolare attuale di un mandrino slave rispetto al mandrino master si può leggere tramite la seguente variabile di sistema: ● $AA_COUP_OFFS[FS] (offset angolare sul lato del valore di riferimento) ● $VA_COUP_OFFS[FS] (offset angolare sul lato del valore attuale)

Nota Se in seguito ad una disattivazione con accoppiamento inserito e funzionamento a seguire, il regolatore viene ripristinato, l'offset di posizione non corrisponde più a quello programmato in origine. In questo caso è possibile leggere il valore di offset di posizione modificato e, se necessario, correggere il partprogram.

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 629

9.6 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Funzioni Prima della versione di SW 6.4 con l'accoppiamento Master/Slave si potevano accoppiare gli assi slave al relativo asse Master solo quando questi assi erano fermi. L'ampliamento della versione di SW 6.5 consente l'accoppiamento e la separazione di mandrini in rotazione, comandati in velocità, e la progettazione dinamica.

Sintassi MASLON(Slv1,Slv2,..., ) MASLOF(Slv1,Slv2,..., ) MASLDEF(Slv1,Slv2,..., asse master) Ampliamento della progettazione

dinamica MASLDEL(Slv1,Slv2,..., ) Estensione per la progettazione

dinamica MASLOFS(Slv1, Slv2, ..., ) Estensione per il mandrino slave

Nota Con le istruzioni MASLOF/MASLOFS lo stop preelaborazione implicito non è più necessario. In mancanza dello stop preelaborazione le variabili di sistema $P per gli assi slave, fino a quando non avviene una nuova programmazione, non presentano valori aggiornati.

Significato Generalità MASLON Attivazione di un accoppiamento temporaneo. MASLOF Interruzione di un accoppiamento attivo. Per i mandrini occorre

osservare gli ampliamenti.

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro 630 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ampliamento della progettazione dinamica MASLDEF Definizione/variazione dell'accoppiamento definito dall'utente

tramite dati macchina oppure dal partprogram. MASLOFS Interruzione dell'accoppiamento analoga a MASLOF e frenatura

automatica del mandrino slave. MASLDEL Interruzione di un raggruppamento asse master/slave e

cancellazione della definizione del raggruppamento. Slv1, Slv2, ... Assi slave che sono gestiti da un asse Master. Asse Master Asse che guida determinati assi slave in un raggruppamento

master/slave.

Esempi Esempio 1: Progettazione dinamica di un accoppiamento master/slave Progettazione dinamica di un accoppiamento master/slave da partprogram: L'asse principale dopo una rotazione del container assi deve diventare un asse master. Codice di programma Commento

MASLDEF(AUX,S3) ; Master S3 per AUX

MASLON(AUX) ; Accoppiamento On per AUX

M3=3 S3=4000 ; Senso di rotazione destrorso

MASLDEL(AUX) ; Cancellazione della progettazione e interruzione dell'accoppiamento

AXCTSWE(CT1) ; Rotazione del container

Esempi Esempio 2: Accoppiamento al valore reale di un asse slave Accoppiamento al valore reale di un asse slave sullo stesso valore dell'asse master attraverso PRESETON. Con un accoppiamento master/slave permanente il valore reale deve essere modificato sull'asse SLAVE attraverso PRESETON.

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 631

Codice di programma Commento

N37262 $MA_MS_COUPLING_ALWAYS_ACTIVE[AX2]=0 ; Disattivazione breve dell'accoppiamento permanente.

N37263 NEWCONF

N37264 STOPRE

MASLOF(Y1) ; Disaccoppiamento temporaneo.

N5 PRESETON(Y1,0,Z1,0,B1,0,C1,0,U1,0) ; Impostazione del valore reale degli assi slave non azzerati, dato che questi vengono attivati con Power On.

N37262 $MA_MS_COUPLING_ALWAYS_ACTIVE[AX2]=1 ; Attivazione dell'accoppiamento permanente.

N37263 NEWCONF

Esempio 3: Sequenza di accoppiamento Posizione 3/Container CT1 Per poter chiudere l'accoppiamento dopo la rotazione container con un altro mandrino si dovrà interrompere per prima cosa l'accoppiamento precedente, cancellare la progettazione e progettare il nuovo accoppiamento. Situazione iniziale:

Dopo la rotazione di uno slot:

Bibliografia: Manuale di guida alle funzioni, Funzioni di ampliamento; Vari pannelli operativi e NCU (B3), capitolo: "Container assi"

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro 632 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Informazioni generali MASLOF Con i mandrini nella modalità di funzionamento con comando del numero

di giri questa istruzione viene eseguita in modo immediato. I mandrini slave in rotazione fino a questo momento mantengono il loro numero di giri fino alla nuova programmazione del numero di giri.

Estensione della progettazione dinamica MASLDEF Definizione di un raggruppamento master/slave dal partprogram.

Precedentemente la definizione veniva eseguita esclusivamente attraverso i dati macchina.

MASLDEL L'istruzione annulla l'assegnazione degli assi slave all'asse master e interrompe contemporaneamente, analogamente a MASLOF, l'accoppiamento. Le definizioni master/slave stabilite nei dati macchina continuano ad essere mantenute.

MASLOFS MASLOFS può essere dunque utilizzato per frenare automaticamente i mandrini slave in caso di interruzione dell'accoppiamento. Con gli assi e i mandrini nel funzionamento di posizionamento, l'accoppiamento viene terminato e interrotto solo in stato di arresto.

Nota Per l'asse slave, il valore reale può essere sincronizzato attraverso PRESETON sullo stesso valore dell'asse master. A questo scopo l'accoppiamento durevole master/slave deve essere disattivato brevemente per impostare il valore reale dell'asse slave non azzerato con Power On sul valore dell'asse master. Successivamente viene nuovamente creato l'accoppiamento durevole. L'accoppiamento durevole slave/master viene attivato con l'impostazione del dato macchina MD37262 $MA_MS_COUPLING_ALWAYS_ACTIVE = 1 e non ha alcun effetto sui comandi di linguaggio dell'accoppiamento temporaneo.

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 633

Comportamento di accoppiamento con i mandrini Con i mandrini nella modalità di funzionamento con comando del numero di giri, il comportamento di accoppiamento di MASLON, MASLOF, MASLOFS e MASLDEL viene stabilito esplicitamente attraverso il dato macchina MD37263 $MA_MS_SPIND_COUPLING_MODE. Nell'impostazione standard con MD37263 = 0 l'accoppiamento e l'interruzione degli assi slave avvengono esclusivamente nello stato di arresto degli assi interessati. MASLOFS corrisponde a MASLOF. Con MD37263 = 1 l'istruzione di accoppiamento viene eseguita immediatamente e di conseguenza anche in movimento. L'accoppiamento viene immediatamente disattivato con MASLON e immediatamente interrotto con MASLOFS o MASLOF. I mandrini slave in rotazione fino a questo momento vengono automaticamente frenati con MASLOFS e mantengono con MASLOF i loro numeri di giri fino alla nuova programmazione del numero di giri.

Accoppiamenti assi 9.6 Raggruppamento master/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)

Preparazione del lavoro 634 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 635

Azioni sincrone al movimento 1010.1 10.1 Nozioni di base

Funzioni Le azioni sincrone offrono la possibilità di eseguire azioni in modo sincrono rispetto ai blocchi di lavorazione. Il momento di esecuzione delle azioni può essere definito tramite condizioni. Le condizioni vengono sorvegliate nel clock di interpolazione. Le azioni costituiscono quindi una reazione ad eventi in tempo reale, la loro esecuzione non è vincolata a limiti di blocco. Un'azione sincrona contiene inoltre indicazioni sulla sua durata e sulla frequenza di interrogazione delle variabili di esecuzione programmate, quindi anche alla frequenza di esecuzione delle azioni da avviare. Un'azione sincrona può essere attivata una sola volta oppure ciclicamente (sempre in un clock di interpolazione).

Possibili applicazioni

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro 636 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

● Ottimizzazione delle applicazioni critiche a livello di tempi di esecuzione (ad es. cambio utensile)

● Reazione rapida ad eventi esterni ● Programmazione di regolazioni AC ● Generazione di funzioni di sicurezza ● ....

Programmazione Un'azione sincrona si trova solo in un blocco e ha effetto a partire dal successivo blocco eseguibile di una funzione macchina (ad es., movimento di avanzamento con G0, G1, G2, G3). Le azioni sincrone consistono in un massimo di 5 elementi di comando con diversi compiti:

Sintassi: DO <Azione1> <Azione2> … <PAROLA CHIAVE> <Condizione> DO <Azione1> <Azione2> … ID=<n> <PAROLA CHIAVE> <Condizione> DO <Azione1> <Azione2> … IDS=<n> <PAROLA CHIAVE> <Condizione> DO <Azione1> <Azione2> …

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 637

Significato: DO Istruzione per l'attivazione dell'azione/delle azioni

programmata/e Vale solo a <Condizione> soddisfatta (fino a quando è programmata). → Vedere " Azioni "

<Azione1> <Azione2> …

Azione/i da avviare Esempi: • Assegnazione della variabile • Avvio del ciclo tecnologico

<PAROLA CHIAVE> Attraverso la parola chiave (WHEN, WHENEVER, FROM o EVERY) viene definita la verifica ciclica della <Condizione> di un'azione sincrona. → Vedere " Verifica ciclica della condizione "

<Condizione> Logica dei collegamenti per le variabili di esecuzione La condizione viene provata nel clock IPO.

ID=<n> o IDS=<n>

Numero identificativo Con il numero identificativo vengono stabiliti il campo di validità e la posizione all'interno della sequenza di lavorazione. → Vedere " Campo di validità e sequenza di lavorazione "

Coordinamento di azioni sincrone/cicli tecnologici Per il coordinamento di azioni sincrone/cicli tecnologici sono disponibili i seguenti comandi: Comando Significato CANCEL(<n>) Cancellazione delle azioni sincrone

→ Vedere " Cancellazione dell'azione sincrona " LOCK(<n>) Blocco delle azioni sincrone UNLOCK(<n>) Abilitazione delle azioni sincrone RESET Reset del ciclo tecnologico Relativamente a LOCK, UNLOCK e RESET:

→ Vedere " Blocco, sblocco, reset "

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro 638 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Codice di programma Commento

WHEN $AA_IW[Q1]>5 DO M172 H510 ; Se il valore reale dell'asse Q1 supera i 5 mm, vengono inviate all'interconnessione PLC le funzioni ausiliarie M172 e H510.

10.1.1 Campo di validità e sequenza di lavorazione (ID, IDS)

Funzioni Campo di validità Il campo di validità di un'azione sincrona viene stabilito attraverso ID di riconoscimento o IDS: ID non modale: Azione sincrona con effetto blocco a blocco nel funzionamento

automatico ID: Azione sincrona modale in funzionamento automatico fino alla fine

del programma IDS: Azione sincrona statica, con validità modale in ogni modo operativo,

anche attraverso la fine del programma Applicazioni ● Rettifica AC nel funzionamento JOG ● Logica combinatoria per Safety Integrated ● Funzioni di sorveglianza, reazioni agli stati di macchina in tutti i modi operativi Sequenza operativa Le azioni sincrone con validità modale e statica vengono elaborate in sequenza in base al loro numero ID o IDS (ID=<n> o IDS=<n>) nel clock di interpolazione. Le azioni sincrone attive blocco per blocco (senza numero ID) vengono eseguite dopo l'esecuzione delle azioni sincrone modali, secondo l'ordine in cui sono state programmate.

Nota Tramite le impostazioni dei dati macchina è possibile proteggere le azioni sincrone modali dalle modifiche o cancellazioni (→ Costruttore della macchina!).

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 639

Programmazione Sintassi Significato ID non modale L'azione sincrona è attiva solo nel funzionamento automatico. Vale

soltanto per il blocco successivo eseguibile (blocco con istruzioni di movimento o altra azione di macchina), è quindi attiva blocco-blocco. Esempio: WHEN $A_IN[3]==TRUE DO $A_OUTA[4]=10

L'azione sincrona agisce nei blocchi successivi in modo modale e può essere disattivata con CANCEL(<n>) oppure sovrascritta programmando una nuova azione sincrona con lo stesso ID. Le azioni sincrone attive nel blocco M30 ritardano la fine del programma. Le azioni sincrone ID sono attive solo nel funzionamento automatico. Campo di valori per <n>: 1 ... 255

ID=<n> ...

Esempio: ID=2 EVERY $A_IN[1]==1 DO POS[X]=0

Le azioni sincrone statiche agiscono in modo modale in tutti i modi operativi. Restano attive anche dopo la fine del programma e possono essere attivate subito dopo il Power On con un ASUP. In questo modo è possibile attivare azioni che devono essere eseguite indipendentemente dal modo operativo selezionato nell'NC. Campo di valori per <n>: 1 ... 255

IDS=<n>

Esempio: IDS=1 EVERY $A_IN[1]==1 DO POS[X]=100

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro 640 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.1.2 Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY)

Funzioni Tramite una parola chiave viene definita la verifica ciclica della condizione di un'azione sincrona. Se non è programmata una parola chiave, ciascuna azione sincrona viene eseguita in un clock IPO.

Parole chiavi Nessuna parola chiave L'esecuzione dell'azione non è legata a nessuna condizione.

L'azione viene eseguita ciclicamente in ogni clock di interpolazione.

WHEN La condizione viene interrogata ad ogni clock di interpolazione fino a quando non risulta soddisfatta, la relativa azione viene eseguita una sola volta.

WHENEVER La condizione viene verificata ciclicamente in ogni clock dell'interpolatore. Fintanto che la condizione risulta soddisfatta anche la relativa azione viene eseguita in ogni clock di interpolazione.

FROM La condizione viene verificata in ogni clock di interpolazione, fino a quando non risulta soddisfatta una volta. A partire da questo momento l'azione viene eseguita fintanto che è attiva l'azione sincrona, cioè anche nel caso in cui la condizione non risulti più soddisfatta.

EVERY La condizione viene interrogata in ogni clock di interpolazione. L'azione viene eseguita una volta quando è soddisfatta la condizione. Gestita su fronte: l'azione viene rieseguita quando la condizione passa da FALSE a TRUE.

Variabili di esecuzione Le variabili impiegate vengono valutate nel clock di interpolazione. Le variabili di esecuzione nelle azioni sincrone non attivano gli stop preelaborazione. Analisi: Se un partprogram contiene delle variabili di esecuzione (ad es. un valore attuale, la posizione di un ingresso o di un'uscita digitali, ecc.), la preelaborazione viene arrestata fino a quando il blocco precedente è stato eseguito e sono stati emessi i valori delle variabili di esecuzione.

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 641

Esempi Esempio 1: Nessuna parola chiave Codice di programma Commento

DO $A_OUTA[1]=$AA_IN[X] ; Emissione del valore reale sull'uscita analogica.

Esempio 2: WHENEVER Codice di programma Commento

WHENEVER $AA_IM[X] > 10.5*SIN(45) DO … ; Confronto con l'espressione calcolata nella preelaborazione.

WHENEVER $AA_IM[X] > $AA_IM[X1] DO … ; Confronto con un'altra variabile di esecuzione.

WHENEVER ($A_IN[1]==1) OR ($A_IN[3]==0) DO ... ; Due confronti concatenati fra loro.

Esempio 3: EVERY

Codice di programma Commento

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=IC(10) FA[U]=900 ; Ogni volta che il valore reale dell'asse B del sistema di coordinate macchina supera il valore 75, l'asse U deve progredire con un avanzamento assiale pari a 10.

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro 642 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Condizione La condizione rappresenta un'espressione logica formulabile liberamente mediante operatori booleani. Le espressioni booleane devono essere sempre scritte tra parentesi. La condizione viene verificata in ogni clock di interpolazione. Prima della condizione è possibile indicare un codice G. In questo modo è possibile ottenere che esistano delle impostazioni per la valorizzazione della condizione e l'azione/il ciclo tecnologico da eseguire indipendentemente dallo stato del partprogram attivo. Il disaccoppiamento, delle azioni sincrone dall'ambiente di programma, è necessario poiché le azioni sincrone devono eseguire le loro azioni in una condizione base definita in determinati momenti, quando sono soddisfatte le condizioni di attivazione. Casi di impiego Definizione dei sistemi di misura per la valutazione delle condizioni e l'azione mediante i codici G G70, G71, G700, G710. Un codice G indicato per la condizione vale per la valutazione della condizione e per l'azione, se per quest'ultima non è indicato alcun codice G proprio. Per ogni parte della condizione può essere programmato solo un codice G del gruppo di codici G. Possibili condizioni ● Confronto tra variabili di esecuzione (ingressi/uscite analogici/digitali, ecc.) ● Collegamento booleano fra risultati di un confronto ● Calcolo di valori in tempo reale ● Tempo/distanza dall'inizio blocco ● Distanza dalla fine blocco ● Valori di misura, risultati di misura ● Valori servo ● Velocità, stato degli assi

Azioni sincrone al movimento 10.1 Nozioni di base

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 643

10.1.3 Azioni (DO)

Funzioni Nelle azioni sincrone è possibile programmare una o più azioni. Tutte le azioni programmate in un blocco si attivano nello stesso clock di interpolazione.

Sintassi DO <Azione1> <Azione2> ...

Significato DO Quando la condizione è soddisfatta viene eseguita l'azione o un ciclo

tecnologico. <Azione> Azione avviata quando la condizione è soddisfatta, ad es. assegnazione

della variabile, attivazione dell'accoppiamento asse, impostazione delle uscite NCK, emissione delle funzioni M, S e H, preimpostazione del codice G programmato, ...

I codici G possono essere programmati in azioni sincrone per le azioni/cicli tecnologici. Per tutte le azioni nel blocco e i cicli tecnologici questo codice G indica eventualmente un codice G diverso da quello impostato per la condizione. Se i cicli tecnologici sono nella parte di azione, il codice G continua ad avere validità modale, anche una volta terminato il ciclo tecnologico, per tutte le azioni seguenti fino al successivo codice G. Per ogni parte di azione può essere programmato un solo un codice G del gruppo di codici G (G70, G71, G700, G710).

Esempio: Azione sincrona con due azioni Codice di programma Commento

WHEN $AA_IM[Y]>=35.7 DO M135 $AC_PARAM=50 ; Se la condizione viene soddisfatta, M135 viene emessa al PLC e l'override viene settato al 50%.

Azioni sincrone al movimento 10.2 Operatori per condizioni e azioni

Preparazione del lavoro 644 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.2 10.2 Operatori per condizioni e azioni Confronti (==, <>, <, >, <=, >=)

Nell'ambito delle condizioni è possibile confrontare variabili o espressioni parziali. Il risultato è sempre del tipo BOOL. Sono ammessi tutti gli operatori di confronto noti.

operatori booleani (NOT, AND, OR, XOR)

Variabili, costanti oppure confronti possono essere collegati tra di loro con i già noti operatori booleani.

Operatori a bit (B_NOT, B_AND, B_OR, B_XOR)

Sono possibili gli operatori a bit B_NOT, B_AND, B_OR, B_XOR.

Operazioni di base (+, -, *, /, DIV, MOD)

Le variabili di esecuzione possono essere collegate, tramite operazioni matematiche, tra di loro o con costanti.

Funzioni matematiche (SIN, COS, TAN, ASIN, ACOS, ABS, TRUNC, ROUND, LN, EXP, ATAN2, POT, SQRT, CTAB, CTABINV).

Alle variabili del tipo di dati REAL possono essere applicate funzioni matematiche.

Indicizzazione L'indicizzazione è possibile con espressioni di esecuzione.

Esempio ● Operazioni di base Vale il calcolo „punto prima del trattino“, le espressioni in parentesi sono consentite. Gli operatori DIV e MOD sono ammessi anche per dati del tipo REAL Programmazione Commento

DO $AC_PARAM[3] = $A_INA[1]-$AA_IM[Z1] ; Sottrazione di due

variabili di esecuzione

WHENEVER $AA_IM[x2] < $AA_IM[x1]-1.9 DO $A_OUT[5] = 1

;

Sottrazione di una costante di variabili

DO $AC_PARAM[3] = $INA[1]-4*SIN(45.7 $P_EP[Y])*R4

; Espressione costante da calcolare in anticipo

Azioni sincrone al movimento 10.2 Operatori per condizioni e azioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 645

● Funzioni matematiche Programmazione Commento

DO $AC_PARAM[3] = COS($AC_PARAM[1]) ;

;

● Espressioni in tempo reale Programmazione Commento

ID=1 WHENEVER ($AA_IM[Y]>30) AND ($AA_IM[Y]<40) DO $AA_OVR[S1]=80

; Selezione di una finestra di posizione

ID=67 DO $A_OUT[1]=$A_IN[2] XOR $AN_MARKER[1] ; Valutazione di 2 segnali booleani

ID=89 DO $A_OUT[4]=$A_IN[1] OR ($AA_IM[Y]>10) ; Emissione del risultato di un confronto

● Variabile di esecuzione indicizzata Programmazione Commento

WHEN…DO $AC_PARAM[$AC_MARKER[1]] = 3 ;

Non è ammesso ;

$AC_PARAM[1] = $P_EP[$AC_MARKER] ;

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 646 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.3 10.3 Variabili di esecuzione per le azioni sincrone

10.3.1 Variabili di sistema

Funzioni Con l'ausilio di variabili di sistema è possibile leggere e scrivere i dati dell'NC. Le variabili di sistema si distinguono in variabili di preelaborazione e variabili di esecuzione. Le variabili di preelaborazione vengono eseguite sempre al momento della preelaborazione. Le variabili di esecuzione determinano il loro valore sempre in rapporto allo stato attuale dell'esecuzione principale.

Denominazione Il nome delle variabili di sistema inizia generalmente con il carattere $: Variabili di preelaborazione: $M... Dati macchina $S... Dati di setting, settori di protezione $T... Dati di gestione utensili $P... Valori programmati, dati di preelaborazione $C... Variabili di ciclo dei cicli di avvolgimento ISO $O... Dati opzionali R ... Parametri R

Variabili di esecuzione: $$A... Dati di elaborazione attuali $$V... Dati servo $R... Parametri R

Una seconda lettera descrive la possibilità di accedere alla variabile: N... Valore globale NCK (di validità generale) C... Valore specifico per canale A... Valore specifico per asse

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 647

La seconda lettera viene generalmente utilizzata solo per le variabili di esecuzione. Le variabili di preelaborazione come ad es. $P_ vengono generalmente eseguite senza seconda lettera. Al prefisso ($ seguito da una o due lettere) seguono sempre un carattere di sottolineatura (underscore) e il successivo nome di variabile (generalmente nella sua forma inglese o abbreviato).

Tipi di dati Le variabili di esecuzione possono avere i seguenti tipi di dati: INT Integer per i valori interi con segno REAL Real per i numeri frazionari razionali BOOL Boolean TRUE e FALSE CHAR Carattere ASCII STRING Stringa di caratteri alfanumerici AXIS Indirizzi d'asse e mandrini

Le variabili di preelaborazione possono inoltre avere i seguenti tipi di dati: FRAME Trasformazioni delle coordinate

Campi delle variabili Le variabili di sistema possono essere create come campi da 1 a 3 dimensioni. Vengono supportati i seguenti tipi di dati: BOOL, CHAR, INT, REAL, STRING, AXIS Il tipo di dati dell'indice può essere del tipo INT e AXIS, e questi possono essere ordinati a piacere. Le variabili STRING possono essere create solo in modo bidimensionale. Esempi di definizioni dei campi: DEF BOOL $AA_NEWVAR[x,y,2] DEF CHAR $AC_NEWVAR[2,2,2] DEF INT $AC_NEWVAR[2,10,3] DEF REAL $AA_VECTOR[x,y,z] DEF STRING $AC_NEWSTRING[3,3] DEF AXIS $AA_NEWAX[x,3,y]

Nota La visualizzazione di variabili di sistema a 3 dimensioni è possibile in modo illimitato se esiste una variabile BTSS nelle variabili di sistema.

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 648 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.3.2 Conversione implicita del tipo

Funzione Durante le assegnazioni di valori e i trasferimenti di parametri è possibile assegnare o trasmettere variabili di diversi tipi di dati. La conversione implicita del tipo attiva una conversione del tipo di valori.

Possibili conversioni di tipi

a REAL INT BOOL CHAR STRING AXIS FRAME da REAL sì sì* sì1) – – – – INT sì sì sì1) – – – – BOOL sì sì sì – – – –

Spiegazioni * Per la conversione da REAL a INT, un valore frazionario >=0.5 viene arrotondato alla

cifra successiva, gli altri valori vengono arrotondati alla cifra precedente (vedere funzione ROUND). In caso di superamento dei valori viene attivato un allarme.

1) Un valore <> 0 corrisponde a TRUE, un valore == 0 corrisponde a FALSE

Risultati Conversione del tipo da REAL o INTEGER a BOOL

Risultato BOOL = TRUE se il valore di REAL o INTEGER è diverso da zero

Risultato BOOL = FALSE se il valore di REAL o INTEGER è uguale a zero

Conversione del tipo da BOOL a REAL o INTEGER

Risultato REAL TRUE se il valore di BOOL = TRUE è (1)

Risultato INTEGER = TRUE se il valore di BOOL = TRUE è (1)

Conversione del tipo da BOOL a REAL o INTEGER

Risultato REAL FALSE se il valore di BOOL = FALSE è (0)

Risultato INTEGER = FALSE se il valore di BOOL = FALSE è (0)

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 649

Esempi di conversioni implicita del tipo Conversione del tipo da INTEGER a BOOL

$AC_MARKER[1] = 561

ID=1 WHEN $A_IN[1] == TRUE DO $A_OUT[0]=$AC_MARKER[1]

Conversione del tipo da REAL a BOOL

R401 = 100.542

WHEN $A_IN[0] == TRUE DO $A_OUT[2]=$R401

Conversione del tipo da BOOL a INTEGER

ID=1 WHEN $A_IN[2] == TRUE DO $AC_MARKER[4] = $A_OUT[1]]

Conversione del tipo da BOOL a REAL

R401 = 100.542

WHEN $A_IN[3] == TRUE DO $R10 = $A_OUT[3]

10.3.3 Variabili GUD

Variabili GUD che supportano le azioni sincrone Oltre alle variabili di sistema specifiche si possono utilizzare nelle azioni sincrone anche le variabili utente globali predefinite (GUD di azione sincrona. Il numero di GUD di azione sincrona a disposizione dell'utente è parametrizzato in modo specifico per il tipo di dati e di accesso tramite i seguenti dati macchina: ● MD18660 $MM_NUM_SYNACT_GUD_REAL[<x>] = <numero> ● MD18661 $MM_NUM_SYNACT_GUD_INT[<x>] = <numero> ● MD18662 $MM_NUM_SYNACT_GUD_BOOL[<x>] = <numero> ● MD18663 $MM_NUM_SYNACT_GUD_AXIS[<x>] = <numero> ● MD18664 $MM_NUM_SYNACT_GUD_CHAR[<x>] = <numero> ● MD18665 $MM_NUM_SYNACT_GUD_STRING[<x>] = <numero> Tramite l'indice <x> si specifica il tipo di blocco (diritti di accesso), mentre tramite il valore <numero> si definiscono quanti devono essere i GUD di azione sincrona del tipo di dati in questione (REAL, INT, ...). nel rispettivo blocco dati viene creato quindi per ogni tipo di dati una variabile di campo unidimensionale con il seguente schema di nomi: SYG_<tipo di dati><diritto di accesso>[<indice>]:

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 650 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Indice <x>

Tipo di dati (MD18660 ... MD18665)

Blocco REAL INT BOOL AXIS CHAR STRING 0 SGUD SYG_RS[ i ] SYG_IS[ i ] SYG_BS[ i ] SYG_AS[ i ] SYG_CS[ i ] SYG_SS[ i ] 1 MGUD SYG_RM[ i ] SYG_IM[ i ] SYG_BM[ i ] SYG_AM[ i ] SYG_CM[ i ] SYG_SM[ i ] 2 UGUD SYG_RU[ i ] SYG_IU[ i ] SYG_BU[ i ] SYG_AU[ i ] SYG_CU[ i ] SYG_SU[ i ] 3 GUD4 SYG_R4[ i ] SYG_I4[ i ] SYG_B4[ i ] SYG_A4[ i ] SYG_C4[ i ] SYG_S4[ i ] 4 GUD5 SYG_R5[ i ] SYG_I5[ i ] SYG_B5[ i ] SYG_A5[ i ] SYG_C5[ i ] SYG_S5[ i ] 5 GUD6 SYG_R6[ i ] SYG_I6[ i ] SYG_B6[ i ] SYG_A6[ i ] SYG_C6[ i ] SYG_S6[ i ] 6 GUD7 SYG_R7[ i ] SYG_I7[ i ] SYG_B7[ i ] SYG_A7[ i ] SYG_C7[ i ] SYG_S7[ i ] 7 GUD8 SYG_R8[ i ] SYG_I8[ i ] SYG_B8[ i ] SYG_A8[ i ] SYG_C8[ i ] SYG_S8[ i ] 8 GUD9 SYG_R9[ i ] SYG_I9[ i ] SYG_B9[ i ] SYG_A9[ i ] SYG_C9[ i ] SYG_S9[ i ]

con i = 0 ... (<numero> - 1) Blocco: _N_DEF_DIR/_N_ ... _DEF, ad es. per SGUD ⇒ _N_DEF_DIR/_N_SGUD_DEF

Caratteristiche I GUD di azione sincrona hanno le seguenti caratteristiche: ● I GUD di azione sincrona possono essere letti e scritti in azioni sincrone e programmi

pezzo/cicli ● Ai GUD di azione sincrona si può accedere tramite BTSS ● I GUD di azione sincrona vengono visualizzati sulla superficie operativa dell'HMI nel

settore operativo "Parametri" ● I GUD di azione sincrona si possono utilizzare su HMI nel wizard, nella visualizzazione

variabili e nel protocollo variabili ● La dimensione del campo per i GUD di azione sincrona di tipo STRING è fissata a 32 (31

caratteri + \0). ● Anche se non è stato creato manualmente un file di definizione per i dati utente globali

(GUD), è possibile leggere nel rispettivo blocco GUD, a partire dall'HMI, i GUD di azione sincrona definiti tramite i dati macchina..

ATTENZIONE

Le variabili utente (GUD, PUD, LUD) possono essere definite con lo stesso nome del GUD di azione sincrona (DEF ... SYG_xy) solo se non vi sono GUD di azione sincrona parametrizzati con lo stesso nome (MD18660 - MD18665). I GUD definiti dall'utente non possono essere impiegati in azioni sincrone.

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 651

Diritti di accesso I diritti di accesso definiti in un file di definizione GUD restano validi e si riferiscono solo alle variabili GUD definite in questo file di definizione GUD.

Comportamento in cancellazione Se il contenuto di un determinato file di definizione GUD viene riattivato, per prima cosa il vecchio blocco dati GUD viene cancellato nel file system attivo. I GUD di azione sincrona progettati vengono ugualmente resettati. Questo processo è possibile anche tramite HMI nel settore operativo "Servizi" > "Definisci e attiva dati utente (GUD)".

10.3.4 Identificatore asse di default (NO_AXIS)

Funzioni Alle variabili o ai parametri del tipo AXIS non inizializzati con un valore è possibile assegnare degli identificatori asse di default definiti. Le variabili d'asse non definite vengono inizializzate con questo valore di default. I nomi d'asse validi non inizializzati vengono rilevati nelle azioni sincrone mediante una richiesta della variabile "NO_AXIS". A questo identificatore asse non inizializzato viene assegnato l'identificatore asse di default progettato tramite un dato macchina. Costruttore della macchina Mediante i dati macchina è necessario definire e impostare almeno un identificatore asse esistente valido. Si possono tuttavia impostare anche tutti gli identificatori asse validi esistenti. Fare attenzione alle indicazioni del costruttore della macchina

Nota Alle nuove variabili create viene così automaticamente assegnato durante la definizione il valore registrato nel dato macchina per i nomi asse di default. Per ulteriori informazioni su una definizione valida tramite dato macchina vedere: Bibliografia: /FBSY/ Manuale di guida alle funzioni, Azioni sincrone

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 652 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sintassi PROC UP(AXIS PAR1=NO_AXIS, AXIS PAR2=NO_AXIS) IF PAR1 <>NO_AXIS...

Significato PROC Definizione di un sottoprogramma UP Nome di sottoprogramma per il rilevamento PARn Parametro n NO_AXIS Inizializzazione del parametro formale con identificatore asse di

default

Esempio: Definizione di variabili asse nel programma principale Codice di programma DEF AXIS AXVAR UP( , AXVAR)

10.3.5 Marker per azioni sincrone ($AC_MARKER[n])

Funzioni La variabile di campo $AC_MARKER[n] può essere letta e scritta nelle azioni sincrone. Queste variabili possono risiedere nella memoria del file system attivo o passivo.

Variabile per azioni sincrone: Tipo di dati INT $AC_MARKER[n] Merker/contatori specifici per canale del tipo di

dati INTEGER

$MC_MM_NUM_AC_MARKER Dato macchina per l'impostazione del numero di merker specifici di canale per le azioni sincrone di movimento

n Indice di campo delle variabili 0-n

Esempio di lettura/scrittura di variabili merker Codice di programma

WHEN ... DO $AC_MARKER[0] = 2

WHEN ... DO $AC_MARKER[0] = 3

WHENEVER $AC_MARKER[0] == 3 DO $AC_OVR=50

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 653

10.3.6 Parametri per azioni sincrone ($AC_PARAM[n])

Funzioni I parametri di azioni sincrone $AC_PARAM[n] servono per i calcoli e come memoria intermedia in azioni sincrone. Queste variabili possono risiedere nella memoria del file system attivo o passivo.

Variabile per azioni sincrone: Tipo di dati REAL Tali parametri sono contenuti con lo stesso nome, una volta in ogni canale. $AC_PARAM[n] Variabile di calcolo per le azioni sincrone di movimento (REAL) $MC_MM_NUM_AC_PARAM Dato macchina per l'impostazione del numero dei parametri

per le azioni sincrone di movimento fino a 20000 max. n Indice di campo del parametro 0n

Esempio di parametri per azioni sincrone $AC_PARAM[n] Codice di programma

$AC_PARAM[0]=1.5

$AC_MARKER[0]=1

ID=1 WHEN $AA_IW[X]>100 DO $AC_PARAM[1]=$AA_IW[X]

ID=2 WHEN $AA_IW[X]>100 DO $AC_MARKER[1]=$AC_MARKER[2]

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 654 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.3.7 Parametri di calcolo ($R[n])

Funzioni Questa variabile statica di campo serve per operazioni di calcolo nel partprogram e nelle azioni sincrone.

Sintassi Programmazione nel partprogram: REAL R[n] REAL Rn

Programmazione nelle azioni sincrone: REAL $R[n] REAL $Rn

Parametri di calcolo L'uso di parametri di calcolo consente: ● la memorizzazione di valori che devono mantenere validità anche dopo la fine

programma, Reset NC e Power On. ● La visualizzazione di valori memorizzati nella maschera di parametri R.

Esempi Codice di programma Commento

WHEN $AA_IM[X]>=40.5 DO $R10=$AA_MM[Y] ; Impiego di R10 nell'azione sincrona.

G01 X500 Y70 F1000

STOPRE ; Arresto dell'avanzamento

IF R10>20 ; Valutazione della variabile di calcolo.

Codice di programma

SYG_AS[2]=X

SYG_IS[1]=1

WHEN $AA_IM[SGY_AS[2]]>10 DO $R3=$AA_EG_DENOM[SYG_AS[1]], SYG_AS[2]]

WHEN $AA_IM[SGY_AS[2]]>12 DO $AA_SCTRACE[SYG_AS[2]]=1

SYG_AS[1]=X

SYG_IS[0]=1

WHEN $AA_IM[SGY_AS[1]]>10 DO $R3=$$MA_POSCTRL_GAIN[SYG_IS[0]],SYG_AS[1]]

WHEN $AA_IM[SGY_AS[1]]>10 DO $R3=$$MA_POSCTRL_GAIN[SYG_AS[1]]

WHEN $AA_IM[SGY_AS[1]]>15 DO $$MA_POSCTRL_GAIN[SYG_AS[0]], SYG_AS[1]]=$R3

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 655

10.3.8 Lettura/scrittura dei dati macchina NC e dei dati setting NC

Funzioni La lettura e la scrittura di dati macchina e dati setting NC è anche possibile da azioni sincrone. Durante la lettura e scrittura di elementi di campo dei dati macchina è possibile omettere un indice durante la programmazione. Se ciò accade nel partprogram, durante la lettura viene letto il primo elemento di campo e durante la scrittura tutti gli elementi del campo sono descritti con il valore. In questo caso, nelle azioni sincrone viene letto o scritto solo il primo elemento.

Definizione DM, DS con $: lettura del valore al momento dell'interpretazione delle azioni sincrone $$: lettura del valore nell'esecuzione principale

Lettura dei valori DM e DS al momento della preelaborazione Vengono indirizzati dall'azione sincrona con il carattere $ e valutati al momento della preelaborazione. ID=2 WHENEVER $AA_IM[z]<$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0

;In questo caso per il pendolamento viene richiamato il settore di inversione 2 considerato come costante

Lettura dei valori DM e DS al momento dell'esecuzione Vengono indirizzati dall'azione sincrona con il carattere $$ e valutati al momento dell'esecuzione. ID=1 WHENEVER $AA_IM[z]<$$SA_OSCILL_REVERSE_POS2[Z]-6 DO $AA_OVR[X]=0

;In questo caso si presuppone che la posizione di inversione possa essere modificata dalla superficie HMI durante la lavorazione.

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 656 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Scrittura dei valori DM e DS al momento dell'esecuzione il diritto di accesso attualmente impostato deve permettere anche l'accesso in scrittura. L'efficacia per tutti i dati macchina e i dati di setting è descritta nella Bibliografia: /LIS/, Liste (Volume 1). I dati DM e DS da scrivere vanno indirizzati facendoli precedere dal prefisso $$.

Esempio Codice di programma Commento

ID=1 WHEN $AA_IW[X]>10 DO $$SN_SW_CAM_PLUS_POS_TAB_1[0]=20

; Modifica della posizione di commutazione delle camme SW. Nota: devono essere modificate 2-3 clock IPO prima del raggiungimento della posizione.

$$SN_SW_CAM_MINUS_POS_TAB_1[0]=30

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 657

10.3.9 Variabili del timer ($AC_Timer[n])

Funzioni La variabile di sistema $AC_TIMER[n] consente di avviare azioni dopo periodi di attesa prestabiliti.

Variabile del timer: Tipo di dati REAL $AC_TIMER[n] Timer specifico per canale del tipo di dati REAL s Unità in secondi n Indice della variabile Timer

Impostazione del timer Il calcolo dell'esponente di una variabile del Timer viene avviato attraverso l'assegnazione del valore: $AC_TIMER[n] = value

n: Numero delle variabili di tempo value: Valore iniziale (ad es. R "0")

Arresto del timer Il calcolo dell'esponente di una variabile del Timer viene interrotto dall'assegnazione di un valore negativo: $AC_TIMER[n]=-1

Lettura del timer Il valore in tempo attuale può essere letto con variabile timer attiva o ferma. Dopo l'arresto di una variabile timer assegnando -1, l'ultimo valore permane e può essere letto.

Esempio Emissione di un valore reale tramite uscita analogica 500 ms dopo il riconoscimento di un ingresso digitale:

Codice di programma Commento

WHEN $A_IN[1]==1 DO $AC_TIMER[1]=0

WHEN $AC_TIMER[1]>=0.5 DO $A_OUTA[3]=$AA_IM[X] $AC_TIMER[1]=-1

;

Reset e avvio del timer

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 658 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.3.10 Variabili FIFO ($AC_FIFO1[n] ... $AC_FIFO10[n])

Funzioni Per la memorizzazione di sequenze di dati correlate sono disponibili 10 variabili FIFO (memoria circolare). Tipo di dati: REAL Utilizzo: ● Misure cicliche ● Lavorazione a cicli Su ciascun elemento l'accesso può avvenire in lettura e in scrittura.

Variabile FIFO Il numero delle variabili FIFO disponibili viene stabilito per il dato macchina MD28260 $MC_NUM_AC_FIFO. Il numero dei valori scrivibili in una variabile FIFO viene definito attraverso il dato macchina MD28264 $MC_LEN_AC_FIFO. Tutte le variabili FIFO hanno la stessa lunghezza. La somma di tutti gli elementi FIFO viene costruita solo se in MD28266 $MC_MODE_AC_FIFO è impostato Bit0. Gli indici da 0 a 5 hanno un significato speciale: Indice Significato

Durante la scrittura:

Il nuovo valore viene memorizzato nel FIFO. 0

Durante la lettura: L'elemento depositato da più tempo viene letto e rimosso dal FIFO.

1 Accesso all'elemento depositato da più tempo 2 Accesso all'elemento depositato da meno tempo 3 Somma di tutti gli elementi FIFO 4 Numero degli elementi disponibili nel FIFO

Su ciascun elemento del FIFO l'accesso può avvenire in lettura e in scrittura. Il reset delle variabili FIFO avviene resettando il numero degli elementi, es.per la prima variabile FIFO: $AC_FIFO1[4] = 0

5 Indice di scrittura attuale relativo all'inizio del FIFO da 6 a nmax Accesso all'elemento FIFO n-tes

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 659

Esempio: Memoria circolare Durante l'esecuzione di una produzione viene utilizzato un nastro trasportatore per il trasporto dei prodotti con diverse lunghezze (a, b, c, d). Sul nastro trasportatore di lunghezza "I" vengono quindi trasportate contemporaneamente quantità diverse di prodotti, a seconda delle lunghezze dei prodotti in questione. Tenendo conto che la velocità di trasporto non cambia, occorre adattare il prelevamento dei prodotti dal nastro ai tempi variabili del loro arrivo.

Codice di programma Commento

DEF REAL ZWI=2.5 ; Distanza costante fra i prodotti applicati.

DEF REAL GESAMT=270 ; Distanza fra la posizione di misurazione della lunghezza e la posizione di prelievo.

EVERY $A_IN[1]==1 DO $AC_FIFO1[4]=0 ; All'inizio del processo resettare FIFO.

EVERY $A_IN[2]==1 DO $AC_TIMER[0]=0 ; Se un prodotto interrompe la barriera luminosa, avviare la misurazione temporale.

EVERY $A_IN[2]==0 DO $AC_FIFO1[0]=$AC_TIMER[0]*$AA_VACTM[B] ; Se la barriera luminosa è libera, calcolare la lunghezza del prodotto, attraverso il tempo misurato e la velocità del trasporto, dopodiché memorizzarla nel FIFO

EVERY $AC_FIFO1[3]+$AC_FIFO1[4]*ZWI>=GESAMT DO POS[Y]=-30 $R1=$AC_FIFO1[0]

; Non appena la somma di tutte le lunghezze prodotto e le distanze intermedie risulta maggiore/uguale alla distanza fra posizione di applicazione e posizione di prelievo, estrarre il prodotto nella posizione di prelievo dal nastro trasportatore, e leggere dal FIFO la relativa lunghezza.

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 660 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.3.11 Informazioni sui tipi di blocco nell'interpolatore ($AC_BLOCKTYPE, $AC_BLOCKTYPEINFO, $AC_SPLITBLOCK)

Funzioni Per le azioni sincrone sono disponibili le seguenti variabili di sistema che forniscono un’indicazione sul blocco attualmente in elaborazione: ● $AC_BLOCKTYPE ● $AC_BLOCKTYPEINFO ● $AC_SPLITBLOCK

Variabili Blocktype e Blocktypeinfo $AC_BLOCKTYPE $AC_BLOCKTYPEINFO Valore: Valore: 0 diverso da 0 T H Z E significato: Blocco originale

Blocco intermedio Esecutore per blocco intermedio:

1 1 0 0 0 Blocco generato internamente, nessuna ulteriore indicazione

2 2 0 0 1 Smussi/raccordi: Retta 2 2 0 0 2 Smussi/raccordi: Cerchio 3 3 0 0 1 WAB: accostamento con retta 3 3 0 0 2 WAB: accostamento con quarto di cerchio 3 3 0 0 3 WAB: accostamento con semicerchio Correzione utensile: 4 4 0 0 1 Blocco di accostamento dopo STOPRE 4 4 0 0 2 Blocchi di collegamento nel caso di punto di

intersezione non trovato 4 4 0 0 3 Cerchio a punti su spigoli interni

(solo con TRACYL) 4 4 0 0 4 Cerchio di aggiramento (opp.sezione di cono)

sugli spigoli esterni 4 4 0 0 5 Blocchi di accostamento con correzione

disattivata 4 4 0 0 6 Blocchi di accostamento con CRU riattivata 4 4 0 0 7 Suddivisione del blocco a causa di una curvatura

eccessiva 4 4 0 0 8 Blocchi di compensazione con fresatura frontale

3D (vettore utensile || vettore della superficie)

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 661

$AC_BLOCKTYPE $AC_BLOCKTYPEINFO Valore: Valore: 0 diverso da 0 T H Z E significato: Blocco originale

Blocco intermedio Esecutore per blocco intermedio:

Raccordatura tramite: 5 5 0 0 1 G641 5 5 0 0 2 G642 5 5 0 0 3 G643 5 5 0 0 4 G644 Blocco TLIFT con: 6 6 0 0 1 Movimento lineare dell’asse tangenziale e senza

movimento di svincolo 6 6 0 0 2 Movimento non lineare dell’asse tangenziale

(polinomio) e senza movimento di svincolo 6 6 0 0 3 Movimento di svincolo, il movimento dell’asse

tangenziale e quello di svincolo vengono avviati contemporaneamente

6 6 0 0 4 Movimento di svincolo, l’asse tangenziale si avvia solo quando la posizione di svincolo è stata raggiunta.

Suddivisione del percorso: 7 7 0 0 1 Suddivisione del percorso programmata senza

che siano attivi una punzonatura o roditura. 7 7 0 0 2 Suddivisione del percorso programmata con

punzonatura o roditura attivi 7 7 0 0 3 Suddivisione del percorso generata

automaticamente internamente Cicli compilati: 8 Applicazione ID ID dell’applicazione dei cicli compilati che ha

generato il blocco T: Posizione delle migliaia H: Posizione delle centinaia: Z: Posizione delle decine: E: Posizione delle unità

Azioni sincrone al movimento 10.3 Variabili di esecuzione per le azioni sincrone

Preparazione del lavoro 662 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota $AC_BLOCKTYPEINFO contiene sempre nella posizione delle migliaia (T) anche il valore per Blocktype, nel caso in cui sia presente un blocco intermedio. In $AC_BLOCKTYPE diverso da 0 non viene registrata la posizione delle migliaia.

$AC_SPLITBLOCK Valore: Significato: 0 Blocco programmato immutato (un blocco generato dal compressore viene anche trattato

come blocco programmato) 1 È presente un blocco generato internamente oppure un blocco originale accorciato 3 È presente l’ultimo blocco di una catena di blocchi generati internamente oppure di

blocchi originali accorciati

Esempio: Conteggio dei blocchi di raccordo Codice di programma Commento

$AC_MARKER[0]=0

$AC_MARKER[1]=0

$AC_MARKER[2]=0

...

; Definizione di azioni sincrone con cui vengono contati i blocchi di raccordo.

; Tutti i blocchi di raccordo vengono conteggiati in $AC_MARKER[0]:

ID=1 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPE==5) DO $AC_MARKER[0]=$AC_MARKER[0]+1

...

; Con G641 i blocchi di raccordo creati vengono conteggiati in $AC_MARKER[1]:

ID=2 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPEINFO==5001) DO $AC_MARKER[1]=$AC_MARKER[1]+1

; Con G642 i blocchi di raccordo creati vengono conteggiati in $AC_MARKER[2]:

ID=3 WHENEVER ($AC_TIMEC==0) AND ($AC_BLOCKTYPEINFO==5002) DO $AC_MARKER[2]=$AC_MARKER[2]+1

...

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 663

10.4 10.4 Azioni nelle azioni sincrone

10.4.1 Panoramica delle possibili azioni nelle azioni sincrone Nelle azioni sincrone, le azioni sono costituite da assegnazioni di valori, chiamate di funzioni o parametri, parole chiave o cicli tecnologici. Gli operatori rendono possibili le esecuzioni complesse. Le possibili applicazioni sono le seguenti: ● Calcoli di espressioni complesse nel clock IPO ● Movimenti asse e comandi mandrino ● Modifica e analisi online di dati di setting da azioni sincrone (ad es. emissione di posizioni

e tempi di camme software al PLC o alla periferia NC) ● Emissione funzioni ausiliarie al PLC ● Configurazione di funzioni di sicurezza aggiuntive ● Impostazione di movimento sovrapposto, correzione utensile online e regolazione della

distanza ● Esecuzione di azioni in tutti i modi operativi ● Influenzare le azioni sincrone dal PLC ● Esecuzione di cicli tecnologici ● Emissione di segnali digitali ed analogici ● Rilevamento delle prestazioni delle azioni sincrone nel clock dell'interpolatore e del tempo

di calcolo del regolatore di posizione per valutare il fattore di utilizzo ● Possibilità di diagnosi nella superficie operativa

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 664 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Azione sincrona Descrizione DO $V…= DO $A...=

Assegnazione (valori servo) Assegnazione della variabile (variabile di esecuzione)

DO $AC…[n]= DO $AC_MARKER[n]= DO $AC_PARAM[n]=

Variabile di esecuzione speciale Lettura o scrittura del marker di azioni sincrone Lettura o scrittura dei parametri di azioni sincrone

DO $R[n]= Lettura o scrittura della variabile di calcolo DO $MD...= DO $$SD...=

Lettura del valore del dato macchina relativo all'istante di interpolazione Scrittura del valore del dato di setting nell'elaborazione principale

DO $AC_TIMER[n]=valore iniziale Timer DO $AC_FIFO1[n] …FIFO10[n]= Variabile FIFO DO $AC_BLOCKTYPE= DO $AC_BLOCKTYPEINFO= DO $AC_SPLITBLOCK=

Interpretazione del blocco attuale (variabile di esecuzione)

DO M, S e H, ad es. M07 Emissione di funzioni ausiliarie M, S e H DO RDISABLE Settare il blocco lettura DO STOPREOF Eliminare il blocco preelaborazione DO DELDTG Cancellazione rapida del percorso residuo senza

arresto avanzamento FTCDEF(polin., LL, UL, coeffic.) DO SYNFCT(polin., output, input)

Definizione di polinomi Attivazione di funzioni sincrone: Regolazione AC

DO FTOC Correzione utensile online DO G70/G71/G700/G710 Definizione del sistema di misura per funzioni di

posizionamento (indicazione delle quote in inch o metrica)

DO POS[Asse]=/DO MOV[Asse]= DO SPOS[Mandrino]=

Avvio/posizionamento/arresto assi di comando Avvio/posizionamento/arresto mandrini

DO MOV[asse] = valore Avvio/arresto dei movimenti senza fine di un asse di comando

DO POS[asse]= FA [asse]= Avanzamento assiale FA ID=1 ... DO POS[Asse]= FA [Asse]= ID=2 ... DO POS[Asse]= $AA_IM[Asse] FA [Asse]=

Posizionamenti da azioni sincrone

DO PRESETON (asse, valore) Impostazione valore reale (Preset da azioni sincrone) ID=1 EVERY $A_IN[1]=1 DO M3 S… ID=2 EVERY $A_IN[2]=1 DO SPOS=

Avvio/posizionamento/arresto mandrini

DO TRAILON(asse slave,asse master,fattore di accoppiamento) DO LEADON(asse slave,asse master,NRCTAB,OVW)

Attivare il trascinamento Attivare l'accoppiamento al valore master (di riferimento)

DO MEAWA(Asse)= DO MEAC(Asse)=

Attivazione misura assiale Attivazione misura continua

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 665

Azione sincrona Descrizione DO [Campo n, m]=SET(Valore, Valore, ...) DO [Campo n, m]=REP(Valore, Valore, ...)

Inizializzazione di variabili di campo con liste di valori Inizializzazione di variabili di campo con uguale valore

DO SETM(n. marker) DO CLEARM(n. marker)

Impostazione di label di attesa Cancellazione di label di attesa

DO SETAL(n. allarme) Impostazione allarmi dei cicli (funzione di sicurezza supplementare)

DO FXS[Asse]= DO FXST[Asse]= DO FXSW[Asse]= DO FOCON[Asse]= DO FOCOF[Asse]=

Attivazione dell'avanzamento su riscontro fisso Modifica della coppia di serraggio Modifica della finestra di sorveglianza Attivazione dell'avanzamento con coppia/forza limitata (modale) FOC Disattivazione dell'avanzamento con coppia/forza limitata (l'efficacia dell'azione sincrona è riferita al blocco)

ID=2 EVERY $AC_BLOCKTYPE==0 DO $R1=$AC_TANEB Angolo tra la tangente vettoriale nel punto finale del blocco attuale e la tangente vettoriale nel punto finale del blocco successivo programmato

DO $AA_OVR= DO $AC_OVR= DO $AA_PLC_OVR DO $AC_PLC_OVR DO $AA_TOTAL_OVR DO $AC_TOTAL_OVR

Override assiale Override avanzamento Override assiale preimpostato dal PLC Override avanzamento preimpostato dal PLC Override assiale risultante Override avanzamento risultante

$AN_IPO_ACT_LOAD= $AN_IPO_MAX_LOAD= $AN_IPO_MIN_LOAD= $AN_IPO_LOAD_PERCENT= $AN_SYNC_ACT_LOAD= $AN_SYNC_MAX_LOAD= $AN_SYNC_TO_IPO=

Tempo di calcolo IPO attuale Tempo di calcolo IPO più lungo Tempo di calcolo IPO più breve Tempo di calcolo IPO attuale in relazione al clock IPO Tempo di calcolo attuale per l'azione sincrona attraverso tutti i canali Tempo di calcolo più lungo per l'azione sincrona attraverso tutti i canali Quota percentuale dell'intera azione sincrona

DO TECCYCLE Esecuzione di ciclo tecnologico DO LOCK(n, n, ...) DO UNLOCK(n, n, ...) DO RESET(n, n, ...)

Blocco Sblocco RESET di un ciclo tecnologico

CANCEL(n, n, ...) Cancellazione di azioni sincrone modali con la designazione ID(S) nel partprogram

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 666 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.2 Emissione di funzioni ausiliarie

Funzione Momento dell'emissione L'emissione delle funzioni ausiliarie avviene nell'azione sincrona direttamente al momento dell'emissione dell'azione. Il momento dell'emissione per le funzioni ausiliarie definito tramite dato macchina non è efficace. Il momento dell'emissione si verifica quando la condizione è soddisfatta. Esempio: Attivazione del refrigerante in presenza di una posizione definita dell'asse: WHEN $AA_IM[X]>=15 DO M07 POS[X]=20 FA[X]=250

Parole chiave consentite in azioni sincrone attive blocco a blocco (senza ID modale) Le funzioni ausiliarie nelle azioni sincrone con validità blocco a blocco (senza ID modale) possono essere programmate solo con le parole chiave WHEN o EVERY.

Nota Le seguenti funzioni ausiliarie non sono consentite nell'azione sincrona: • M0, M1, M2, M17, M30: Arresto/fine del programma (M2, M17, M30 possibile con ciclo

tecnologico) • M6 oppure funzioni M impostate tramite dato macchina per il cambio utensile

Esempio Codice di programma Commento

WHEN $AA_IW[Q1]>5 DO M172 H510 ; Se il valore reale dell'asse Q1 supera 5 mm, emettere le funzioni ausiliarie M172 e H510 al PLC.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 667

10.4.3 Impostazione del blocco lettura (RDISABLE)

Funzione Con RDISABLE, se la condizione viene soddisfatta nel programma principale viene arrestata l'ulteriore elaborazione del blocco. Le azioni sincrone di movimento programmate vengono proseguite; continua anche la elaborazione dei blocchi successivi. Nel funzionamento continuo, all'inizio di un blocco con RDISABLE nelle azioni sincrone viene sempre attivato un arresto preciso, indipendentemente dal fatto che RDISABLE sia attiva o meno.

Esempio Si intende avviare un programma nel clock di interpolazione in funzione di ingressi esterni. Codice di programma Commento

...

WHENEVER $A_INA[2]<7000 DO RDISABLE ; Arrestare il proseguimento del programma se all'ingresso 2 la tensione scende al di sotto di 7 V (1000= 1 V).

N10 G1 X10 ; Se la condizione è soddisfatta, il blocco lettura è attivo alla fine di N10

N20 G1 X10 Y20

...

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 668 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.4 Disattivazione stop preelaborazione (STOPREOF)

Funzione STOPREOF disattiva lo stop preelaborazione per il blocco successivo non appena la condizione è soddisfatta, nel caso di uno stop preelaborazione esplicitamente programmato con STOPRE o attivato implicitamente tramite un'azione sincrona attiva.

Nota STOPREOF deve essere programmato con la parola chiave WHEN e blocco-blocco (senza numero ID).

Esempio Diramazione rapida del programma alla fine del blocco. Codice di programma Commento

WHEN $AC_DTEB<5 DO STOPREOF

; Se la distanza rispetto alla fine del blocco è inferiore a 5 mm, annullare il blocco avanzamento.

G01 X100

; Al termine dell'esecuzione dell'interpolazione lineare, il blocco avanzamento viene annullato.

IF $A_INA[7]>500 GOTOF MARKE1=X100 ; Se sull'ingresso 7 viene superata la tensione di 5 V, saltare al label 1.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 669

10.4.5 Cancellazione percorso residuo (DELDTG)

Funzione In relazione ad una condizione è anche possibile attivare la cancellazione del percorso residuo per il percorso e per gli assi indicati. Sono a disposizione: ● la cancellazione del percorso residuo rapida, già preparata ● la cancellazione del percorso residuo senza preparazione La cancellazione del percorso residuo con preparazione tramite DELDTG consente una reazione molto rapida all’evento di attivazione e viene utilizzata per applicazioni con criticità di tempo, es. quando ● il tempo tra la cancellazione del percorso residuo e lo start del blocco successivo deve

essere molto breve. ● quando la condizione per la cancellazione del percorso residuo verrà soddisfatta con alta

probabilità.

Nota L'identificatore dell'asse racchiuso tra parentesi di DELDTG è valido solo per un asse di posizionamento.

Sintassi Cancellazione del percorso residuo per la traiettoria DO DELDTG Cancellazione del percorso residuo assiale DO DELDTG(Asse1) DELDTG(Asse2) ...

Esempio di cancellazione del percorso residuo per la traiettoria Codice di programma Commento

WHEN $A_IN[1]==1 DO DELDTG

N100 G01 X100 Y100 F1000 ; Se è impostato l'ingresso, il movimento viene interrotto

N110 G01 X…

IF $AA_DELT>50…

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 670 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio di cancellazione rapida del percorso residuo assiale Codice di programma Commento

Interruzione di un movimento di posizionamento:

ID=1 WHEN $A_IN[1]==1 DO MOV[V]=3 FA[V]=700 ; Avvio dell'asse

WHEN $A_IN[2]==1 DO DELDTG(V) ; Cancellazione del percorso residuo, l'arresto dell'asse avviene con MOV=0

Cancellazione del percorso residuo dipendente dalla tensione all'ingresso:

WHEN $A_INA[5]>8000 DO DELDTG(X1) ; Non appena all'ingresso 5 la tensione supera 8 V, viene cancellato il percorso residuo dell'asse X1. Il movimento interpolato prosegue.

POS[X1]=100 FA[X1]=10 G1 Z100 F1000

Ulteriori informazioni Alla fine di un blocco di movimento, in cui è stato avviata una cancellazione del percorso residuo già preparata, viene attivato implicitamente anche lo stop preelaborazione. Ciò significa che il funzionamento continuo o i movimenti dell'asse di posizionamento vengono interrotti o arrestati alla fine del blocco mediante la cancellazione rapida del percorso residuo.

Nota Cancellazione preparata del percorso residuo: • non può essere impiegata quando è attiva la correzione del raggio utensile. • può essere programmata solo in azioni sincrone attive blocco per blocco (senza numero

ID).

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 671

10.4.6 Definizione dei polinomi (FCTDEF)

Funzione Con FCTDEF possono essere definiti polinomi di 3° grado nella forma y=a0+a1x+a2x2+a3x3. Questi polinomi vengono utilizzati dalla correzione utensile online FTOC e dalla funzione di valutazione SYNFCT.

Sintassi FCTDEF(n. polinomio,LLIMIT,ULIMIT,a0,a1,a2,a3)

Significato N. polinomio Numero del polinomio di 3° grado LLIMIT Limite inferiore del valore della funzione ULIMIT Limite superiore del valore della funzione a0, a1, a2, a3 Coefficienti del polinomio

Questi valori sono accessibili anche tramite variabile di sistema $AC_FCTLL[n] Limite inferiore del valore della funzione $AC_FCTUL[n] Limite superiore del valore della funzione $AC_FCT0[n] a0 $AC_FCT1[n] a1 $AC_FCT2[n] a2 $AC_FCT3[n] a3

Nota Scrittura di variabili di sistema • Le variabili di sistema possono essere scritte anche da un partprogram o da un'azione

sincronizzata. Scrivendole da un partprogram è necessario programmare STOPRE per garantire che la scrittura sia sincrona al blocco.

• Le variabili di sistema $AC_FCTLL[n], $AC_FCTUL[n], $AC_FCT0[n] ... $AC_FCTn[n] possono essere modificate anche da azioni sincrone

I coefficienti di polinomi e i limiti dei valori di funzione scritti da azioni sincrone sono attivi immediatamente.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 672 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio di polinomio per sezione di retta La definizione del polinomio, con limite superiore 1000, limite inferiore -1000, sezione di ordinata a0=$AA_IM[X] e inclinazione della retta pari a 1, è la seguente: FCTDEF(1, -1000,1000,$AA_IM[X],1)

Esempio di controllo della potenza del laser Uno dei possibili impieghi della definizione di polinomi è il controllo della potenza del laser. Controllo della potenza del laser significa: influenzare un'uscita analogica in funzione per es. della velocità vettoriale.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 673

Codice di programma Commento

$AC_FCTLL[1]=0.2 ; Definizione dei coefficienti del polinomio

$AC_FCTUL[1]=0.5

$AC_FCT0[1]=0.35

$AC_FCT1[1]=1.5EX-5

STOPRE

ID=1 DO $AC_FCTUL[1]=$A_INA[2]*0.1 +0.35 ; Modifica online del limite superiore.

ID=2 DO SYNFCT(1,$A_OUTA[1],$AC_VACTW) ; In funzione della velocità vettoriale (impostata in $AC_VACTW) viene controllato il comando della potenza del laser tramite l'uscita analogica 1

Nota Il polinomio suddetto viene impiegato con SYNFCT.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 674 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.7 Funzione sincrona (SYNFCT)

Funzioni SYNFCT calcola il valore di uscita di un polinomio di terzo grado ponderato con la variabile d'ingresso. Il risultato si trova nella variabile d'uscita e viene limitato in alto e in basso. La funzione di valutazione viene impiegata ● nella regolazione AC (Controllo Adattativo), ● nel controllo della potenza del laser, ● per offset di posizione.

Sintassi SYNFCT(N. di polinomio, uscita della variabile di esecuzione, ingresso variabile di esecuzione)

Significato Come variabili di uscita si possono selezionare le variabili che confluiscono ● con influenza additiva ● con influenza moltiplicativa ● come offset di posizione ● direttamente nel processo di lavorazione. DO SYNFCT Attivazione della funzione di elaborazione N. polinomio Il polinomio definito con FCTDEF (vedere "Definizione

polinomi") Uscita della variabile di esecuzione

Scrittura della variabile di esecuzione

Ingresso della variabile di esecuzione

Lettura della variabile di esecuzione

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 675

Esempio di regolazione AC (additiva) Influenza additiva sull'avanzamento programmato Si desidera regolare additivamente un avanzamento programmato mediante la corrente dell'asse X (asse di incremento): l'avanzamento dovrà variare di +/- 100 mm/min, tenendo conto che la corrente di 5A sul punto di lavorazione varia di +/- 1A.

1. Definizione del polinomio Definizione dei coefficienti y = f(x) = a0 + a1x + a2x2 + a3x3 a1 = -100mm/1 min A a0 = -(-100)*5 =500 a2 = a3 = 0 (nessun elemento quadratico o cubico) Limite superiore = 100 Limite inferiore = -100 Ne consegue: FCTDEF(1,-100,100,500,-100,0,0) 2. Attivazione della regolazione AC ID=1 DO SYNFCT(1,$AC_VC,$AA_LOAD[x]) ;Leggere il carico attuale dell’asse (% max. corrente azionamento) con $AA_LOAD[x], ;con il polinomio definito in precedenza calcolare la correzione dell’avanzamento vettoriale.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 676 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio di regolazione AC (moltiplicativa) Influenza a carattere moltiplicativo dell'avanzamento programmato Si desidera modificare in maniera moltiplicativa l'avanzamento programmato, senza però che l'avanzamento, a seconda del carico dell'azionamento, superi determinati limiti: ● Con carico dell'azionamento di 80% l'avanzamento deve arrestarsi: override = 0. ● Con carico dell'azionamento pari a 30% si può procedere con l'avanzamento

programmato: Override = 100%.

La velocità dell’avanzamento può essere superata al massimo del 20%: Max. Override = 120%.

1. Definizione del polinomio Determinazione dei coefficienti y = f(x) = a0 + a1x + a2x2 + a3x3 a1 = -100%/(80-30)% = -2 a0 = 100 + (2*30) = 160 a2 = a3 = 0 (nessun elemento quadrato e cubico) Limite superiore = 120 Limite inferiore = 0 Ne consegue: FCTDEF(2,0,120,160,-2,0,0) 2. Attivazione della regolazione AC ID=1 DO SYNFCT(2,$AC_OVR,$AA_LOAD[x]) ;Leggere il carico attuale dell’asse (% max. corrente azionamento) con $AA_LOAD[x], ;con il polinomio definito in precedenza calcolare l'override dell’avanzamento

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 677

10.4.8 Regolazione della distanza con correzione limitata ($AA_OFF_MODE)

Nota Questa funzione non è disponibile per SINUMERIK 828D!

Funzione Il calcolo integrante dei valori di distanza viene effettuato con verifica del campo limite: $AA_OFF_MODE = 1

ATTENZIONE Il guadagno d'anello del circuito di regolazione sovrapposto dipende dall'impostazione del clock IPO. Rimedio: Lettura e configurazione del dato macchina per il clock IPO.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 678 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Limitazione della velocità dell'interpolatore sovrapposto attraverso il dato macchina 32020: JOG_VELO con clock Ipo 12 ms. Formula per la velocità:

Vm

mVms

mm/

min6.0/

6.0

120.0=

Esempio Sottoprogramma "AON": Regolazione della distanza On Codice di programma Commento

PROC AON

$AA_OFF_LIMIT[Z]=1 ; Definizione del valore limite.

FCTDEF(1, -10, +10, 0, 0.6, 0.12) ; Definizione del polinomio

ID=1 DO SYNFCT(1,$AA_OFF[Z],$A_INA[3]) ; Regolazione della distanza attiva.

ID=2 WHENEVER $AA_OFF_LIMIT[Z]<>0 DO $AA_OVR[X] = 0

; In caso di superamento del campo limite, bloccare l'asse X.

RET

ENDPROC

Sottoprogramma "AOFF": Regolazione della distanza Off Codice di programma Commento

PROC AOFF

CANCEL(1) ; Cancellazione dell'azione sincrona regolazione della distanza

CANCEL(2) ; Cancellazione della verifica del campo limite

RET

ENDPROC

Programma principale "MAIN": Codice di programma Commento

AON ; Regolazione della distanza On

...

G1 X100 F1000

AOFF ; Regolazione della distanza Off

M30

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 679

Ulteriori informazioni Offset di posizione nel sistema di coordinate di base Con la variabile di sistema $AA_OFF[Asse] è possibile sovrapporre un movimento a ciascun asse nel canale. Essa è attiva come offset di posizione nel sistema di coordinate di base. L'offset di posizione così programmato viene sovrapposto immediatamente all'asse in questione, indipendentemente dal fatto che il movimento dell'asse sia programmato o meno. Limitazione dell'uscita della variabile di esecuzione: È possibile limitare il valore da correggere in modo assoluto (uscita della variabile di esecuzione) al valore registrato nel dato di setting SD43350 $SA_AA_OFF_LIMIT. Attraverso il dato macchina MD36750 $MA_AA_OFF_MODE, viene definito il tipo di sovrapposizione della distanza: Valore Significato 0 Valutazione proporzionale 1 Valutazione integrante

Con la variabile di sistema $AA_OFF_LIMIT[Asse], è possibile richiedere in funzione della direzione se il valore di correzione si trovi nel campo limite. Questa variabile di sistema può essere richiesta da azioni sincrone e, al raggiungimento di un valore limite, può ad esempio arrestare un asse o impostare un allarme. 0: Valore di correzione al di fuori del campo limite. 1 Limite del valore di correzione raggiunto in direzione positiva -1: Limite del valore di correzione raggiunto in direzione negativa

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 680 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.9 Correzione utensile on-line (FTOC)

Funzione FTOC consente movimenti sovrapposti per uno o più assi dopo un polinomio programmato con FCTDEF in funzione di un valore di riferimento, che ad es. può essere il valore reale di un asse. Il coefficiente a0 della definizione della funzione FCTDEF(...) viene valutata con FTOC. Il limite superiore e inferiore dipende da a0. Con FTOC è possibile anche programmare correzioni utensili online modali oppure regolazioni della distanza come azioni sincrone. La funzione viene impiegata per l'esecuzione del pezzo e per la diamantatura della mola in uno stesso canale o in canali diversi (canale di lavorazione e canale di diamantatura). Le condizioni generali e le definizioni per la diamantatura di mole valgono per FTOC in modo analogo alla correzione utensile online con PUTFTOCF (vedere "Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)").

Sintassi FCTDEF(<funzione>,<LLimit>,<ULimit>,<a0>,<a1>,<a2>,<a3>)

FTOC(<funzione>,<valore_riferimento>,<parametro_UT>,<canale>,<mandrino>)

...

Significato

Con FCTDEF viene definita la funzione polinomiale per FTOC. Parametri:

Numero della funzione polinomiale Tipo: INT

<funzione>:

Campo dei valori: 1 ... 3 valore limite inferiore <LLimit>: Tipo: REAL valore limite superiore <ULimit>: Tipo: REAL Coefficienti della funzione polinomiale

FCTDEF:

<a0> ... <a3>: Tipo: REAL

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 681

Esecuzione della funzione "Scrittura CUT online continua modale" Parametri:

Numero della funzione polinomiale Tipo: INT Campo dei valori: 1 ... 3

<funzione>:

Nota: Deve coincidere con il dato immesso per FCTDEF. Variabile di ciclo principale, per la quale deve essere calcolato un valore di funzione tramite la funzione polinomiale specificata con FCTDEF.

<valore di riferimento>:

Tipo: VAR REAL Numero del parametro di usura (lunghezza 1, 2 o 3) al quale va aggiunto il valore di correzione.

<parametro_UT>:

Tipo: INT Numero del canale nel quale deve essere attivata la correzione utensile online. Tipo: INT

<canale>:

Nota: Occorre immettere un dato solo se la correzione non deve essere attivata nel canale attivo. Numero del mandrino nel quale deve essere attivata la correzione utensile online. Tipo: INT

DO FTOC:

<mandrino>:

Nota: Occorre immettere un dato solo se l'utensile da correggere non è quello attivo attualmente in uso ma una mola non attiva.

Nota Nel canale di destinazione deve essere attivo FTOCON.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 682 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Si deve correggere la lunghezza della mola attiva che sta lavorando.

Codice di programma Commento

FCTDEF(1,-1000,1000,-$AA_IW[V],1) ; Definizione delle funzioni.

ID=1 DO FTOC(1,$AA_IW[V],3,1) ; Attivazione della correzione utensile online: Il valore reale dell'asse V è il valore di ingresso per il polinomio 1. Il risultato viene aggiunto nel canale 1 quale valore di correzione per la lunghezza 3 della mola attiva.

WAITM(1,1,2) ; Sincronizzazione con canale di elaborazione.

G1 V-0.05 F0.01 G91 ; Movimento di incremento per la diamantatura.

G1 V-0.05 F0.02

...

CANCEL(1) ; Disattivazione della correzione online.

...

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 683

10.4.10 Correzione online della lunghezza utensile ($AA_TOFF)

Funzioni Con la variabile $AA_TOFF[ ] si può eseguire una correzione tridimensionale in tempo reale sulla base delle tre dimensioni effettive dell'utensile. Come indice si utilizzano i tre identificativi degli assi geometrici. In questo modo il numero delle direzioni di correzione attive viene definito attraverso gli assi geometrici abilitati nello stesso momento. Tutte le correzioni possono essere abilitate contemporaneamente.

Sintassi N.. TRAORI N.. TOFFON(X, 25) N.. WHEN TRUE DO $AA_TOFF[X] N.. TOFFON(Y, 25) N.. WHEN TRUE DO $AA_TOFF[Y] N.. TOFFON(Z, 25) N.. WHEN TRUE DO $AA_TOFF[Z]

Significato TOFFON Tool Offset ON (attivare la correzione online della lunghezza

utensile) Quando si attiva la funzione, per la relativa direzione di correzione si può indicare un valore di offset che verrà subito eseguito.

TOFFOF Tool Offset ON (disattivare la correzione online della lunghezza utensile) I valori di correzione vengono resettati e viene attivato uno stop preelaborazione.

X, Y, Z Direzione di correzione per il valore di offset indicato in TOFFON

$AA_TOFF[X]=valore $AA_TOFF[Y]=valore $AA_TOFF[Z]=valore

Sovrapposizione in direzione X Sovrapposizione in direzione Y Sovrapposizione in direzione Z

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 684 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: Attivazione della correzione lunghezza utensile

Codice di programma Commento

N10 TRAORI(1) ; Trasformazione On.

N20 TOFFON(Z) ; Attivazione della correzione online della lunghezza utensile� per la direzione utensile Z.

N30 WHEN TRUE DO $AA_TOFF[Z]=10 G4 F5 ; Per la direzione utensile Z viene interpolata una correzione della lunghezza utensile di 10.

N40 TOFFON(X) ; Attivazione della correzione online della lunghezza utensile� per la direzione utensile X.

N50 ID=1 DO $AA_TOFF[X]=$AA_IW[X2] G4 F5 ; Per la direzione utensile X viene eseguita una correzione a seconda della posizione dell'asse X2.

...

; Assegnazione della correzione attuale in direzione X. Per la direzione utensile X, la correzione della lunghezza utensile viene nuovamente portata a 0:

N100 XOFFSET=$AA_TOFF_VAL[X] N120 TOFFON(X, -XOFFSET) G4 F5

Esempio 2: Disattivazione della correzione lunghezza utensile

Codice di programma Commento

N10 TRAORI(1) ; Trasformazione On.

N20 TOFFON(X) ; Attivazione della direzione utensile Z.

N30 WHEN TRUE DO $AA_TOFF[X] = 10 G4 F5 ; Per la direzione utensile X viene interpolata una correzione della lunghezza utensile di 10.

...

N80 TOFFOF(X) ; L'offset di posizione della direzione utensile� X viene cancellato: ...$AA_TOFF[X]=0

Non viene spostato alcun asse, alla posizione attuale nel sistema di coordinate pezzo viene aggiunto il valore di nOffset di posizione in maniera corrispondente all'orientamento attuale.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 685

10.4.11 Movimenti di posizionamento

Funzione Gli assi possono essere posizionati da azioni sincrone anche in maniera del tutto asincrona rispetto al partprogram. La programmazione di assi di posizionamento da azioni sincrone è consigliata per sequenze cicliche dipendenti in maniera determinante da eventi. Gli assi programmati da azioni sincrone sono chiamati assi di comando.

Programmazione Bibliografia: /PG/ Manuale di programmazione, Concetti fondamentali, capitolo "Dati del percorso" /FBSY/ Descrizione delle funzioni, Azioni sincrone; "Avvio di assi di comando"

Parametri Il sistema di misura per ordini di posizionamento in azioni sincrone, viene definito con G70/G71/G700/G710. Mediante la programmazione di funzioni G nell'azione sincrona è possibile definire la valutazione inch/metrica per l'azione sincrona indipendentemente dal contesto del partprogram.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 686 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.12 Posizionamento dell’asse (POS)

Funzione Contrariamente alla programmazione da partprogram, il movimento dell'asse di posizionamento non ha influenza sull'esecuzione del partprogram stesso.

Sintassi POS[asse]=valore

Significato DO POS Start/posizionamento asse di comando Asse Nome dell'asse che deve essere mosso Valore Indicazione del valore da eseguire (in base al modo del

movimento)

Esempi Esempio 1:

Codice di programma Commento

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 ; Movimento incrementale dell'asse U, in maniera dipendente dal modo, di 100 (inch/mm) oppure alla posizione 100 (inch/mm) dal punto di riferimento del controllo.

; Movimento dell'asse U nella misura del percorso calcolato dalla variabile di esecuzione:

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=$AA_MW[V]-$AA_IM[W]+13.5

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 687

Esempio 2: L'ambiente di programmazione influenza il percorso di posizionamento dell'asse di posizionamento (nessuna funzione G nella parte di azione dell'azione sincrona):

Codice di programma Commento

N100 R1=0

N110 G0 X0 Z0

N120 WAITP(X)

N130 ID=1 WHENEVER $R==1 DO POS[X]=10

N140 R1=1

N150 G71 Z10 F10 ; Z=10 mm X=10 mm

N160 G70 Z10 F10 ; Z=254 mm X=254 mm

N170 G71 Z10 F10 ; Z=10 mm X=10 mm

N180 M30

G71 nella parte di azione dell'azione sincrona determina il percorso di posizionamento dell'asse di posizionamento in modo univoco (metrico), indipendentemente dall'ambiente di programmazione:

Codice di programma Commento

N100 R1=0

N110 G0 X0 Z0

N120 WAITP(X)

N130 ID=1 WHENEVER $R==1 DO G71 POS[X]=10

N140 R1=1

N150 G71 Z10 F10 ; Z=10 mm X=10 mm

N160 G70 Z10 F10 ; Z=254 mm X=10 mm (X si posiziona sempre su 10 mm)

N170 G71 Z10 F10 ; Z=10 mm X=10 mm

N180 M30

Se il movimento dell'asse non viene avviato con l'inizio del blocco, l'override per l'asse può essere mantenuto su 0 da un'azione sincrona fino al momento iniziale desiderato.

Codice di programma Commento

WHENEVER $A_IN[1]==0 DO $AA_OVR[W]=0 G01 X10 Y25 F750 POS[W]=1500 FA=1000

; L'asse di posizionamento viene arrestato finché l'ingresso digitale 1 = 0.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 688 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.13 Posizione nell'intervallo di riferimento predefinito (POSRANGE)

Funzione Con la funzione POSRANGE( ) è possibile determinare se la posizione attuale di riferimento interpolata di un asse si trovi in una finestra attinente alla posizione di riferimento predefinita. I dati della posizione si possono riferire a sistemi di coordinate impostabili. Nella richiesta della posizione reale di un asse modulo si tiene conto della correzione del modulo.

Nota La funzione può essere richiamata solo dall'azione sincrona. Se la chiamata avviene dal partprogram, viene emesso l'allarme 14091 %1 blocco %2 Funzione non consentita, indice: %3 richiamato con l'indice 5.

Sintassi BOOL POSRANGE(asse, Refpos, Winlimit,[Coord])

Significato BOOL POSRANGE La posizione attuale dell'asse di comando è nella finestra

della posizione di riferimento predefinita. AXIS <asse> Identificatore dell'asse macchina, asse canale o asse di

geometria REAL Refpos Posizione di riferimento nel sistema di coordinate Coord REAL Winlimit Valore che esprime il limite per la finestra di posizione INT Coord Il sistema di coordinate macchina è attivo opzionalmente.

Sono possibili: 0 per SCM (sistema di coordinate macchina) 1 per SCB (sistema di coordinate di base) 2 per SOI (sistema di origine impostabile) 3 per SCP (sistema di coordinate pezzo)

Valore della funzione Posizione di riferimento attuale a seconda del dato di posizione nel sistema di coordinate predefinito Valore della funzione: TRUE Valore della funzione: FALSE

se Refpos(Coord) - abs(Winlimit) ≤ Actpos(Coord) ≤ Refpos(Coord) + abs(Winlimit) altrimenti

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 689

10.4.14 Start/stop asse (MOV)

Funzione Con MOV[asse]=valore è possibile attivare un asse di comando senza necessità di impostare una posizione finale. L'asse muove nella direzione programmata fino a quando un nuovo comando di movimento o di posizionamento non implica un nuovo movimento oppure fino a quando l'asse non viene arrestato con un comando di stop.

Sintassi MOV[asse] = valore

Significato DO MOV Avvio del movimento dell'asse di comando Asse Nome dell'asse che deve essere attivato Valore Comando di avvio/arresto del movimento

Il segno stabilisce la direzione di movimento Tipo di dati: INTEGER.

Valore >0 (generalmente +1) Direzione positiva Valore <0 (generalmente -1) Direzione negativa Valore ==0 Arrestare il movimento asse

Nota Se un asse di divisione viene arrestato con MOV[asse]=0, l'asse viene bloccato alla successiva posizione di divisione.

Esempio Codice di programma Commento

... DO MOV[U]=0 ; L'asse U viene arrestato

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 690 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.15 Scambio assi (RELEASE, GET)

Funzioni Per un cambio utensile possono venire richiesti i relativi assi di comando come azione sincrona con GET(asse). Il tipo di asse assegnato a questo canale e la relativa autorizzazione di interpolazione contemporanea possono essere oggetto di interrogazione tramite la variabile di sistema $AA_AXCHANGE_TYP. A seconda dello stato effettivo e del canale che possiede l'attuale autorizzazione di interpolazione di questo asse, sono possibili varie sequenze. Se il cambio utensile è terminato, questo asse di comando può venire abilitato, quale azione sincrona con RELEASE(asse), per il canale. Costruttore della macchina L'asse interessato deve essere assegnato al canale tramite dati macchina. Fare attenzione alle indicazioni del costruttore della macchina.

Sintassi GET(Asse[,asse{,...}]) richiesta asse RELAESE(asse[,asse{,...}]) abilitazione asse

Significato DO RELEASE Abilitazione asse come asse neutro DO GET Prelievo asse per scambio assi Asse Nome dell'asse che deve essere avviato

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 691

Esempio di esecuzione del programma per uno scambio assi di due canali L'asse Z è conosciuto nel 1° canale e nel 2° canale. Esecuzione del programma nel 1° canale: Codice di programma Commento

WHEN TRUE DO RELEASE(Z) ; Asse Z diventa asse neutro

WHENEVER($AA_TYP[Z]==1) DO RDISABLE ; Blocco lettura finché asse Z è asse programma

N110 G4 F0.1

WHEN TRUE DO GET(Z) ; Asse Z diventa di nuovo asse programma NC

WHENEVER($AA_TYP[Z]<>1) DO RDISABLE ; Blocco lettura finché asse Z è asse programma

N120 G4 F0.1

WHEN TRUE DO RELEASE(Z) ; Asse Z diventa asse neutro

WHENEVER($AA_TYP[Z]==1) DO RDISABLE ; Blocco lettura finché asse Z è asse programma

N130 G4 F0.1 ;

N140 START(2) ; Avvio 2° canale

Esecuzione del programma nel 2° canale: Codice di programma Commento

WHEN TRUE DO GET(Z) ; Prelievo asse Z nel 2° canale

WHENEVER($AA_TYP[Z]==0) DO RDISABLE ; Blocco lettura finché l'asse Z è in un altro canale

N210 G4 F0.1

WHEN TRUE DO GET(Z) ; Asse Z diventa asse programma NC

WHENEVER($AA_TYP[Z]<>1) DO RDISABLE ; Blocco lettura finché asse Z è asse programma

N220 G4 F0.1

WHEN TRUE DO RELEASE(Z) ; Asse Z nel 2° canale asse neutro

WHENEVER($AA_TYP[Z]==1) DO RDISABLE ; Blocco lettura finché asse Z è asse programma

N230 G4 F0.1

N250 WAITM(10, 1, 2) ; Sincronizzazione con canale 1

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 692 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriore esecuzione del programma nel 1° canale: Codice di programma Commento

N150 WAIM(10, 1, 2) ; Sincronizzazione con canale 2

WHEN TRUE DO GET(Z) ; Prelievo asse Z in questo canale

WHENEVER($AA_TYP[Z]==0) DO RDISABLE ; Blocco lettura finché asse Z in un altro canale

N160 G4 F0.1

N199 WAITE(2)

N999 M30 ; Attesa della fine del programma nel canale 2

Esempio di scambio assi nel ciclo tecnologico L'asse U ($MA_AUTO_GET_TYPE=2) è conosciuto nel 1° canale e nel 2° canale e attualmente il canale 1 ha il diritto di interpolazione. Nel canale 2 viene avviato il seguente ciclo tecnologico: Codice di programma Commento

GET(U) ; Prelievo asse U nel canale

POS[U]=100 ; L'asse U deve essere spostato sulla posizione 100

La riga del movimento dell'asse di comando POS[U] viene eseguita solo se è stato prelevato l'asse U nel canale 2.

Sequenza L'asse richiesto al momento dell'attivazione dell'azione GET(asse) può essere letto in rapporto al tipo di asse per uno scambio di asse con la variabile di sistema ($AA_AXCHANGE_TYP[<asse>]): ● 0: asse assegnato al programma NC ● 1: asse assegnato al PLC o attivo come asse di comando o asse di pendolamento ● 2: un altro canale dispone del diritto di interpolazione ● 3: l'asse è un asse neutro

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 693

● 4: l'asse neutro è controllato dal PLC ● 5: un altro canale dispone del diritto di interpolazione, l'asse è richiesto per il programma

NC ● 6: un altro canale dispone del diritto di interpolazione, l'asse è richiesto come asse neutro ● 7: asse del PLC o attivo come asse di comando o asse di pendolamento, l'asse è

richiesto per il programma NC ● 8: asse del PLC o attivo come asse di comando o asse di pendolamento, l'asse è

richiesto come asse neutro Condizioni marginali L'asse interessato deve essere assegnato al canale tramite dati macchina. Un asse controllato esclusivamente dal PLC non può essere assegnato al programma NC. Bibliografia: /FB2/ Manuale delle funzioni di ampliamento; assi di posizionamento (P2)

Richiesta dell'asse da un altro canale con l'azione GET se al momento dell'attivazione dell'azione GET un altro canale ha l'autorizzazione di scrittura (autorizzazione di interpolazione) per l'asse ($AA_AXCHANGE_TYP[<asse>] == 2), l'asse viene richiesto da questo canale tramite scambio assi ($AA_AXCHANGE_TYP[<asse>]==6) e assegnato al canale richiesto non appena possibile. L'asse assume quindi lo stato di asse neutro ($AA_AXCHANGE_TYP[<asse>]==3). Non viene eseguita una riorganizzazione nel canale richiesto. Assegnazione come programma NC asse con riorganizzazione: Se già al momento dell'attivazione dell'azione GET l'asse è già stato richiesto come asse neutro ($AA_AXCHANGE_TYP[<asse>]==6), l'asse viene richiesto per il programma NC ($AA_AXCHANGE_TYP[<asse>]==5) e non appena possibile assegnato al programma NC del canale ($AA_AXCHANGE_TYP[<asse>]==0).

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 694 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Asse già assegnato al canale richiesto Assegnazione come programma NC asse con riorganizzazione: Se al momento dell'attivazione l'asse richiesto è già assegnato al canale richiesto, e nello stato asse neutro – non controllato dal PLC – ($AA_AXCHANGE_TYP[<asse>]==3), esso viene assegnato al programma NC ($AA_AXCHANGE_TYP[<asse>]==0).

L''asse nello stato asse neutro è controllato dal PLC Se l'asse nello stato asse neutro è controllato dal PLC ($AA_AXCHANGE_TYP[<asse>]==4), esso viene richiesto come asse neutro ($AA_AXCHANGE_TYP[<asse>] == 8), in base al bit 0 nel dato macchina DM 10722: AXCHANGE_MASK l'asse viene disabilitato per uno scambio assi automatico tra i canali (Bit 0 == 0). Questo corrisponde a ($AA_AXCHANGE_STAT[<asse>] == 1).

L'asse è attivo come asse di comando neutro o asse di pendolamento o assegnato al PLC Se l'asse è attivo come asse di comando o asse di pendolamento oppure assegnato per il movimento al PLC, asse PLC == asse di posizionamento simultaneo, ($AA_AXCHANGE_TYP[<asse>]==1), l'asse viene richiesto come asse neutro ($AA_AXCHANGE_TYP[<asse>] == 8), in base al bit 0 nel dato macchina DM 10722: AXCHANGE_MASK l'asse viene disabilitato per uno scambio assi automatico tra i canali (Bit 0 == 0). Questo corrisponde a ($AA_AXCHANGE_STAT[<asse>] == 1). Una nuova azione GET richiede quindi l'asse per il programma NC ($AA_AXCHANGE_TYP[<asse>] diventa == 7).

L'asse è già assegnato al programma NC Se l'asse è già assegnato al programma NC del canale ($AA_AXCHANGE_TYP[<asse>]==0) o se è richiesta questa assegnazione, p. es. scambio assi attivato dal programma NC ($AA_AXCHANGE_TYP[<asse>]==5 o $AA_AXCHANGE_TYP[<asse>] == 7), non si verifica nessuna variazione di stato.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 695

10.4.16 Avanzamento assiale (FA)

Funzioni L'avanzamento assiale per gli assi di comando ha effetto modale.

Sintassi FA[<Asse>]=<Valore>

Esempio Codice di programma Commento

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=990 ; Impostazione del valore di avanzamento

; Creazione del valore di avanzamento dalla variabile di esecuzione:

ID=1 EVERY $AA_IM[B]>75 DO POS[U]=100 FA[U]=$AA_VACTM[W]+100

10.4.17 Finecorsa SW

Funzione La limitazione del campo di lavoro programmata con G25/G26 viene tenuta in considerazione per gli assi di comando in relazione al dato setting $SA_WORKAREA_PLUS_ENABLE. L'attivazione e la disattivazione della limitazione del campo di lavoro con le funzioni G WALIMON/WALIMOF in un partprogram non ha influenza sugli assi comando.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 696 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.18 Coordinamento assi

Funzioni Generalmente un asse viene mosso da un partprogram oppure da un'azione sincrona come asse di posizionamento. Se invece uno stesso asse deve essere mosso alternativamente dal partprogram come asse di contornitura o di posizionamento ed anche da azioni sincrone, avviene una trasmissione coordinata tra i due tipi di movimento. Se l'asse di comando viene poi mosso da un partprogram si rende necessaria una riorganizzazione della preelaborazione. Ciò causa a sua volta un'interruzione dell'esecuzione del partprogram, similmente ad uno stop preelaborazione.

Esempio di movimento dell'asse X da partprogram e da azioni sincrone Codice di programma Commento

N10 G01 X100 Y200 F1000 ; Asse X programmato nel partprogram

N20 ID=1 WHEN $A_IN[1]==1 DO

POS[X]=150 FA[X]=200

; Avvio del posizionamento dall'azione sincrona se è presente l'ingresso digitale

CANCEL(1) ; Disattivazione dell'azione sincrona

N100 G01 X240 Y200 F1000 ; X diventa asse vettoriale; prima del movimento viene attivato un tempo di attesa a causa del passaggio di controllo dell'asse, nel caso in cui l'ingresso digitale fosse l'ingresso 1 e X sia stato posizionato con azioni sincrone.

Esempio di modifica del comando di movimento per lo stesso asse Codice di programma Commento

ID=1 EVERY $A_IN[1]>=1 DO POS[V]=100 FA[V]=560 ; Avvio del posizionamento dall'azione sincrona se l'ingresso digitale >= 1

ID=2 EVERY $A_IN[2]>=1 DO POS[V]=$AA_IM[V] FA[V]=790 ; L'asse muove quando viene settato il 2° ingresso, cioè la posizione finale e l'avanzamento per l'asse V vengono inseguite in caso di due azioni sincrone contemporaneamente attive con movimento in corso.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 697

10.4.19 Impostazione del valore reale (PRESETON)

Funzione L'esecuzione di PRESETON (asse, valore) non ha effetto sulla posizione attuale dell'asse, ma le assegna un nuovo valore. PRESETON da azioni sincrone è possibile: ● per assi di assi rotanti con funzione modulo che sono stati attivati dal partprogram ● per tutti gli assi di comando che sono stati attivati dall'azione sincrona

Sintassi DO PRESETON(Asse, Valore)

Significato DO PRESETON Impostazione del valore reale in azioni sincrone Asse Asse il cui punto di riferimento del controllo deve essere modificato Valore Valore del quale viene modificato il punto di riferimento del controllo

Limitazioni per assi PRESETON non è possibile per gli assi che fanno parte di una trasformazione. Lo stesso asse può essere mosso da un partprogram o da un'azione sincrona solo in momenti diversi, il che significa che, nella programmazione di un asse da un partprogram, possono verificarsi tempi di attesa, dipendenti da una precedente programmazione dello stesso asse in un'azione sincrona. Se lo stesso asse viene impiegato alternativamente, avviene un trasferimento coordinato tra i due movimenti dell'asse. A questo scopo viene interrotta l'esecuzione del partprogram.

Esempio Traslazione del punto di riferimento del controllo di un asse Codice di programma Commento

WHEN $AA_IM[a] >= 89.5 DO PRESETON(a4,10.5) ; Spostamento del punto di riferimento del controllo dell'asse a di 10,5 unità di lunghezza (inch o mm) in direzione positiva dell'asse

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 698 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.20 Movimenti del mandrino

Funzioni I mandrini possono essere posizionati da azioni sincrone del tutto indipendentementi dal partprogram. Questo tipo di programmazione è adatto per sequenze o processi ciclici che dipendono fortemente da eventi. Se, a causa di due azioni sincrone attive contemporaneamente, per un mandrino vengono emessi comandi contraddittori, vale sempre l'ultimo comando in ordine in tempo.

Esempio di attivazione/arresto/posizionamento mandrino Codice di programma Commento

ID=1 EVERY $A_IN[1]==1 DO M3 S1000 ; Impostazione del senso di rotazione e del numero di giri

ID=2 EVERY $A_IN[2]==1 DO SPOS=270 ; Posizionamento del mandrino

Esempio di impostazione del senso di rotazione e del numero di giri/posizionamento del mandrino Codice di programma Commento

ID=1 EVERY $A_IN[1]==1 DO M3 S300 ; Impostazione del senso di rotazione e del numero di giri

ID=2 EVERY $A_IN[2]==1 DO M4 S500 ; Indicazione di un nuovo senso di rotazione e di un nuovo numero di giri

ID=3 EVERY $A_IN[3]==1 DO S1000 ; Indicazione di un nuovo numero di giri

ID=4 EVERY ($A_IN[4]==1) AND ($A_IN[1]==0) DO SPOS=0

; Posizionamento del mandrino

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 699

10.4.21 Trascinamento (TRAILON, TRAILOF)

Funzioni Al momento dell'attivazione dell'accoppiamento dall'azione sincrona può accadere che l'asse master sia in movimento. In questo caso la velocità dell'asse a seguire viene aumentata fino a raggiungere la velocità di riferimento. La posizione dell'asse master al momento della sincronizzazione delle diverse velocità viene presa come punto di partenza del trascinamento. La funzionalità del trascinamento viene descritta nel capitolo "Comportamento del movimento sul profilo".

Sintassi Attivazione del trascinamento DO TRAILON(asse a seguire, asse master, fattore di accoppiamento) Disattivare il trascinamento DO TRAILOF (Asse slave, Asse master, Asse master 2)

Significato Attivazione del trascinamento asincrono: ... DO TRAILON(FA, LA, Kf) con:

FA: Asse slave LA: Asse master Kf: Fattore di accoppiamento

Disattivazione del trascinamento asincrono: ... DO TRAILOF(FA, LA, LA2) ... DO TRAILOF(FA)

con: FA: Asse slave LA: Asse master, opzionale LA2: Asse master 2, opzionale Tutti gli accoppiamenti all'asse slave vengono disattivati.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 700 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Codice di programma Commento

$A_IN[1]==0 DO TRAILON(Y,V,1) ; Attivazione del 1° gruppo di trascinamento se l'ingresso digitale è 1

$A_IN[2]==0 DO TRAILON(Z,W,-1) ; Attivazione del 2° gruppo di trascinamento

G0 Z10 ; Incremento dell'asse Z e W nella direzione dell'asse opposta

G0 Y20 ; Incremento dell'asse Y e V nella stessa direzione dell'asse

...

G1 Y22 V25 ; Sovrapposizione di un movimento dipendente e indipendente dell'asse di trascinamento "V"

...

TRAILOF(Y,V) ; Disattivazione del 1° gruppo di trascinamento

TRAILOF(Z,W) ; Disattivazione del 2° gruppo di trascinamento

Esempio per evitare il conflitto con TRAILOF Per poter consentire nuovamente la gestione di un asse accoppiato come asse canale, deve essere prima richiamata la funzione TRAILOF. È necessario assicurarsi che TRAILOF sia stata eseguita prima che il canale richieda l'asse interessato. Non è questo il caso dell'esempio che segue … N50 WHEN TRUE DO TRAILOF(Y,X) N60 Y100 … In questo caso l’asse non è stato svincolato in tempo utile in quanto l’azione sincrona attiva nel blocco, viene attivata con TRAILOF sincrono con N60, vedere capitolo Azioni sincrone al movimento, "Struttura, concetti fondamentali". Per evitare situazioni di conflitto, si dove procedere nel seguente modo … N50 WHEN TRUE DO TRAILOF(Y,X) N55 WAITP(Y) N60 Y100

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 701

10.4.22 Accoppiamento al valore master (LEADON, LEADOF)

Nota Questa funzione non è disponibile per SINUMERIK 828D!

Funzione L'accoppiamento al valore master assiale può essere programmato nelle azioni sincrone senza limitazioni di nessun tipo. La variazione di una tabella di curve con accoppiamento attivo senza una precedente risincronizzazione, è possibile in modo opzionale solo nelle azioni sincrone.

Sintassi Attivare l'accoppiamento al valore master DO LEADON(asse slave, asse master, tabella di curve N., OVW) Disattivare l'accoppiamento al valore master DO LEADOF(asse a seguire, asse master, asse master 2)

Significato Attivazione dell'accoppiamento al valore master assiale: ...DO LEADON(FA, LA, NR, OVW) con:

FA: Asse slave LA: Asse master NR: Numero della tabella di curve memorizzata OVW: Consentire la sovrascrittura di una tabella già esistente con tabella di curve modificata

Disattivazione dell'accoppiamento al valore master assiale: ...DO LEADOF(FA, LA) ... DO LEADOF(FA)

con: FA: Asse slave LA: Asse master, opzionale Forma abbreviata senza indicazione dell'asse master

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 702 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Attivazione dell'accesso tramite azioni sincrone RELEASE Per attivare un asse da accoppiare per l'accesso tramite azioni sincrone, è necessario richiamare prima la funzione RELEASE per l'asse slave da accoppiare. Esempio: RELEASE (XKAN) ID=1 every SR1==1 to LEADON(CACH,XKAN,1) OVW=0 (valore di default) Ad un'accoppiamento esistente non è possibile trasmettere nessuna tabella di curve senza una nuova sincronizzazione. Una modifica della tabella di curve richiede prima una disattivazione dell'accoppiamento attivo e poi una successiva attivazione con il numero di tabella di curve modificata. Questo comporta una risincronizzazione dell'accoppiamento. Modifica della tabella di curve con accoppiamento esistente tramite OVW=1 Con OVW=1 si può trasmettere una nuova tabella di curve ad un'accoppiamento esistente. Non avviene alcuna risincronizzazione. L'asse slave cerca di seguire il più rapidamente possibile i valori di posizione trasmessi dalla nuova tabella di curve.

Esempio di distacco al volo Un materiale estruso in continuazione deve essere tagliato a misura transitando sotto un dispositivo di taglio. Asse X: asse su cui si muove il materiale estruso. SCP Asse X1: asse macchina del materiale estruso, SCM Asse Y: asse lungo il quale il dispositivo di taglio “muove sincronizzato” con il materiale Si presume che l'avanzamento dell'accessorio separatore e il suo comando vengano controllati da PLC. Per stabilire il sincronismo tra il materiale e l'utensile di taglio si possono valutare i segnali dell'interfaccia PLC. Azioni Attivazione dell’accoppiamento, LEADON Disattivazione dell'accoppiamento, LEADOF Impostazione del valore reale, PRESETON

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 703

Codice di programma Commento

N100 R3=1500 ; Lunghezza di un componente da separare

N200 R2=100000 R13=R2/300

N300 R4=100000

N400 R6=30 ; Posizione iniziale asse Y

N500 R1=1 ; Condizione di partenza per l'asse del nastro trasportatore

N600 LEADOF(Y,X) ; Cancellazione di un accoppiamento eventualmente presente

N700 CTABDEF(Y,X,1,0) ; Definizione della tabella

N800 X=30 Y=30 ; Coppie di valori

N900 X=R13 Y=R13

N1000 X=2*R13 Y=30

N1100 CTABEND ; Fine della definizione della tabella

N1200 PRESETON(X1,0) ; PRESET per l'inizio

N1300 Y=R6 G0 ; Posizione iniziale asse Y, l'asse è lineare

N1400 ID=1 WHENEVER $AA_IW[X]>$R3 DO PESETON(X1,0) ; PRESET dopo lunghezza R3, nuovo inizio dopo la separazione

N1500 RELEASE(Y)

N1800 ID=6 EVERY $AA_IM[X]<10 DO LEADON(Y,X,1) ; Accoppiamento di Y su X tramite la tabella 1 con X < 10

N1900 ID=10 EVERY $AA_IM[X]>$R3-30 DO EADOF(Y,X) ; Disaccoppiamento > 30 prima della lunghezza di separazione percorsa

N2000 WAITP(X)

N2100 ID=7 WHEN $R1==1 DO MOV[X]=1 FA[X]=$R4 ; Messa in movimento costante dell'asse della barra

N2200 M30

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 704 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.23 Misura (MEAWA, MEAC)

Funzioni Al contrario di quando viene impiegata in blocchi di movimento del partprogram, la funzione di misura nelle azioni sincrone può essere attivata e disattivata a piacere. Per ulteriori informazioni sulle misure, vedere le istruzioni speciali per il percorso "Funzione di misura ampliata

Sintassi Misura assiale senza cancellazione del percorso residuo MEAWA[Asse] = (Modo, Evento di trigger_1, ..._4) Misura continua senza cancellazione del percorso residuo MEAC[Asse] = (Modo, memoria di misura, Evento di trigger_1, ..._4))

Significato Codice di programma

Commento

DO MEAWA ; Attivazione della misura assiale

DO MEAC ; Attivazione della misura continua

Asse ; Nome dell'asse per il quale avviene la misura

Modo ; Impostazione della decade delle decine 0: sistema di misura attivo

numero dei sistemi di misura (in base al modo) 1: 1° sistema di misura 2: 2° sistema di misura 3: entrambi i sistemi di misura

Impostazione della decade delle unità 0: interruzione funzione di misura

fino a 4 diversi eventi di trigger attivabili 1: contemporaneamente 2: in sequenza 3: come 2 ma senza sorveglianza dell'evento di trigger1 allo start

Evento di trigger_1 ... _4

; : fronte di salita del tastatore di misura 1 -1: fronte di discesa del tastatore di misura 1 2: fronte di salita del tastatore di misura 2 -2: fronte di discesa del tastatore di misura 2, opzionale

Memoria di misura

; Numero della memoria ad anello FIFO

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 705

10.4.24 Inizializzazione delle variabili di campo (SET, REP)

Funzioni Nelle azioni sincrone è possibile inizializzare le variabili di campo o descriverle con determinati valori.

Nota Sono possibili solo le variabili descrivibili nelle azioni sincrone. I dati macchina non sono pertanto inizializzabili. Le variabili d'asse non sono definibili con il valore NO_AXIS.

Sintassi DO FELD[n,m]=SET(<Valore1>,<Valore2>,...) DO FELD[n,m]=REP(<Valore>)

Significato FELD[n,m] Indici di campo programmati

L'inizializzazione parte dall'indice di campo programmato. Nel caso dei campi bidimensionali viene prima incrementato il secondo indice; non viene invece elaborato per gli indici d'asse.

SET(<Valore1>,<Valore2>,...) Inizializzazione con liste di valori

Il campo viene descritto con i parametri di SET dagli indici di campo programmati. Vengono assegnati tanti elementi di campo quanti valori sono stati programmati. Se i valori programmati superano gli elementi di campo rimanenti, viene generato un allarme.

REP(<Valore>) Inizializzazione con valori uguali Il campo viene descritto ripetutamente con il parametro (<Valore>) di REP dagli indici di campo programmati fino alla fine del campo.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 706 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Codice di programma Commento

WHEN TRUE DO SYG_IS[0]=REP(0) ;

WHEN TRUE DO SYG_IS[1]=SET(3,4,5) ;

Risultato:

SYG_IS[0]=0

SYG_IS[1]=3

SYG_IS[2]=4

SYG_IS[3]=5

SYG_IS[4]=0

10.4.25 Impostazione/cancellazione di label di attesa (SETM, CLEARM)

Funzioni In azioni sincrone è possibile impostare o cancellare label di attesa, per es. per coordinare fra loro i canali.

Sintassi DO SETM(<n. marker>) DO CLEARM(<n. marker>)

Significato SETM Comando per l'impostazione di label di attesa per il canale

Il comando SETM può essere scritto nel partprogram e nella parte di azione di un'azione sincrona. Esso imposta il label (<N. marker>) per il canale in cui si trova il comando.

CLEARM Comando per la cancellazione di label di attesa per il canale Il comando CLEARM può essere scritto nel partprogram e nella parte di azione di un'azione sincrona. Esso cancella il label (<N. marker>) per il canale in cui si trova il comando.

<N. marker> Label di attesa

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 707

10.4.26 Reazioni agli errori (SETAL)

Funzione Attraverso le azioni sincrone è possibile programmare le reazioni agli errori. Vengono interrogate le variabili di stato e attivate azioni corrispondenti. Le possibili reazioni agli errori sono le seguenti: ● Arresto dell'asse (override=0) ● Impostazione dell'allarme

Con SETAL è possibile impostare allarmi di cicli da azioni sincrone. ● Settare un'uscita ● Tutte le azioni possibili nelle azioni sincrone

Sintassi Impostazione dell'allarme ciclo: DO SETAL(<n_allarme>)

Significato SETAL Comando per l'impostazione di un allarme ciclo

Numero dell'allarme <n_allarme>

Campo di allarme cicli per l'utente: 65000 … 69999

Esempio Codice di programma Commento

ID=67 WHENEVER ($AA_IM[X1]-$AA_IM[X2])<4.567 DO $AA_OVR[X2]=0 ; Se la distanza di sicurezza tra gli assi X1 e X2 è troppo piccola, arrestare l'asse X2.

ID=67 WHENEVER ($AA_IM[X1]-$AA_IM[X2])<4.567 DO SETAL(65000) ; Se la distanza di sicurezza tra gli assi X1 e X2 è troppo piccola, impostare l'allarme 65000.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 708 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.4.27 Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF)

Funzione I comandi per la funzione "Avanzamento su riscontro fisso" vengono programmati in azioni sincrone/cicli tecnologici con i comandi dei partprogram FXS, FXST e FXSW. L'attivazione può avvenire senza movimento, la coppia viene immediatamente limitata. Non appena l'asse si sposta in direzione del setpoint, si attiva la sorveglianza di riscontro fisso. Avanzamento con coppia/forza limitata (FOC) La funzione consente di modificare in qualunque momento, tramite azioni sincrone, la coppia/forza e può essere attivata in maniera modale o riferita al blocco.

Sintassi FXS[<asse>] FXST[<asse>] FXSW[<asse>] FOCON[<asse>] FOCOF[<asse>]

Significato FXS Selezione solo nei sistemi con azionamenti digitali (VSA, HSA, HLA) FXST Modifica della coppia di serraggio FXST FXSW Modifica della finestra di sorveglianza FXSW FOCON Attivazione della limitazione della coppia/forza con validità modale FOCOF Disattivazione della limitazione della coppia/forza <asse> Identificatore dell'asse

Sono consentiti: • Identificatore dell'asse geometrico • Identificatore dell'asse canale • Identificatore dell'asse macchina

Nota La selezione può avvenire una sola volta.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 709

Esempi Esempio 1: Avanzamento su riscontro fisso (FXS), attivato da un'azione sincrona

Codice di programma Commento

Asse Y: ; Azioni sincrone statiche

Attivazione:

N10 IDS=1 WHENEVER (($R1==1) AND $AA_FXS[y]==0)) D $R1=0 FXS[Y]=1 FXST[Y]=10 FA[Y]=200 POS[Y]=150

; Impostando $R1=1, per l'asse Y viene attivato FXS, la coppia attiva viene ridotta a 10% e viene avviato un movimento in direzione del riscontro fisso.

N11 IDS=2 WHENEVER ($AA_FXS[Y]==4) DO FXST[Y]=30 ; Non appena il riscontro fisso è stato riconosciuto ($AA_FXS[Y]==4), la coppia viene aumentata al 30%.

N12 IDS=3 WHENEVER ($AA_FXS[Y]==1) DO FXST[Y]=$R0 ; Una volta raggiunto il riscontro fisso, la coppia viene controllata in funzione di R0.

N13 IDS=4 WHENEVER (($R3==1) AND $AA_FXS[Y]==1)) DO FXS[Y]=0 FA[Y]=1000 POS[Y]=0

; Deselezione in funzione di R3 e ritorno.

N20 FXS[Y]=0 G0 G90 X0 Y0 ; Normale esecuzione del programma:

N30 RELEASE(Y) ; Abilitazione dell'asse Y per il movimento nell'azione sincrona.

N40 G1 F1000 X100 ; Movimento di un altro asse.

N50 ...

N60 GET(Y) ; Ripresa dell'asse Y nel gruppo di interpolazione

Esempio 2: Attivazione della limitazione della coppia/forza (FOC) Codice di programma Commento

N10 FOCON[X] ; Attivazione modale della limitazione.

N20 X100 Y200 FXST[X]=15 ; X si muove con coppia ridotta (15%).

N30 FXST[X]=75 X20 ; Modifica della coppia al 75%, X si muove con questa coppia limitata.

N40 FOCOF[X] ; Disattivazione della limitazione della coppia.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 710 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Selezione multipla Se, a causa di una programmazione errata, la funzione viene nuovamente richiamata dopo l'attivazione (FXS[<Asse>]=1), viene attivato l'allarme seguente: Allarme 20092 "Avanzamento su riscontro fisso ancora attivo" Una programmazione che richieda nella condizione $AA_FXS[ ] oppure un proprio merker (in questo caso R1) evita un'attivazione multipla della funzione "Frammento del partprogram": Codice di programma N10 R1=0 N20 IDS=1 WHENEVER ($R1==0 AND $AA_IW[AX3] > 7) DO R1=1 FXST[AX1]=12

Azioni sincrone riferite al blocco Attraverso la programmazione di un'azione sincrona riferita al blocco, è possibile attivare l'avanzamento su riscontro fisso durante un movimento di avviamento. Esempio: Codice di programma Commento

N10 G0 G90 X0 Y0

N20 WHEN $AA_IW[X] > 17 DO FXS[X]=1 ; Se X raggiunge una posizione superiore a 17 mm, viene attivato FXS.

N30 G1 F200 X100 Y110

Azioni sincrone statiche e riferite al blocco Nelle azioni sincrone statiche e riferite al blocco è possibile utilizzare gli stessi comandi FXS, FXST e FXSW della normale esecuzione del partprogram. I valori che vengono assegnati possono essere stati derivati da un calcolo.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 711

10.4.28 Definizione dell'angolo della tangente vettoriale nella azioni sincrone

Funzione La variabile di sistema che può essere letta in azioni sincrone $AC_TANEB (Tangent ANgle at End of Block), rileva l’angolo tra la tangente vettoriale nel punto finale del blocco attuale e la tangente vettoriale nel punto iniziale del blocco successivo programmato.

Parametri L’angolo tangenziale viene sempre emesso positivo nel settore da 0.0 a 180.0 gradi. Se non è presente un blocco successivo nell'esecuzione principale, l'angolo viene emesso come -180.0 gradi. La variabile di sistema $AC_TANEB non dovrebbe essere letta in blocchi che vengono generati dal sistema (blocchi intermedi). La variabile di sistema $AC_BLOCKTYPE viene utilizzata per distinguere se si tratta di un blocco programmato (blocco principale).

Esempio ID=2 EVERY $AC_BLOCKTYPE==0 DO $SR1 = $AC_TANEB

10.4.29 Determinazione dell’override attuale

Funzione Override attuale (Parte NC) può essere letta e scritta in azioni sincrone con le variabili di sistema: $AA_OVR Override assiale $AC_OVR Override vettoriale. L'override impostato dal PLC viene messo a disposizione per la lettura da azioni sincrone nelle variabili di sistema: $AA_PLC_OVR Override assiale $AC_PLC_OVR Override vettoriale.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro 712 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Override risultante viene messo a disposizione per la lettura da azioni sincrone nelle variabili di sistema $AA_TOTAL_OVR Override assiale $AC_TOTAL_OVR Override vettoriale. L’override risultante si ricava come: $AA_OVR * $AA_PLC_OVR oppure $AC_OVR * $AC_PLC_OVR

10.4.30 Rilevazione del sovraccarico tramite il fabbisogno di tempo delle azioni sincrone

Funzioni In un ciclo di interpolazione, da parte dell’NC devono essere interpretate le azioni sincrone e calcolati i movimenti, etc. Con le variabili di sistema descritte in seguito, le azioni sincrone possono ricavare le informazioni sulle quote di tempo delle azioni sincrone nel clock di interpolazione e sul tempo di calcolo del regolatore di posizione.

Azioni sincrone al movimento 10.4 Azioni nelle azioni sincrone

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 713

Significato Le variabili contengono valori validi solo se il dato macchina $MN_IPO_MAX_LOAD è maggiore di 0. In caso contrario le variabili definiscono sempre, tanto per i sistemi SINUMERIK powerline quanto per quelli solution line, il tempo di calcolo netto, per il quale le interruzioni generate da HMI non vengono più considerate. Il tempo di calcolo netto risulta da: ● tempo dell’azione sincrona, ● tempo del regolatore di posizione e ● tempo di calcolo IPO residuo senza interruzioni provocate da HMI Le variabili contengono sempre i valori del clock IPO precedente. $AN_IPO_ACT_LOAD Tempo di calcolo IPO attuale (incluse le azioni sincrone di tutti i

canali) $AN_IPO_MAX_LOAD Tempo di calcolo IPO massimo (incluse le azioni sincrone di tutti

i canali) $AN_IPO_MIN_LOAD Tempo di calcolo IPO minimo (incluse le azioni sincrone di tutti i

canali) $AN_IPO_LOAD_PERCENT Tempo di calcolo IPO attuale in rapporto al clock IPO (%). $AN_SYNC_ACT_LOAD Tempo di calcolo attuale per le azioni sincrone di tutti i canali $AN_SYNC_MAX_LOAD Tempo di calcolo massimo per le azioni sincrone di tutti i canali $AN_SYNC_TO_IPO Quota percentuale delle azioni sincrone globali sul tempo di

calcolo IPO globale (su tutti i canali) $AC_SYNC_ACT_LOAD Tempo di calcolo attuale per le azioni sincrone del canale $AC_SYNC_MAX_LOAD Tempo di calcolo massimo per le azioni sincrone del canale $AC_SYNC_AVERAGE_LOAD Tempo di calcolo medio per le azioni sincrone del canale $AN_SERVO_ACT_LOAD Tempo di calcolo attuale del regolatore di posizione $AN_SERVO_MAX_LOAD Tempo di calcolo massimo del regolatore di posizione $AN_SERVO_MIN_LOAD Tempo di calcolo minimo del regolatore di posizione

Variabile per la segnalazione del sovraccarico: Tramite il dato macchina $MN_IPO_MAX_LOAD viene impostato, a partire da quale tempo di calcolo IPO netto (in % del clock IPO) la variabile di sistema $AN_IPO_LOAD_LIMIT deve essere impostata su TRUE. Se il carico attuale ritorna al di sotto di questo limite, la variabile viene nuovamente settata a FALSE. Con il DM = 0, viene disattivata completamente la funzione di diagnostica. Valutando $AN_IPO_LOAD_LIMIT l'utente può stabilire una propria strategia per evitare un overflow di livello.

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 714 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.5 10.5 Cicli tecnologici

Funzione Come azione in azioni sincrone si possono richiamare anche dei programmi, che però vanno strutturati come funzioni che sono ammesse anche come azioni in azioni sincrone. I programmi così strutturati sono detti cicli tecnologici. I cicli tecnologici vengono memorizzati nel controllo come sottoprogrammi. In un canale si possono eseguire parallelamente diversi cicli tecnologici o azioni.

Programmazione Per la programmazione di cicli tecnologici valgono le seguenti regole: ● La fine del programma viene programmata con M02/M17/M30/RET. ● Entro un livello di programma tutte le azioni specificate in ICYCOF possono essere

elaborate in un clock senza cicli di attesa. ● È possibile interrogare in successione fino a 8 cicli tecnologici per ciascuna azione

sincrona. ● I cicli tecnologici sono possibili anche in azioni sincrone valide blocco a blocco. ● È possibile programmare sia costrutti di controllo IF, sia istruzioni di salto GOTO, GOTOF e

GOTOB. ● Per blocchi con istruzioni DEF e DEFINE vale:

– Le istruzioni DEF e DEFINE vengono ignorate nei cicli tecnologici. – In presenza di una sintassi non corretta o incompleta, provocano un messaggio di

allarme. – Possono essere ignorate senza creazione della variabile e senza messaggio di

allarme. – Vengono completamente considerate con assegnazioni di valori come ciclo di

partprogram.

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 715

Assegnazione di parametri È possibile trasmettere parametri ai cicli tecnologici. Vengono considerati tanto i tipi di dati semplici, che vengono passati come parametri formali "Call by Value", quanto le impostazioni standard, che si attivano alla chiamata dei cicli tecnologici. Si tratta di: ● Valori standard programmati, se non è programmato alcun parametro di trasferimento. ● Parametri standard dotati di valori iniziali. ● Parametri attuali non inizializzati trasferiti con un valore standard.

Procedura I cicli tecnologici vengono startati non appena vengono soddisfatte le proprie condizioni. Ogni riga di un ciclo tecnologico viene elaborata in un clock IPO separato. Per assi di posizionamento, per l'esecuzione, sono necessari più clock IPO. Altre funzioni vengono eseguite in un solo clock. Nel ciclo tecnologico l'esecuzione dei blocchi avviene in maniera sequenziale. Se in uno stesso clock di interpolazione vengono richiamate azioni che si escludono a vicenda, si attiva l'azione che l'azione sincrona richiama con il numero ID più alto.

Esempi Esempio 1: Con l'impostazione degli ingressi digitali vengono avviati i programmi asse

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 716 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programma principale: Codice di programma Commento

ID=1 EVERY $A_IN[1]==1 DO ASSE_X ; Se l'ingresso 1 è su 1, avvia il programma ASSE_X.

ID=2 EVERY $A_IN[2]==1 DO ASSE_Y ; Se l'ingresso 2 è su 1, avvia il programma ASSE_Y.

ID=3 EVERY $A_IN[3]==1 DO ASSE_Z ; Se l'ingresso 3 è su 1, avvia il programma ASSE_Z.

M30

Programma asse ASSE_X: Codice di programma M100 POS[X]=100 FA[X]=300 M17

Programma asse ASSE_Y: Codice di programma POS[Y]=10 FA[Y]=200 POS[Y]=-10 M17

Programma asse ASSE_Z: Codice di programma POS[Z]=90 FA[Z]=250 POS[Z]=-90 M17

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 717

Esempio 2: Diverse sequenze di programmazione nel ciclo tecnologico Codice di programma

PROC CYCLE

N10 DEF REAL VALORE=12.3

N15 DEFINE ABC AS G01

Entrambi i blocchi vengono ignorati senza allarme e senza creazione della variabile o della macro. Codice di programma

PROC CYCLE

N10 DEF REAL

N15 DEFINE ABC G01

Entrambi i blocchi provocano l'allarme NC poiché la sintassi non è scritta in modo corretto. Codice di programma

PROC CYCLE

N10 DEF AXIS ASSE1=XX2

Se l'asse XX2 non è noto, viene emesso l'allarme 12080. In caso contrario, il blocco viene ignorato senza allarme e senza creazione della variabile. Codice di programma

PROC CYCLE

N10 DEF AXIS ASSE1

N15 G01 X100 F1000

N20 DEF REAL VALORE1

Il blocco N20 provoca sempre l'allarme 14500, dato che il 1° comando del programma non può essere seguito da un'istruzione di definizione.

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 718 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.5.1 Variabile di contesto ($P_TECCYCLE)

Funzione Con l'ausilio della variabile $P_TECCYCLE è possibile suddividere i programmi in programmi di azione sincrona e programmi di preelaborazione. In questo modo si possono ottenere blocchi o sequenze di programma scritti in modo sintatticamente corretto, in alternativa anche come ciclo di partprogram.

Interpretazione della variabile di contesto La variabile di sistema $P_TECCYCLE consente di controllare interpretazioni specifiche per contesto di parti del programma in cicli tecnologici: IF $P_TECCYCLE==TRUE

... ; Sequenza di programma per ciclo tecnologico nell'azione sincrona.

ELSE

... ; Sequenza di programma per ciclo di partprogram.

ENDIF

Nota Un blocco con sintassi di programma scorretta o non consentita e assegnazioni di valori sconosciute provoca, anche nel ciclo di partprogram, un messaggio di allarme.

Esempio Sequenza di programma con interrogazione di $P_TECCYCLE nel ciclo tecnologico:

Codice di programma Commento

PROC CYCLE

N10 DEF REAL VALORE1 ; Viene ignorato nel ciclo tecnologico.

N15 G01 X100 F1000

N20 IF $P_TECCYCLE==TRUE

... ; Sequenza di programma per ciclo tecnologico (senza variabile VALORE1).

N30 ELSE

... ; Sequenza di programma per ciclo di partprogram (variabile VALORE1 presente).

N40 ENDIF

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 719

10.5.2 Parametri Call-by-Value

Funzione I cicli tecnologici possono essere definiti con parametri Call-by-Value. Come parametri sono possibili i tipi semplici di dati, come INT, REAL, CHAR, STRING, AXIS e BOOL.

Nota I parametri formali che vengono trasferiti a Call-by-Value non possono essere dei campi. I parametri attuali possono essere costituiti anche da parametri di default (vedere"Inizializzazione dei parametri di default (Pagina 719)").

Sintassi ID=1 WHEN $AA_IW[X]>50 DO TEC(IVAL,RVAL,,SVAL,AVAL)

In caso di parametri attuali non inizializzati viene trasmesso un valore di default: ID=1 WHEN $AA_IW[X]>50 DO TEC(IVAL,RVAL,,SYG_SS[0],AVAL)

10.5.3 Inizializzazione dei parametri di default

Funzioni Con l'istruzione PROC, i parametri di default possono anche essere dotati di un valore iniziale.

Sintassi Assegnazione dei parametri di default nel ciclo tecnologico: PROC TEC (INT IVAL=1, REAL RVAL=1.0, CHAR CVAL='A', STRING[10] SVAL="ABC", AXIS AVAL=X, BOOL BVAL=TRUE) Se un parametro attuale è costituito da un parametro di default, il valore iniziale viene trasferito dall'istruzione PROC. Ciò vale sia nel partprogram, sia nelle azioni sincrone.

Esempio Codice di programma Commento

TEC (IVAL, RVAL, SVAL, AVAL) ; Per CVAL e BVAL vale il valore iniziale

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 720 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.5.4 Controllo ed esecuzione di cicli tecnologici (ICYCOF, ICYCON)

Funzione Per il controllo dell'esecuzione temporale dei cicli tecnologici si utilizzano i comandi ICYCOF e ICYCON. Con ICYCOF tutti i blocchi di un ciclo tecnologico vengono eseguiti in un unico clock di interpolazione. Tutte le azioni, la cui esecuzione richiede più clock, provocano con ICYCOF dei processi paralleli di elaborazione. Applicazione Con ICYCON i movimenti degli assi di comando possono avere come conseguenza che l'esecuzione di un ciclo tecnologico subisca un ritardo. Se si desidera evitarlo, con ICYCOF è possibile eseguire tutte le azioni senza tempi di attesa in clock di interpolazione.

Sintassi Per l'esecuzione ciclica dei cicli di elaborazione vale: ICYCON ogni blocco di un ciclo tecnologico viene eseguito secondo ICYCON in un clock IPO separato ICYCOF tutti i blocchi seguenti di un ciclo tecnologico vengono eseguiti con ICYCOF in un unico clock IPO

Nota I due comandi ICYCON e ICYCOF agiscono solo all'interno del livello di programma. Nel partprogram questi due comandi vengono semplicemente ignorati (nessuna reazione).

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 721

Esempio di modalità di esecuzione ICYCOF Codice di programma Commento

clock IPO ; PROC TECHNOCYC

1. ; $R1=1

2.25 ; POS[X]=100

26. ; ICYCOF

26. ; $R1=2

26. ; $R2=$R1+1

26. ; POS[X]=110

26. ; $R3=3

26. ; RET

10.5.5 Strutturazioni in cascata dei cicli tecnologici

Funzioni È possibile eseguire fino a 8 cicli tecnologici collegati in serie. In questo modo, in un'azione sincrona sono programmabili più cicli tecnologici.

Sintassi ID=1 WHEN $AA_IW[X]>50 DO TEC1($R1) TEC2 TEC3(X) Sequenza operativa I cicli tecnologici vengono eseguiti secondo la serie (in cascata) da sinistra a destra, conformemente alla programmazione sopra indicata. Se un ciclo viene eseguito nella modalità ICYCON, vengono ritardate tutte le elaborazioni successive. Viene emesso un allarme che interrompe tutte le azioni successive.

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 722 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.5.6 Cicli tecnologici in azioni sincrone blocco per blocco

Funzione I cicli tecnologici sono possibili anche in azioni sincrone blocco per blocco. Se il tempo di esecuzione di un ciclo tecnologico è maggiore del tempo di elaborazione del blocco relativo, il ciclo tecnologico viene interrotto al cambio blocco.

Nota Un ciclo tecnologico non impedisce il cambio blocco.

10.5.7 Costrutti di controllo (IF)

Funzioni Per le diramazioni nelle frequenza del flusso dei cicli tecnologici è possibile utilizzare costrutti di controllo IF nelle azioni sincrone.

Sintassi IF <Condizione> $R1=1 [ELSE] opzionale $R1=0 ENDIF

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 723

10.5.8 Istruzioni di salto (GOTO, GOTOF, GOTOB)

Funzioni Nei cicli tecnologici sono possibili le istruzioni di salto GOTO, GOTOF, GOTOB. Le label specificate devono essere presenti nel sottoprogramma affinché non venga emesso un allarme.

Nota Le label e i numeri di blocco possono essere solo delle costanti.

Sintassi Salti incondizionali GOTO label, numero di blocco GOTOF label, numero di blocco GOTOB label, numero di blocco

Istruzioni di salto e destinazioni del salto GOTO Salta prima in avanti e poi indietro GOTOF Salta in avanti GOTOB Salta indietro Label: Label di salto Numero di blocco Destinazione del salto: questo blocco N100 Il numero di blocco è il blocco secondario :100 Il numero di blocco è il blocco principale

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro 724 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.5.9 Blocco, sblocco, reset (LOCK, UNLOCK, RESET)

Funzioni L'esecuzione di un ciclo tecnologico può essere bloccata, nuovamente sbloccata oppure resettata attraverso un'altra azione sincrona modale.

Sintassi LOCK(<n1>,<n2>,...) UNLOCK(<n1>,<n2>,...) RESET(<n1>,<n2>,...)

Significato LOCK Comando per il blocco di azioni sincrone

L'azione attiva viene interrotta. UNLOCK Comando per lo sblocco di azioni sincrone RESET Comando per il reset di cicli tecnologici <n1>,<n2>,... Numeri identificativi delle azioni sincrone o dei cicli tecnologici che

devono essere bloccati, sbloccati o resettati.

Blocco di azioni sincrone Azioni sincrone modali con numeri identificativi <n> = 1 ... 64 possono essere bloccate dal PLC. La condizione corrispondente non viene più valutata e l'esecuzione della funzione corrispondente viene bloccata nell'NCK. Mediante un segnale all'interfaccia PLC è possibile bloccare tutte le azioni sincrone in blocco.

Nota Un'azione sincrona programmata è attiva in modo standard e può essere protetta contro la lettura e la scrittura mediante un dato macchina. Le azioni sincrone predefinite dal costruttore della macchina non devono poter essere modificate dal cliente finale.

Azioni sincrone al movimento 10.5 Cicli tecnologici

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 725

Esempi Esempio 1: Blocco delle azioni sincrone (LOCK) Codice di programma N100 ID=1 WHENEVER $A_IN[1]==1 DO M130 ... N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1)

Esempio 2: Sblocco delle azioni sincrone (UNLOCK) Codice di programma N100 ID=1 WHENEVER $A_IN[1]==1 DO M130 ... N200 ID=2 WHENEVER $A_IN[2]==1 DO LOCK(1) ... N250 ID=3 WHENEVER $A_IN[3]==1 DO UNLOCK(1)

Esempio 3: Interruzione del ciclo tecnologico (RESET) Codice di programma N100 ID=1 WHENEVER $A_IN[1]==1 DO M130 ... N200 ID=2 WHENEVER $A_IN[2]==1 DO RESET(1)

Azioni sincrone al movimento 10.6 Cancellazione dell'azione sincrona (CANCEL)

Preparazione del lavoro 726 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

10.6 10.6 Cancellazione dell'azione sincrona (CANCEL)

Funzione Con il comando CANCEL si può interrompere un'azione sincrona modale o statica attiva dal partprogram. Se un'azione sincrona viene interrotta mentre è ancora attivo il posizionamento, esso viene portato a termine. Se ciò non è desiderato, il movimento dell'asse può essere frenato con la cancellazione assiale del percorso residuo prima del comando CANCEL.

Sintassi CANCEL(<n1>,<n2>,...)

Significato CANCEL: Comando per la cancellazione di azioni sincrone programmate

Numeri di identificazione delle azioni sincrone da cancellare <n1>,<n2>,...: Nota: Se non è specificato un numero di identificazione, verranno cancellate tutte le azioni sincrone modali/statiche.

Esempi Esempio 1: Interruzione di un'azione sincrona

Codice di programma Commento

N100 ID=2 WHENEVER $A_IN[1]==1 DO M130

...

N200 CANCEL(2) ; Cancella l'azione sincrona modale n° 2.

Esempio 2: Cancellazione del percorso residuo prima dell'interruzione di un'azione sincrona

Codice di programma Commento

N100 ID=17 EVERY $A_IN[3]==1 DO POS[X]=15 FA[X]=1500 ; Avvio del movimento dell'asse di posizionamento.

...

N190 WHEN ... DO DELDTG(X) ; Conclusione del movimento dell'asse di posizionamento.

N200 CANCEL(17) ; Cancella l'azione sincrona modale n° 17.

Azioni sincrone al movimento 10.7 Comportamento di controllo in determinati stati operativi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 727

10.7 10.7 Comportamento di controllo in determinati stati operativi

POWER ON Con POWER ON non sono normalmente attive azioni sincrone. Le azioni sincrone statiche possono essere attivate con un sottoprogramma asincrono (ASUP) avviato da PLC.

Cambio del modo operativo Le azioni sincrone attivate con la parola chiave IDS restano attive anche dopo un cambio del modo operativo. Tutte le altre azioni sincrone perdono validità al cambio del modo operativo (ad es. posizionamento asse) e ritornano attive dopo il riposizionamento e il ritorno al funzionamento automatico.

RESET Con RESET NC vengono terminate tutte le azioni sincrone attive blocco per blocco e modali. Le azioni sincrone statiche rimangono attive. Da esse si possono far partire nuove azioni. Se al RESET è attivo un movimento dell'asse di comando, lo stesso viene interrotto. Dopo RESET le azioni sincrone del tipo WHEN che sono state già eseguite non vengono più elaborate.

Comportamento dopo RESET Azione sincrona/ ciclo tecnologico

Modale/blocco-blocco Statica (IDS)

L'azione attiva viene interrotta, le azioni sincrone vengono cancellate

L'azione attiva viene interrotta, il ciclo tecnologico viene resettato

Asse/mandrino posizionatore

Il movimento viene interrotto. Il movimento viene interrotto.

Mandrino regolato in velocità

$MA_SPIND_ACTIVE_AFTER_RESET==1: Il mandrino rimane attivo $MA_SPIND_ACTIVE_AFTER_RESET==0: Il mandrino si arresta.

Accoppiamento del valore master

$MC_RESET_MODE_MASK, Bit13 == 1: L'accoppiamento del valore master resta attivo $MC_RESET_MODE_MASK, Bit13 == 0: l'accoppiamento del valore master viene disattivato

Misure Le misure attivate da azioni sincrone vengono interrotte.

Le misure attivate da azioni sincrone statiche vengono interrotte.

Azioni sincrone al movimento 10.7 Comportamento di controllo in determinati stati operativi

Preparazione del lavoro 728 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

NC-Stop Statiche Le azioni sincrone restano attive anche con NC-Stop. I movimenti attivati mediante azioni sincrone statiche non vengono interrotti. Azioni sincrone locali del programma appartenenti al blocco attivo mantengono la loro validità, mentre i movimenti da esse attivati vengono interrotti.

Fine programma La fine del programma e le azioni sincrone non si influenzano reciprocamente. Le azioni sincrone attive vengono proseguite anche dopo la fine del programma. Le azioni sincrone attive in un blocco M30 rimangono attive nel blocco M30; Se questo non è consentito, occorre interrompere l'azione sincrona prima della fine del programma con CANCEL.

Comportamento dopo la fine programma Azione sincrona/ ciclo tecnologico

Modale/blocco per blocco → vengono interrotti

Statici (IDS) → rimangono attivi

Asse/mandrino posizionatore

M30 viene ritardata fino a quando l'asse/il mandrino è fermo.

Il movimento prosegue.

Mandrino regolato in velocità

Fine programma: $MA_SPIND_ACTIVE_AFTER_RESET==1: Il mandrino rimane attivo $MA_SPIND_ACTIVE_AFTER_RESET==0: Il mandrino si arresta. Al cambio del modo operativo il mandrino resta attivo.

Il mandrino rimane attivo.

Accoppiamento del valore master

$MC_RESET_MODE_MASK, Bit13 == 1: L'accoppiamento del valore master resta attivo $MC_RESET_MODE_MASK, Bit13 == 0: L'accoppiamento del valore master viene disattivato

L'accoppiamento generato da azioni sincrone statiche rimane attivo.

Misure Le misure attivate da azioni sincrone vengono interrotte.

Le misure attivate da azioni sincrone statiche rimangono attive.

Ricerca blocco Durante la ricerca blocco le azioni sincrone vengono raggruppate e valutate con Start NC; le relative azioni vengono all'occorrenza avviate. Le azioni sincrone statiche sono attive anche durante la ricerca blocco. Se la ricerca blocco attivata con FCTDEF trova dei coefficienti di polinomi programmati, essi vengono attivati direttamente.

Azioni sincrone al movimento 10.7 Comportamento di controllo in determinati stati operativi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 729

Interruzione del programma attraverso un sottoprogramma asincrono ASUP Inizio ASUP: Le azioni sincrone di movimento modali e statiche vengono mantenute e sono attive anche nel sottoprogramma asincrono. Fine ASUP: Se il sottoprogramma asincrono non viene proseguito con REPOS, le azioni sincrone di movimento modali e statiche che vi erano state modificate continuano ad essere attive nel programma principale.

Riposizionamento (REPOS) Dopo un riposizionamento (REPOS), le azioni sincrone attive nel blocco interrotto ritornano attive. Le azioni sincrone modali modificate dal sottoprogramma asincrono non sono invece attive durante l'elaborazione del blocco residuo successiva al comando REPOS. I coefficienti del polinomio programmati con FCTDEF non vengono influenzati dai sottoprogrammi asincroni e dal comando REPOS. Indipendentemente da dove siano stati programmati, essi possono essere impiegati in qualunque momento nel sottoprogramma asincrono e nel programma principale, anche in seguito a REPOS.

Comportamento in caso di allarmi I movimenti di asse e mandrino avviati da azioni sincrone vengono frenati se è attivo un allarme con arresto del movimento. Tutte le altre azioni (ad es. impostazione di un'uscita) continuano ad essere eseguite. Se un'azione sincrona provoca un allarme, l'elaborazione si interrompe e le sue successive azioni sincrone non vengono più eseguite. Se l'azione sincrona ha validità modale, non verrà più eseguita nel successivo clock di interpolazione. L'allarme viene quindi emesso una sola volta. Tutte le altre azioni sincrone continuano ad essere elaborate. Gli allarmi che come reazione bloccano l'interprete hanno effetto solo dopo che sono stati elaborati i blocchi predecodificati. Se un ciclo tecnologico genera un allarme con arresto del movimento, il ciclo stesso non viene più eseguito.

Azioni sincrone al movimento 10.7 Comportamento di controllo in determinati stati operativi

Preparazione del lavoro 730 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 731

Pendolamento 1111.1 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL,

OSNSC, OSE, OSB)

Funzione Un asse di pendolamento si muove tra i punti di inversione 1 e 2 con avanzamento preimpostato fino a che non viene disattivato il movimento di pendolamento. Durante il movimento di pendolamento gli altri assi possono essere interpolati liberamente. Con un movimento di contornitura oppure con un asse di posizionamento è possibile ottenere un incremento continuo. Non esiste però alcuna relazione tra movimento di pendolamento e di incremento. Caratteristiche del pendolamento asincrono ● Il pendolamento asincrono è attivo per un asse specifico anche in corrispondenza di fine

blocco. ● Tramite il partprogram è garantito un inserimento sincrono al blocco del movimento di

pendolamento. ● Non è possibile una interpolazione comune di più assi ed una sovrapposizione di tratti di

pendolamento. Programmazione Durante l'esecuzione del programma NC è possibile inserire ed influenzare con i seguenti comandi il pendolamento asincrono direttamente dal partprogram. I valori programmati, sincroni al blocco nell'elaborazione principale, vengono registrati nei corrispondenti dati setting e restano attivi fino alla successiva modifica.

Sintassi OSP1[<asse>]=<valore> OSP2[<asse>]=<valore> OST1[<asse>]=<valore> OST2[<asse>]=<valore> FA[<asse>]=<valore> OSCTRL[<asse>]=(<opzione di set>,<opzione_reset>) OSNSC[<asse>]=<valore> OSE[<asse>]=<valore> OSB[<asse>]=<valore> OS[<asse>]=1 OS[<asse>]=0

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro 732 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato <asse> Nome dell'asse di pendolamento

Attivazione/disattivazione del pendolamento 1 Pendolamento ON

OS

Valore: 0 Pendolamento OFF

OSP1 Definizione della posizione del punto di inversione 1 OSP2 Definizione della posizione del punto di inversione 2 Nota:

Se è attivo un movimento incrementale, la posizione viene calcolata in modo incrementale rispetto all'ultimo punto di inversione programmato nel programma NC.

OST1 Definizione del tempo di stazionamento nel punto di inversione 1 in [s] OST2 Definizione del tempo di stazionamento nel punto di inversione 2 in [s]

-2 L'interpolazione prosegue senza attendere l'arresto preciso -1 Attendere l'arresto preciso grossolano 0 Attendere l'arresto preciso fine

<valore>:

>0 Attendere l'arresto preciso fine e poi attendere il tempo di stazionamento specificato Nota: L'unità per il tempo di stazionamento è identica a quella programmata con G4.

FA Definizione della velocità di avanzamento Come velocità di avanzamento vale quella definita per l'asse di posizionamento. Se non viene definita alcuna velocità di avanzamento vale il valore inserito nel dato macchina.

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 733

Definizione delle opzioni di set e reset I valori opzionali 0 - 3 codificano il comportamento sui punti di inversione durante la disinserzione. È possibile selezionare una delle varianti 0 - 3. Le restanti impostazioni sono combinabili all'occorrenza con la variante selezionata. Per indicare più opzioni, interporre il segno più (+).

0 Alla disattivazione del pendolamento, arresto nel successivo punto di inversione (preimpostazione) Nota: possibile solo mediante il reset dei valori 1 e 2.

1 Alla disattivazione del pendolamento, arresto nel punto di inversione 1

2 Alla disattivazione del pendolamento, arresto nel punto di inversione 2

3 Alla disattivazione del pendolamento non raggiungere alcun punto di inversione se non è stata programmata alcuna passata di spegnifiamma

4 Dopo lo spegnifiamma raggiungere la posizione finale 8 Se il pendolamento viene interrotto con la cancellazione del

percorso residuo, eseguire la passata di spegnifiamma ed eventualmente raggiungere la posizione finale.

16 Se il pendolamento viene interrotto con la cancellazione del percorso residuo, raggiungere, come per la disattivazione, il relativo punto di inversione.

32 L'avanzamento modificato è attivo solo dopo il successivo punto di inversione

64 FA uguale a 0, FA = 0: sovrapposizione del movimento attiva FA uguale a 0, FA <> 0: sovrapposizione di velocità attiva

128 Per assi rotanti DC (percorso più breve) 256 La passata di spegnifiamma viene eseguita come doppia

passata. (Standard) 1 = la passata di spegnifiamma viene eseguita come singola passata.

OSCTRL

<valore>:

512 Dapprima accostamento alla posizione iniziale

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro 734 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

OSNSC Definizione del numero delle passate di spegnifiamma OSE Definizione della posizione finale (nell'SCP), da raggiungere dopo la

disinserzione del pendolamento Nota: Programmando OSE, per OSCTRL diventa implicitamente attiva l'opzione 4.

OSB Definizione della posizione iniziale (nell'SCP), da raggiungere prima dell'inserzione del pendolamento La posizione iniziale viene raggiunta prima del punto di inversione 1. Se la posizione iniziale coincide con la posizione di inversione 1, viene successivamente raggiunta la posizione di inversione 2. Al raggiungimento della posizione iniziale non si attiva un tempo di stazionamento, anche se la posizione iniziale coincide con la posizione di inversione 1; inizia invece l'attesa dell'arresto preciso fine. Se è impostata una condizione di arresto preciso, la stessa viene rispettata. Nota: per il raggiungimento della posizione iniziale, è necessario che nel dato setting SD43770 $SA_OSCILL_CTRL_MASK sia impostato il bit 9.

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 735

Esempi Esempio 1: l'asse deve pendolare tra due punti di inversione L'asse Z deve pendolare tra le posizioni 10 e 100. Il punto di inversione 1 deve essere raggiunto con arresto preciso fine, il punto di inversione 2 con arresto preciso grossolano. L'avanzamento per l'asse di pendolamento deve essere 250. Al termine della lavorazione si devono eseguire 3 passate di spegnifiamma e l'asse di pendolamento deve raggiungere la posizione finale 200. L'avanzamento per l'asse di incremento deve essere 1, la fine dell'incremento in direzione X va raggiunta alla posizione 15. Codice di programma Commento

WAITP(X,Y,Z) ; Posizione iniziale.

G0 X100 Y100 Z100 ; Commutazione in funzionamento come asse di posizionamento.

WAITP(X,Z)

OSP1[Z]=10 OSP2[Z]=100 ; Punto di inversione 1, punto di inversione 2.

OSE[Z]=200 ; Posizione finale.

OST1[Z]=0 OST2[Z]=–1 ;

;

Tempo di arresto in U1: Arresto preciso fine

Tempo di arresto in U2: arresto preciso grossolano

FA[Z]=250 FA[X]=1 ; Avanzamento asse di pendolamento, avanzamento asse di incremento

OSCTRL[Z]=(4,0) ; Opzioni di set.

OSNSC[Z]=3 ; 3 passate di spegnifiamma.

OS[Z]=1 ; Avvio del pendolamento.

WHEN $A_IN[3]==TRUE DO DELDTG(X) ; Cancellazione del percorso residuo.

POS[X]=15 ; Posizione iniziale asse X

POS[X]=50 Posizione finale asse X.

OS[Z]=0 ; Arresto del pendolamento.

M30

Nota La sequenza di comandi OSP1[Z]=... ... OSNCS[Z]=... può essere programmata anche in un blocco.

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro 736 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: pendolamento con modifica online della posizione di inversione I dati di setting necessari per il pendolamento asincrono possono essere definiti nel partprogram. Se i dati di setting vengono definiti direttamente nel partprogram, la variazione diventa attiva già in fase di preelaborazione. La sincronizzazione può essere ottenuta con uno stop preelaborazione (STOPRE).

Codice di programma Commento

$SA_OSCILL_REVERSE_POS1[Z]=-10

$SA_OSCILL_REVERSE_POS2[Z]=10

G0 X0 Z0

WAITP(Z)

ID=1 WHENEVER $AA_IM[Z] < $$AA_OSCILL_REVERSE_POS1[Z] DO $AA_OVR[X]=0

ID=2 WHENEVER $AA_IM[Z] < $$AA_OSCILL_REVERSE_POS2[Z] DO $AA_OVR[X]=0

; Se il valore reale dell'asse di pendolamento ha superato il punto di inversione, l'asse di incremento viene arrestato.

OS[Z]=1 FA[X]=1000 POS[X]=40 ; Attivazione del pendolamento.

OS[Z]=0 ; Disattivazione del pendolamento.

M30

Ulteriori informazioni Asse di pendolamento Per l'asse di pendolamento vale quanto segue: ● ogni asse può essere utilizzato come asse di pendolamento. ● possono essere attivati contemporaneamente più assi di pendolamento (al massimo:

numero degli assi di posizionamento). ● per l'asse di pendolamento è sempre attiva l'interpolazione lineare G1

indipendentemente dal comando G valido attualmente nel programma. L'asse di pendolamento può: ● essere l'asse di ingresso per la trasformazione dinamica ● essere l'asse pilota per assi Gantry e di trascinamento ● essere mosso:

– senza limitazione dello strappo (BRISK) oppure

– con limitazione dello strappo (SOFT) oppure

– con caratteristica di accelerazione a pendenza variabile (come gli assi di posizionamento).

Pendolamento 11.1 Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 737

Punti di inversione pendolamento Nella definizione delle posizioni di pendolamento bisogna verificare le traslazioni attuali: ● indicazioni assolute

OSP1[Z]=<valore> posiz. punto di inversione = somma delle traslazioni + valore programmato

● impostazioni incrementali OSP1[Z]=IC(<valore>) posiz. punto di inversione = punto di inversione 1 + valore programmato

Esempio: Codice di programma

N10 OSP1[Z] = 100 OSP2[Z] = 110

...

...

N40 OSP1[Z] = IC(3)

WAITP Se si deve pendolare con un asse geometrico, è indispensabile che esso sia abilitato al pendolamento con WAITP. A pendolamento ultimato, con WAITP l'asse viene dichiarato nuovamente come asse di posizionamento e può essere utilizzato normalmente. Pendolamento con azioni sincrone al movimento e tempi di stazionamento Allo scadere dei tempi di sosta, nel pendolamento si verifica il cambio di asse interno (osservabile dai nuovi percorsi residui degli assi). Durante il cambo di asse viene verificata la funzione di disattivazione. Nella circostanza viene definita la funzione di disattivazione secondo le impostazioni nel controllo numerico per la sequenza di movimenti (OSCTRL). Questo comportamento temporale è influenzabile dall'override dell'avanzamento. In base alle circostanze è possibile eseguire ancora una passata di pendolamento prima che venga eseguita la passata di spegnifiamma o che sia stata raggiunta la posizione finale. Potrebbe sembrare, in questo caso, che sia cambiato il comportamento alla disinserzione. Tuttavia non è così.

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro 738 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

11.2 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Funzione Con questo tipo di pendolamento il movimento di incremento è consentito solo nei punti di inversione oppure entro aree di inversione definite. In funzione delle esigenze, il movimento di pendolamento durante l’incremento può ● proseguire oppure ● può essere arrestato finché l’incremento non è stato completamente eseguito.

Sintassi 1. Definire i parametri per il pendolamento 2. Definizione delle azioni sincrone al movimento 3. Abbinare gli assi, definire l'incremento

Significato OSP1[<asse di pendolamento>]= posizione del punto di inversione 1 OSP2[<asse di pendolamento>]= posizione del punto di inversione 2 OST1[<asse di pendolamento>]= tempo di attesa nel punto di inversione 1, in

secondi OST2[<asse di pendolamento>]= tempo di attesa nel punto di inversione 2, in

secondi FA[<asse di pendolamento>]= avanzamento dell'asse di pendolamento OSCTRL[<asse di pendolamento>]= opzioni di set e reset OSNSC[<asse di pendolamento>]= numero delle passate di spegnifiamma OSE[<asse di pendolamento>]= posizione finale WAITP(<asse di pendolamento>) consenso per l'asse di pendolamento

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 739

Abbinamento degli assi, incremento OSCILL[<asse di pendolamento>]=(<asse d'incremento 1>,<asse d'incremento 2>,<asse d'incremento 3>) POSP[asse d'incremento ]=(<pos.finale>,<lungh.parziale>,<modo>)

OSCILL: abbinare l'asse di incremento all'asse di pendolamento POSP: definizione della lunghezza totale e parziale (vedi capitolo Gestione file e

programmi) Posizione finale:

posizione finale dell'asse di incremento secondo la quale vengono eseguiti tutti gli incrementi parziali.

Lunghezza parziale:

dimensione incrementi parziali sul punto di inserz./campo di inversinversione

Modo: suddivisione dell'incremento totale in incrementi parziali = due tratti restanti di uguale dimensione (preimpostazione); = tutti gli incrementi parziali sono della stessa dimensione

Azioni sincrone al movimento WHEN… … DO se..., esegui... WHENEVER … DO sempre se..., esegui...

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro 740 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio Nel punto di inversione 1 non deve avvenire alcun incremento. Sul punto di inversione 2 l'incremento deve avvenire già ad una distanza ii2, prima del punto di inversione stesso e l'asse di pendolamento sul punto di inversione non deve attendere il completamento dell'incremento parziale. L'asse Z è quello di pendolamento e l'asse X quello di incremento.

1. Parametri per il pendolamento Codice di programma Commento

DEF INT ii2 ; Definire la variabile per il campo di inversione 2

OSP1[Z]=10 OSP2[Z]=60 ; Definire i punti di inversione 1 e 2

OST1[Z]=0 OST2[Z]=0 ; Punto di inversione 1: Arresto preciso fine

Punto di inversione 2: Arresto preciso fine

FA[Z]=150 FA[X]=0.5 ; Avanzamento per l'asse di pendolamento Z, �avanzamento per l'asse di incremento X

OSCTRL[Z]=(2+8+16,1) ; Disattivare il pendolamento nel punto di inversione 2; dopo lo spegnifiamma RWL raggiungere la posizione finale; dopo RWL raggiungere la relativa posizione di inversione

OSNC[Z]=3 ; Passate di spegnifiamma

OSE[Z]=70 ; Posizione finale = 70

ii2=2 ; Definizione del campo di inversione

WAITP(Z) ; Abilitazione al pendolamento per l'asse Z

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 741

2. Azione sincrona al movimento Codice di programma Commento

WHENEVER $AA_IM[Z]<$SA_OSCILL_REVERSE_POS2[Z]DO -> -> $AA_OVR[X]=0 $AC_MARKER[0]=0

; Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è inferiore all'inizio dell'area di inversione 2, imposta l'override assiale dell'asse di incremento X su 0% e il merker con indice 0 sul valore 0.

WHENEVER $AA_IM[Z]>=$SA_OSCILL_REVERSE_POS2[Z] DO $AA_OVR[Z]=0

; Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è maggiore uguale alla posizione di inversione 2, imposta l'override assiale dell'asse di pendolamento Z su 0%.

WHENEVER $AA_DTEPW[X] == 0 DO $AC_MARKER[0]=1

; Ogni volta che il percorso residuo è uguale all'incremento parziale, imposta il merker con indice 0 sul valore 1.

WHENEVER $AC_MARKER[0]==1 DO $AA_OVR[X]=0 $AA_OVR[Z]=100

; Ogni volta che il merker è uguale all'indice 0, imposta l'override assiale dell'asse di incremento X su 0%, per impedire un incremento prematuro (l'asse di pendolamento Z non è ancora uscito dall'area di inversione 2, tuttavia l'asse di incremento X è pronto per un nuovo incremento), e imposta l'override assiale dell'asse di pendolamento Z su 100% (per annullare la 2a azione sincrona).

-> Deve essere programmato in un blocco a sè stante 3. Avvio del pendolamento Codice di programma Commento

OSCILL[Z]=(X) POSP[X]=(5,1,1) ; Avvio degli assi

�All'asse di pendolamento Z viene abbinato l'asse X quale asse di incremento.

L'asse X deve spostarsi fino alla posizione finale 5 in passi di 1.

M30 ; Fine programma

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro 742 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione 1. Definizione dei parametri del pendolamento

Prima del blocco di movimento contenente l'abbinamento tra asse di pendolamento ed asse di incremento, devono essere definiti i parametri di pendolamento (vedi "Pendolamento asincrono").

2. Definizione delle azioni sincrone al movimento Tramite le condizioni del sincronismo avviene: Annullo dell’incremento, finché l’asse di pendolamento non si trova all’interno di un settore di inversione (ii1, ii2) oppure in un punto di inversione (U1, U2). Arresto del movimento di pendolamento durante l'incremento sul punto di inversione. movimento di pendolamento al termine dell'incremento parziale. Definizione dell’ avvio dell'incremento parziale successivo.

3. Abbinare l'asse di pendolamento e di incremento e definire l'incremento totale e parziale.

Definizione dei parametri di pendolamento Abbinamento dell'asse di pendolamento e dell'asse di incremento: OSCILL OSCILL[Asse di pendolamento] = (Asse di incremento1, Asse di incremento2, Asse di incremento3) Con l'istruzione OSCILL avviene l'abbinamento degli assi e lo start del pendolamento. Ad un asse di pendolamento possono essere abbinati al massimo 3 assi di incremento.

Nota Prima dello start di un pendolamento è necessario definire le condizioni di sincronismo per la relazione tra gli assi.

Definizione degli incrementi: POSP POSP[Asse di incremento] = (Endpos, Lunghezza parziale, Modo) Con l'istruzione POSP viene comunicato al controllo numerico: ● l'incremento totale (tramite la posizione finale) ● la grandezza dei singoli incrementi parziali sui punti di inversione o nei campi di

inversione ● il comportamento dell'incremento parziale al raggiungimento della posizione finale

(tramite il modo) Modo = 0 Per i due ultimi incrementi parziali avviene una suddivisione del percorso

residuo in due incrementi residui di pari grandezza (preimpostazione). Modo = 1 Tutti gli incrementi parziali sono della stessa grandezza. Essi vengono calcolati

dall'incremento totale.

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 743

Definizione delle azioni sincrone al movimento Le azioni sincrone riportate in seguito, vengono utilizzate in generale per il pendolamento. Le soluzioni riportate a titolo di esempio possono essere utilizzate come base per la programmazione di movimenti di pendolamento specifici per l'utente.

Nota Nei singoli casi specifici le condizioni sincrone possono essere programmate anche in altro modo.

Parole chiave WHEN … DO … se..., allora... WHENEVER … DO ogni volta che..., allora...

Funzioni Con gli elementi di linguaggio, descritti dettagliatamente in seguito, è possibile realizzare le seguenti funzioni: 1. incremento sul punto di inversione. 2. incremento nel campo di inversione. 3. incremento in entrambi i punti di inversione. 4. arresto del pendolamento sul punto di inversione. 5. riavviare il movimento di pendolamento. 6. non avviare anzitempo l'incremento parziale. Per tutte le azioni sincrone qui rappresentate come esempio, valgono le seguenti ipotesi: ● punto d'inversione 1 < punto d'inversione 2 ● Z = asse di pendolamento ● X = asse di incremento

Nota Per ulteriori chiarimenti, vedere il capitolo Azioni sincrone al movimento.

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro 744 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Abbinare l'asse di pendolamento e di incremento e definire l'incremento totale e parziale Incremento nel campo di inversione Il movimento di incremento deve iniziare nell'ambito di un campo di inversione prima che sia stato raggiunto il punto di inversione. Queste azioni sincrone impediscono il movimento di incremento fino a che l'asse di pendolamento non è entrato nel settore di inversione. Considerato quanto sopra si hanno le seguenti istruzioni: Campo di inversione 1: WHENEVER $AA_IM[Z]>$SA_OSCILL_RESERVE_POS1[Z]+ii1 DO $AA_OVR[X] = 0

Ogni volta che la posizione attuale dell'asse di pendolamento nel SCM è maggiore dell'area di inversione 1, imposta l'override assiale dell'asse di incremento su 0%.

Campo di inversione 2: WHENEVER $AA_IM[Z]<$SA_OSCILL_RESERVE_POS2[Z]+ii2 DO $AA_OVR[X] = 0

Ogni volta che la posizione attuale dell'asse di pendolamento nel SCM è inferiore all'inizio dell'area di inversione 2, imposta l'override assiale dell'asse di incremento su 0%.

Incremento sul punto di inversione Finché l'asse di pendolamento non raggiunge il punto di inversione, non avviene nessun movimento dell'asse di incremento. Tenendo conto dei presupposti dati (ved. sopra) si ottengono le seguenti istruzioni: Area di inversione 1: WHENEVER $AA_IM[Z]<>$SA_OSCILL_RESERVE_POS1[Z] DO $AA_OVR[X] = 0 → → $AA_OVR[Z] = 100

Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è maggiore o minore della posizione del punto di inversione 1, imposta l'override assiale dell'asse di incremento X su 0% e l'override assiale dell'asse di pendolamento Z su 100%.

Area di inversione 2: Per il punto di inversione 2: WHENEVER $AA_IM[Z]<>$SA_OSCILL_RESERVE_POS2[Z] DO $AA_OVR[X] = 0 → → $AA_OVR[Z] = 100

Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è maggiore o minore della posizione del punto di inversione 2, imposta l'override assiale dell'asse di incremento X su 0% e l'override assiale dell'asse di pendolamento Z su 100%.

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 745

Arresto del pendolamento sul punto di inversione. L'asse di pendolamento viene arrestato sul punto di inversione e contemporaneamente inizia il movimento di incremento. Il movimento di pendolamento prosegue quando l'incremento è stato eseguito completamente. Questa azione sincrona può essere utilizzata anche per avviare il movimento di incremento nel caso, in precedenza, esso sia stato interrotto da un'azione sincrona ancora attiva. Tenendo conto dei presupposti dati (ved. sopra) si ottengono le seguenti istruzioni: Area di inversione 1: WHENEVER $SA_IM[Z]==$SA_OSCILL_RESERVE_POS1[Z] DO $AA_OVR[X] = 0 → → $AA_OVR[Z] = 100

Ogni volta che la posizione attuale dell'asse di pendolamento nel SCM è uguale alla posizione di inversione 1, imposta l'override assiale dell'asse di pendolamento su 0% e l'override assiale dell'asse di incremento su 100%.

Area di inversione 2: WHENEVER $SA_IM[Z]==$SA_OSCILL_RESERVE_POS2[Z] DO $AA_OVR[X] = 0 → → $AA_OVR[Z] = 100

Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è uguale alla posizione di inversione 2, imposta l'override assiale dell'asse di pendolamento X su 0% e l'override assiale dell'asse di incremento su 100%.

Valutazione Online del punto di inversione Se nella parte destra del confronto è presente una variabile dell'elaborazione principale contraddistinta con $$, entrambe le variabili vengono interpretate e confrontate reciprocamente in modo continuo nell'ambito del clock IPO.

Nota Per ulteriori informazioni consultare il capitolo "Azioni sincrone al movimento".

Pendolamento 11.2 Pendolamento controllato da azioni sincrone (OSCILL)

Preparazione del lavoro 746 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Riavviare il movimento di pendolamento Questa azione sincrona viene utilizzata per proseguire il movimento dell'asse di pendolamento una volta ultimato il movimento dell'incremento parziale. Tenendo conto dei presupposti dati (ved. sopra) si ottengono le seguenti istruzioni: WHENEVER $AA_DTEPW[X]==0 DO $AA_OVR[Z]= 100

Ogni volta che il percorso residuo per l'incremento parziale dell'asse di incremento X nel SCP è uguale a zero, imposta l'override assiale dell'asse di pendolamento su 100%.

Successivo incremento parziale Ad incremento avvenuto bisogna impedire una partenza anticipata del successivo incremento parziale. A questo scopo viene utilizzato un merker specifico per canale ($AC_MARKER[indice]) che viene settato al termine dell'incremento parziale (percorso residuo parziale ≡ 0) e resettato all'abbandono del campo di inversione. Quindi, con l'azione sincrona, viene impedito il successivo movimento di incremento. Supposto quanto sopra, prendendo come esempio il punto di inversione 1, si hanno le seguenti istruzioni: 1. Impostazione label (marker): WHENEVER $AA_DTEPW[X] == 0 DO $AC_MARKER[1]=1

Ogni volta che il percorso residuo per l'incremento parziale dell'asse di incremento X nel SCP è uguale a zero, imposta il merker con indice 1 su 1.

2. Cancellazione label (marker) WHENEVER $AA_IM[Z]<> $SA_OSCILL_RESERVE_POS1[Z] DO $AC_MARKER[1] = 0

Ogni volta che la posizione attuale dell'asse di pendolamento Z nel SCM è maggiore o minore della posizione del punto di inversione 1, imposta il merker 1 su 0.

3. Impedire l'incremento WHENEVER $AC_MARKER[1]==1 DO $AA_OVR[X]=0

Ogni volta che il merker è uguale a 1, imposta l'override assiale dell'asse di incremento X su 0%.

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 747

Punzonatura e roditura 1212.1 12.1 Attivazione, disattivazione

12.1.1 Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC)

Funzione Attivazione/disattivazione della punzonatura o roditura La funzione di punzonatura o roditura viene attivata con PON e SON. SPOF termina tutte le funzioni di punzonatura e roditura. I comandi con validità modale PON e SON si escludono reciprocamente, ossia PON disattiva SON e viceversa. Punzonatura/roditura con premilastra Le funzioni SONS e PONS attivano a loro volta le funzioni di punzonatura e roditura. A differenza del comando del colpo, attiva con SON/PON a livello di interpolazione, con queste funzioni il controllo tecnico dei segnali dell'esecuzione del colpo avviene al livello del servoazionamento. Di conseguenza è possibile lavorare con più elevate frequenze dei colpi e quindi con prestazioni di punzonatura superiori. Durante l'interpretazione dei segnali vengono bloccate tutte quelle funzioni che possono portare ad una variazione della posizione degli assi di roditura o di punzonatura (ad es. movimenti con il volantino, variazioni di frame da PLC, funzioni di misura). Punzonatura con ritardo PDELAYON provoca un'emissione ritardata del colpo di punzonatura. Il comando con validità modale ha funzione preparatoria e si trova quindi normalmente a monte di PON. Dopo PDELAYOF, solitamente si prosegue con la punzonatura.

Nota Il tempo di ritardo viene impostato nel dato setting SD42400 $SC_PUNCH_DWELLTIME.

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro 748 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Accelerazione in funzione del percorso Con PUNCHACC è possibile specificare una caratteristica di accelerazione che, in base alla distanza tra i fori, definisce diverse accelerazioni. Seconda interfaccia di punzonatura Le macchine che alternativamente devono utilizzare una seconda interfaccia di punzonatura (seconda unità di punzonatura o un mezzo simile) possono venire commutate su una seconda coppia degli I/O digitali veloci del controllore (coppia di I/O). Per entrambe le interfacce di punzonatura è utilizzabile la completa funzionalità di punzonatura e roditura. La commutazione tra la prima e la seconda interfaccia di punzonatura avviene tramite i comandi SPIF1 e SPIF2.

Nota Presupposto: tramite i dati macchina va definita una seconda coppia I/O per la funzionalità di punzonatura (→ vedere le indicazioni del costruttore della macchina).

Sintassi PON G... X... Y... Z... SON G... X... Y... Z... SONS G... X... Y... Z... PONS G... X... Y... Z... PDELAYON PDELAYOF PUNCHACC(<Smin>,<Amin>,<Smax>,<Amax>) SPIF1/SPIF2 SPOF

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 749

Significato PON Attivazione della punzonatura SON Attivazione della roditura PONS Attivazione della punzonatura con premilastra SONS Attivazione della roditura con premilastra SPOF Disattivazione della punzonatura/roditura PDELAYON Attivazione della punzonatura con ritardo PDELAYOF Disattivazione della punzonatura con ritardo

Attivazione dell'accelerazione in funzione del percorso Parametri: <Smin> Min.distanza fori <Amin> Accelerazione iniziale

<Amin> può essere maggiore di <Amax>. <Smax> Max.distanza fori

PUNCHACC

<Amax> Accelerazione finale <Amax> può essere maggiore di <Amin>.

SPIF1 Attivazione della prima interfaccia di punzonatura Il comando del colpo avviene tramite la prima coppia degli I/O veloci.

SPIF2 Attivazione della seconda interfaccia di punzonatura Il comando del colpo avviene tramite la seconda coppia degli I/O veloci.

Nota: Dopo RESET o l'avviamento del controllo è sempre attiva la prima interfaccia di punzonatura. Se si utilizza solo un'interfaccia di punzonatura, la stessa non deve essere programmata.

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro 750 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempi Esempio 1: Attivazione della roditura Codice di programma Commento

...

N70 X50 SPOF ; Posizionamento senza esecuzione del colpo.

N80 X100 SON ; Attivazione della roditura, esecuzione di un colpo prima del movimento (X=50) e alla fine del movimento programmato (X=100).

...

Esempio 2: Punzonatura con ritardo Codice di programma Commento

...

N170 PDELAYON X100 SPOF ; Posizionamento senza esecuzione del colpo, attivazione dell'esecuzione del colpo ritardata.

N180 X800 PON ; Attivazione della punzonatura. Dopo il raggiungimento della posizione finale, il colpo di punzonatura viene emesso in modo ritardato.

N190 PDELAYOF X700 ; Disattivazione della punzonatura con ritardo, esecuzione normale del colpo alla fine del movimento programmato.

...

Esempio 3: Punzonatura con due interfacce di punzonatura Codice di programma Commento

...

N170 SPIF1 X100 PON ; Alla fine del blocco avviene un'esecuzione del colpo sulla prima uscita veloce. Il segnale "colpo attivo" viene monitorato sul primo ingresso.

N180 X800 SPIF2 ; La seconda esecuzione del colpo avviene sulla seconda uscita veloce. Il segnale "colpo attivo" viene monitorato sul secondo ingresso.

N190 SPIF1 X700 ; Il comando del colpo per tutti gli altri colpi avviene con la prima interfaccia.

...

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 751

Ulteriori informazioni Punzonatura e roditura con premilastra (PONS/SONS) La punzonatura e la roditura con premilastra non sono possibili in più canali contemporaneamente. PONS o SONS può essere attivato in un canale alla volta. Accelerazione in funzione del percorso (PUNCHACC) Esempio: PUNCHACC(2,50,10,100)

Distanze tra i fori inferiori a 2mm: Il movimento avviene con un'accelerazione pari al 50% dell'accelerazione max. Distanze tra i fori da 2mm a 10mm: L'accelerazione aumenta in modo proporzionale alle distanze fino al 100%. Distanze tra i fori superiori a 10mm: Movimento con accelerazione pari al 100%. Esecuzione del primo colpo L'esecuzione del primo colpo dopo l'attivazione della funzione avviene, per roditura e punzonatura, in tempi diversi: ● PON/PONS:

– Tutti i colpi – anche quello del primo blocco dopo l'attivazione – avvengono alla fine del blocco.

● SON/SONS: – Il primo colpo dopo l'attivazione della roditura avviene già all'inizio del blocco. – Tutti i colpi successivi vengono eseguiti a fine blocco.

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro 752 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Punzonatura e roditura sul posto L'esecuzione del colpo avviene esclusivamente se nel blocco è presente un'istruzione di movimento degli assi di punzonatura o roditura (assi del piano attivo). Per eseguire comunque un colpo nello stesso punto, viene programmato un asse di punzonatura/roditura con spostamento 0. Lavorazione con utensili orientabili

Nota Per impiegare utensili orientabili tangenzialmente alla traiettoria, si deve utilizzare il controllo tangenziale.

Punzonatura e roditura 12.1 Attivazione, disattivazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 753

Utilizzo delle istruzioni M Con l'ausilio della tecnica di macro è sempre possibile utilizzare funzioni M speciali in luogo delle istruzioni (compatibilità). Rispetto ai sistemi precedenti valgono le seguenti equivalenze: M20, M23 ≙ SPOF M22 ≙ SON M25 ≙ PON M26 ≙ PDELAYON

Esempio di file macro: Codice di programma Commento

DEFINE M25 AS PON ; Punzonatura On

DEFINE M125 AS PONS ; Punzonatura con premilastra On

DEFINE M22 AS SON ; Roditura On

DEFINE M122 AS SONS ; Roditura con premilastra On

DEFINE M26 AS PDELAYON ; Punzonatura con ritardo On

DEFINE M20 AS SPOF ; Punzonatura, roditura Off

DEFINE M23 AS SPOF ; Punzonatura, roditura Off

Esempio di programma: Codice di programma Commento

...

N100 X100 M20 ; Posizionamento senza esecuzione del colpo.

N110 X120 M22 ; Attivazione della roditura, prima e dopo movimento esecuzione del colpo.

N120 X150 Y150 M25 ; Attivazione punzonatura, esecuzione del colpo alla fine del movimento.

...

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro 754 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

12.2 12.2 Preparazione automatica del percorso

Funzioni Suddivisione in tratti di percorso Con punzonatura o roditura attive, sia SPP sia SPN provocano una suddivisione del percorso complessivo programmato per gli assi di contornitura in una quantità di tratti di percorso di uguale lunghezza (suddivisione equidistante del percorso). Internamente, ciascun tratto di percorso corrisponde a un blocco. Numero di colpi Durante la punzonatura, il primo colpo ha luogo sul punto finale del primo tratto di percorso, mentre durante la roditura sul punto iniziale del primo tratto di percorso. Attraverso il percorso complessivo si ottengono quindi le seguenti cifre: Punzonatura: Numero di colpi = numero di tratti di percorso Roditura: Numero di colpi = numero di tratti di percorso + 1 Funzioni ausiliarie Le funzioni ausiliarie vengono eseguite nel primo dei blocchi creati.

Sintassi SPP= SPN=

Significato SPP Lunghezza del tratto di percorso (intervallo massimo tra i colpi);

validità modale SPN Numero dei tratti di percorso per blocco; validità blocco a blocco

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 755

Esempio 1 I tratti di roditura programmati devono essere suddivisi automaticamente in tratti di percorso di uguale grandezza.

Codice di programma Commento

N100 G90 X130 Y75 F60 SPOF ; Posizionamento sul punto iniziale 1

N110 G91 Y125 SPP=4 SON ; Roditura On; lunghezza massima del tratto di percorso per suddivisione automatica del percorso: 4 mm

N120 G90 Y250 SPOF ; Roditura Off; posizionamento sul punto iniziale 2

N130 X365 SON ; Roditura On; lunghezza massima del tratto di percorso per suddivisione automatica del percorso: 4 mm

N140 X525 SPOF ; Roditura Off; posizionamento sul punto iniziale 3

N150 X210 Y75 SPP=3 SON ; Roditura On; lunghezza massima del tratto di percorso per suddivisione automatica del percorso: 3 mm

N160 X525 SPOF ; Roditura Off; posizionamento sul punto iniziale 4

N170 G02 X-62.5 Y62.5 I J62.5 SPP=3 SON ; Roditura On; lunghezza massima del tratto di percorso per suddivisione automatica del percorso: 3 mm

N180 G00 G90 Y300 SPOF ; Roditura Off

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro 756 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2 Per le singole serie di fori deve essere effettuata una suddivisione automatica del percorso. Per la suddivisione viene indicata sempre la lunghezza massima del tratto di percorso (valore SPP).

Codice di programma Commento

N100 G90 X75 Y75 F60 PON ; Posizionamento sul punto iniziale 1; punzonatura di foro singolo On

N110 G91 Y125 SPP=25 ; Lunghezza massima del tratto di percorso per la suddivisione automatica del percorso: 25 mm

N120 G90 X150 SPOF ; Punzonatura Off; posizionamento sul punto iniziale 2

N130 X375 SPP=45 PON ; Punzonatura On; lunghezza massima del tratto di percorso per suddivisione automatica del percorso: 45 mm

N140 X275 Y160 SPOF ; Punzonatura Off; posizionamento sul punto iniziale 3

N150 X150 Y75 SPP=40 PON ; Punzonatura On; al posto della lunghezza programmata del tratto di percorso di 40 mm viene utilizzata la lunghezza calcolata per il tratto di percorso di 37,79 mm.

N160 G00 Y300 SPOF ; Punzonatura Off; posizionamento

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 757

12.2.1 Suddivisione del percorso per assi di contornitura

Lunghezza del tratto di percorso SPP Con SPP si imposta la distanza massima tra i colpi e quindi la lunghezza massima dei tratti di percorso nei quali deve essere suddiviso il tratto totale. La disattivazione del comando avviene con SPOF oppure SPP=0. Esempio: N10 SON X0 Y0 N20 SPP=2 X10 Il tratto totale di 10 mm viene suddiviso in 5 tratti di percorso, ognuno da 2 mm (SPP=2.

Nota La suddivisione del percorso con SPP avviene sempre in modo equidistante: tutti i tratti di percorso hanno la stessa lunghezza. Ne consegue che la lunghezza del tratto di percorso (valore di SPP), è valida solamente se il quoziente derivante dal tratto totale e da SPP è un numero intero. Se questo non si verifica, la lunghezza del tratto di percorso viene ridotta internamente per far sì che il quoziente risulti intero.

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro 758 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio: N10 G1 G91 SON X10 Y10 N20 SPP=3.5 X15 Y15 Con un tratto totale di 15 mm e una lunghezza dei tratti di percorso di 3,5 mm, si ricava un quoziente non intero (4.28). Di conseguenza, il valore di SPP verrà ridotto fino ad ottenere un quoziente intero. In questo caso risulta una lunghezza dei tratti di percorso di 3 mm.

Numero dei tratti di percorso SPN Con SPN si definisce il numero dei tratti di percorso che devono essere ricavati dal tratto totale. La lunghezza dei tratti di percorso viene calcolata automaticamente. Poichè SPN ha un azione blocco a blocco, deve prima essere attivata la punzonatura o la roditura con PON oppure SON.

SPP e SPN nello stesso blocco Programmando nello stesso blocco la lunghezza dei tratti di percorso (SPP) ed il numero dei tratti di percorso (SPN), nel blocco in questione ha validità SPN, nei blocchi successivi SPP. Se SPP è già stato programmato prima di SPN, dopo il blocco con SPN esso diventa nuovamente attivo.

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 759

Nota Se nel controllo sono presenti le tecnologie di punzonatura/roditura, la programmazione della suddivisione automatica del percorso è attivabile con SPN o SPP anche indipendentemente da queste tecnologie.

12.2.2 Suddivisione del percorso per singoli assi Se oltre ad assi di contornitura, vengono definiti come assi di punzonatura/roditura anche assi singoli, questi ultimi possono sottostare alla suddivisione automatica del percorso.

Comportamento degli assi singoli con SPP La lunghezza programmata dei tratti di percorso (SPP) si riferisce sempre agli assi di contornitura. Perciò il valore SPP è ignorato in un blocco nel quale, oltre al movimento del singolo asse e al valore SPP, non è programmato alcun asse di contornitura. Se in un blocco vengono programmati assi singoli e di contornitura, il comportamento dell'asse singolo dipende dall'impostazione del relativo dato macchina. 1. Impostazione standard

Il percorso dell'asse singolo viene suddiviso in modo uniforme tra i blocchi intermedi generati tramite SPP.

Esempio: N10 G1 SON X10 A0 N20 SPP=3 X25 A100 Conseguentemente ai tratti di percorso di 3 mm e considerando il tratto totale dell'asse X (asse di contornitura) di 15 mm, vengono generati 5 blocchi. L'asse A di conseguenza ruota di 20° in ogni blocco.

Punzonatura e roditura 12.2 Preparazione automatica del percorso

Preparazione del lavoro 760 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

1. Asse singolo senza suddivisione del percorso

L'asse singolo compie il suo percorso totale nel primo dei blocchi generati. 2. Suddivisione del percorso diversa

Il comportamento dell'asse singolo dipende dalla interpolazione degli assi di contornitura: ● Interpolazione circolare: suddivisione del percorso ● Interpolazione lineare: nessuna suddivisione

Comportamento con SPN Il numero dei tratti di percorso programmati ha validità anche se non viene programmato contemporaneamente un asse di contornitura. Premessa: l'asse singolo è stato definito come asse di punzonatura/roditura.

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 761

Rettifiche 1313.1 13.1 Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF)

Funzione Con il comando TMON è possibile attivare per gli utensili di rettifica (tipo 400 - 499) la sorveglianza della geometria e dei giri nel partprogram NC. La sorveglianza resta attiva fino a che non viene disattivata nel partprogram attraverso il comando TMOF.

Nota Osservare le indicazioni del costruttore della macchina!

Premessa I parametri utensile per rettifica da $TC_TPG1 a $TC_TPG9 devono essere impostati.

Sintassi TMON(<N. T>) TMOF(<N. T>)

Significato TMON Comando per l'attivazione della sorveglianza utensili per rettifica TMOF Comando per la disattivazione della sorveglianza utensili per rettifica <N. T> Indicazione del numero T

Nota: Necessario solo se l'utensile con questo numero T non è attivo.

TMOF(0) disattivare la sorveglianza per tutti gli utensili

Rettifiche 13.1 Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF)

Preparazione del lavoro 762 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Parametri utensile per rettifica Parametro Significato Tipo di dati $TC_TPG1 Numero del mandrino INT $TC_TPG2 Norma di concatenamento

I parametri vengono mantenuti automaticamente identici per il lato sinistro e destro della mola.

INT

$TC_TPG3 Raggio minimo della mola REAL $TC_TPG4 Larghezza minima della mola REAL $TC_TPG5 Larghezza attuale della mola REAL $TC_TPG6 Numero di giri massimo REAL $TC_TPG7 Velocità periferica massima REAL $TC_TPG8 Angolo della mola obliqua REAL $TC_TPG9 Numero dei parametri per il calcolo del raggio INT

Bibliografia: Manuale di guida alle funzioni, Funzioni di base; Correzione utensile (W1) Attivazione della sorveglianza utensili tramite la selezione utensile A seconda del dato macchina è possibile attivare la sorveglianza utensile per gli utensili di rettifica (tipo 400...499) implicitamente con la scelta dell'utensile. Per lo stesso mandrino può essere attiva una sola sorveglianza alla volta. Sorveglianza della geometria Vengono sorvegliati il raggio e larghezza attuali della mola. La sorveglianza del riferimento di velocità, rispetto al valore limite dei giri, avviene ciclicamente in base all'override mandrino. Il valore limite dei giri è il valore più basso risultante dal confronto tra il numero di giri max. e il numero di giri calcolati sulla base della VPM max. e del raggio mola attuale.

Rettifiche 13.1 Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 763

Lavorazione senza l'impiego di numeri T e D Per il dato macchina possono essere impostati un numero T standard e un numero D standard che non devono essere più programmati e che diventano efficaci dopo Power On/Reset. Esempio: Lavorazione con la stessa mola. Tramite il dato macchina è possibile impostare che l'utensile attivo venga mantenuto anche dopo il reset (vedere " Assegnazione libera dei numeri D, numero di taglienti (Pagina 497) ").

Rettifiche 13.1 Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF)

Preparazione del lavoro 764 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 765

Ulteriori funzioni 1414.1 14.1 Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS,

AXSTRING, MODAXVAL)

Funzioni AXNAME viene utilizzato ad esempio nella stesura di cicli generici quando il nome degli assi non è noto. AX viene utilizzato per la programmazione indiretta di assi geometrici e assi sincroni. L'identificatore asse viene dunque memorizzato in una variabile del tipo AXIS o viene restituito da un comando come AXNAME o SPI. SPI viene utilizzato quando si programmano funzioni di assi per un mandrino, ad es. un mandrino sincrono. AXTOSPI viene utilizzato per convertire un identificatore asse in un indice mandrino (funzione di inversione inSPI). AXSTRING viene utilizzato per convertire un identificatore asse (tipo di dati AXIS) in una stringa (funzione di inversione in AXNAME). ISAXIS viene utilizzato in cicli a validità generale per garantire che un determinato asse geometrico sia presente e che quindi un successivo richiamo con $P_AXNX non venga interrotto con un messaggio di errore. MODAXVAL viene utilizzato per rilevare la posizione modulo con gli assi rotanti modulo.

Sintassi AXNAME("String") AX[AXNAME("String")] SPI(n)

AXTOSPI(A) o AXTOSPI(B) o AXTOSPI(C) AXSTRING( SPI(n) ) ISAXIS(<Numero asse geometrico>) <Posizione modulo>=MODAXVAL(<Asse>,<Posizione asse>)

Ulteriori funzioni 14.1 Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL)

Preparazione del lavoro 766 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Significato AXNAME Converte una stringa in ingresso in indicatore dell'asse; la stringa in

ingresso deve contenere un nome valido di asse. AX Indicatore assi variabile SPI Converte il numero del mandrino in identificatore assi; il parametro di

trasmissione deve contenere un numero di mandrino valido. n Numero del mandrino AXTOSPI Trasforma un identificatore asse in un indice di mandrino del tipo

Integer. AXTOSPI corrisponde alla funzione di conversione in SPI. X, Y, Z Identificatore asse del tipo AXIS come variabile o costante AXSTRING Viene emessa la stringa con il numero di mandrino assegnato. ISAXIS Verifica se l'asse geometrico indicato esiste. MODAXVAL Rileva la posizione modulo con gli assi rotanti modulo; questa

corrisponde al resto del modulo riferito alla sezione modulo parametrizzata (nell'impostazione standard va da 0 a 360 gradi; tramite MD30340 MODULO_RANGE_START e MD30330 $MA_MODULO_RANGE è possibile modificare l'inizio e le dimensioni della sezione modulo).

Nota Estensioni SPI La funzione asse SPI(n) è utilizzabile anche per leggere e scrivere componenti di frame. In questo modo si possono ad es. scrivere dei frame con la sintassi $P_PFRAME[SPI(1),TR]=2.22. Con l'ulteriore programmazione della posizione asse tramite l'indirizzo AX[SPI(1)] = <posizione asse> è possibile comandare un asse. Il presupposto necessario è che il mandrino si trovi nel funzionamento di posizionamento o nel funzionamento assi.

Ulteriori funzioni 14.1 Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 767

Esempi Esempio 1: AXNAME, AX, ISAXIS Codice di programma Commento

OVRA[AXNAME("Asse radiale")]=10 ; Override per l'asse radiale

AX[AXNAME("Asse radiale")]=50.2 ; Posizione finale per l'asse radiale

OVRA[SPI(1)]=70 ; Override per il mandrino 1

AX[SPI(1)]=180 ; Posizione finale per il mandrino 1

IF ISAXIS(1)==FALSE GOTOF CONTINUA ; L'ascissa è presente?

AX[$P_AXN1]=100 ; Spostamento ascissa

CONTINUA:

Esempio 2: AXSTRING Nella programmazione di AXSTRING[SPI(n)] l'indice asse al quale è assegnato il mandrino non viene più emesso come numero del mandrino, ma come String "Sn". Codice di programma Commento

AXSTRING[SPI(2)] ; Viene emessa la stringa "S2".

Esempio 3: MODAXVAL La posizione modulo dell'asse rotante modulo A deve essere rilevata. Il valore di uscita per il calcolo corrisponde alla posizione asse 372.55. La sezione modulo parametrizzata va da 0 a 360 gradi: MD30340 MODULO_RANGE_START = 0 MD30330 $MA_MODULO_RANGE = 360 Codice di programma Commento

R10=MODAXVAL(A,372.55) ; Posizione modulo calcolata R10 = 12.55.

Esempio 4: MODAXVAL Se l'identificatore asse programmato non si riferisce a un asse rotante modulo, il valore da commutare (<posizione asse>) viene restituito non modificato. Codice di programma Commento

R11=MODAXVAL(X,372.55) ; X è l'asse lineare; R11 = 372.55.

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro 768 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.2 14.2 Assi geometrici commutabili (GEOAX)

Funzioni Con la funzione "Assi geometrici commutabili", il raggruppamento di assi geometrici configurato tramite dati macchina può essere modificato dal partprogram. Un asse canale definito come asse supplementare sincrono può sostituire qualsiasi asse geometrico.

Sintassi GEOAX(<n>,<asse canale>,<n>,<asse canale>,<n>,<asse canale>) GEOAX()

Significato GEOAX(...) Comando per la commutazione degli assi geometrici

Nota: GEOAX()senza immissione del parametro richiama la configurazione di base degli assi geometrici. Con questo parametro viene indicato il numero dell'asse geometrico cui deve essere assegnato l'asse canale di seguito indicato. Campo dei valori: 1, 2 oppure 3

<n>

Nota: Con <n>=0 è possibile rimuovere senza sostituire l'asse canale indicato di seguito dal raggruppamento di assi geometrici.

<asse canale> Con questo parametro viene indicato il nome dell'asse canale che deve essere inserito nel raggruppamento di assi geometrici.

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 769

Esempi Esempio 1: Attivazione di due assi in sostituzione dell'asse geometrico Una slitta portautensile può essere spostata attraverso gli assi canale X1, Y1, Z1, Z2:

Gli assi geometrici sono progettati in modo tale che dopo l'attivazione Z1 è momentaneamente attivato come terzo asse geometrico nei nomi degli assi geometrici "Z" e crea insieme a X1 e Y1 il raggruppamento di assi geometrici. Nel partprogram devono essere impiegati solo gli assi Z1 e Z2 come sostituzione dell'asse geometrico Z. Codice di programma Commento

...

N100 GEOAX(3,Z2) ; L'asse canale Z2 assume la funzione di terzo asse geometrico (Z).

N110 G1 ...

N120 GEOAX(3,Z1) ; L'asse canale Z1 assume la funzione di terzo asse geometrico.

...

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro 770 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2: Commutazione degli assi geometrici con 6 assi canale Un macchina possiede 6 assi canale con i nomi XX, YY, ZZ, U, V, W. L'impostazione di base della configurazione asse geometrico tramite dati macchina è: asse canale XX = 1° asse geometrico (asse X) asse canale YY = 2° asse geometrico (asse Y) asse canale ZZ = 3° asse geometrico (asse Z) Codice di programma Commento

N10 GEOAX() ; La configurazione di base degli assi geometrici è attiva.

N20 G0 X0 Y0 Z0 U0 V0 W0 ; Tutti gli assi in rapido su posizione 0.

N30 GEOAX(1,U,2,V,3,W) ; L'asse canale U diventa il primo (X), V il secondo (Y) e W il terzo asse geometrico (Z).

N40 GEOAX(1,XX,3,ZZ) ; L'asse canale XX diventa il primo (X), ZZ il terzo asse geometrico (Z). L'asse canale V resta il secondo asse geometrico (Y).

N50 G17 G2 X20 I10 F1000 ; Cerchio completo nel piano X/Y. Gli assi canale XX e V si spostano.

N60 GEOAX(2,W) ; L'asse canale W diventa il secondo asse geometrico (Y).

N80 G17 G2 X20 I10 F1000 ; Cerchio completo nel piano X/Y. Si muovono gli assi canale XX e W

N90 GEOAX() ; Ripristino della posizione di riposo.

N100 GEOAX(1,U,2,V,3,W) ; L'asse canale U diventa il primo (X), V il secondo (Y) e W il terzo asse geometrico (Z).

N110 G1 X10 Y10 Z10 XX=25 ; Gli assi canale U, V, W si spostano ogni volta nella posizione 10. XX come asse supplementare si sposta nella posizione 25.

N120 GEOAX(0,V) ; V viene escluso dal raggruppamento assi geometrici. U e W sono ancora primo (X) e terzo asse geometrico (Z). Il secondo asse geometrico (Y) resta non assegnato.

N130 GEOAX(1,U,2,V,3,W) ; L'asse canale U continua ad essere primo (X), V diventa secondo (Y), W continua ad essere il terzo asse geometrico (Z).

N140 GEOAX(3,V) ; V diventa il secondo asse geometrico (Z), mentre W viene sovrascritto e quindi escluso dal raggruppamento di assi geometrici. Il secondo asse geometrico (Y) continua ad essere non assegnato come in precedenza.

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 771

Nota Configurazione dell'asse L'abbinamento fra gli assi geometrici, gli assi supplementari, gli assi canale e gli assi macchina, così come la definizione dei nomi dei singoli tipi di asse viene effettuata tramite i seguenti dati macchina: MD20050 $MC_AXCONF_GEOAX_ASIGN_TAB (abbinamento dell'asse geometrico all'asse canale) MD20060 $MC_AXCONF_GEOAX_NAME_TAB (nome asse geometrico nel canale) MD20070 $MC_AXCONF_MACHAX_USED (numero asse macchina valido nel canale) MD20080 $MC_AXCONF_CHANAX_NAME_TAB (nome asse canale nel canale) MD10000 $MN_AXCONF_MACHAX_NAME_TAB (nome asse macchina) MD35000 $MA_SPIND_ASSIGN_TO_MACHAX (abbinamento del mandrino all'asse macchina) Bibliografia: Manuale di guida alle funzioni, Funzioni di base; Assi, sistemi di coordinate frame (K2)

Restrizioni ● La commutazione degli assi geometrici non è possibile con:

– Trasformazione attiva – Interpolazione spline attiva – Correzione raggio utensile attiva – Correzione fine utensile attiva

● Se l’asse geometrico e l’asse canale fanno riferimento allo stesso nome, non è possibile la commutazione del rispettivo asse geometrico.

● Nessuno degli assi coinvolti nella commutazione deve essere coinvolto in un'azione che può continuare oltre i limiti di blocco, come è ad esempio possibile con gli assi di posizionamento del tipo A o con gli assi slave.

● Con l'istruzione GEOAX gli assi geometrici possono essere sostituiti solo al momento dell'attivazione (quindi non ne possono essere definiti di nuovi).

● Uno scambio assi con GEOAX durante la preparazione della tabelle dei profili (CONTPRON, CONTDCON) provoca un allarme.

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro 772 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Condizioni generali Stato dell'asse dopo la sostituzione Un asse sostituito attraverso la commutazione nel raggruppamento assi geometrici è programmabile come asse supplementare dopo il processo di commutazione tramite il proprio nome asse canale. Frame, settori di protezione, limitazioni del campo di lavoro Con la commutazione degli assi geometrici tutti i frame, i settori di protezione e le limitazioni del campo di lavoro vengono cancellati. Coordinate polari Una sostituzione degli assi geometrici con GEOAX imposta analogamente a un cambio del piano con G17-G19 le coordinate polari modali sul valore 0. DRF, NPV Un'eventuale traslazione del volantino (DRF) o uno spostamento origine esterno (NPV) restano attivi dopo la commutazione. Configurazione di base degli assi geometrici L'istruzione GEOAX() richiama la configurazione di base del raggruppamento di assi geometrici. Dopo POWER ON e con la commutazione nel modo operativo "Spostamento del punto di riferimento" viene ripristinata automaticamente la configurazione di base. Correzione lunghezza utensile (CLU) Una correzione lunghezza utensile attiva è attiva anche dopo il processo di commutazione. Assume tuttavia per gli assi geometrici recentemente registrati o di cui è stata sostituita la posizione il valore di non ancora eseguita. Con il primo comando di movimento, per questi assi geometrici il tratto di percorso risultante consiste conformemente a ciò nella somma della correzione della lunghezza utensile e del tratto di percorso programmato. Gli assi geometrici che durante una commutazione mantengono la propria posizione nel raggruppamento asse conservano anche il proprio stato relativo alla correzione lunghezza utensile. Configurazione asse geometrico con trasformazione attiva La configurazione asse geometrico valida in una trasformazione attiva (stabilita tramite i dati macchina) non è modificabile attraverso la funzione "Assi geometrici commutabili". Se sussiste la necessità di modificare la configurazione asse geometrico in correlazione con le trasformazioni, ciò è possibile solo attraverso un'ulteriore trasformazione.

Ulteriori funzioni 14.2 Assi geometrici commutabili (GEOAX)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 773

Una configurazione asse geometrico modificata tramite GEOAX viene cancellata attraverso l'attivazione di una trasformazione. Se le impostazioni dei dati macchina per la trasformazione e per la commutazione degli assi geometrici si contraddicono hanno priorità le impostazioni nella trasformazione. Esempio: Una trasformazione dovrebbe essere attiva. In base ai dati macchina la trasformazione deve essere mantenuta con un RESET, e contemporaneamente con un RESET deve essere creata la configurazione di base degli assi geometrici. In questo caso viene mantenuta la configurazione asse geometrico che è stata impostata con la trasformazione.

Ulteriori funzioni 14.3 Container assi (AXCTSWE, AXCTSWED)

Preparazione del lavoro 774 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.3 14.3 Container assi (AXCTSWE, AXCTSWED)

Funzione Nelle macchine a tavola rotante/macchine multimandrino gli assi portapezzo si spostano da una unità di lavorazione all'altra. Poiché le unità di lavoro dipendono da differenti canali NCU, al cambio di una stazione/posizione gli assi portapezzo devono essere dinamicamente riassociati al corrispondente canale NCU. I container assi servono a questo scopo. In un determinato istante nell'unità di lavorazione locale è sempre attivo un solo asse di bloccaggio del pezzo/un mandrino. Il container assi raggruppa le possibilità di connessione con tutti i mandrini/assi di bloccaggio dei quali, per l'unità di lavorazione, ne è sempre attiva solo una. Il cambio degli assi utilizzabili definiti tramite un container assi avviene attraverso la traslazione delle voci nel container assi ("rotazione del container assi") su un gradino percentuale impostabile tramite dato di setting (numero di slot). Il richiamo della rotazione container dal partprogram avviene con il comando AXCTSWE o AXCTSWED.

Sintassi AXCTSWE(<Container assi>) AXCTSWED(<Container assi>)

Significato AXCTSWE Comando per la rotazione di un container assi

Se nel controllo si ricevono le abilitazioni di tutti i canali per gli assi del container, la rotazione del container avviene con il gradino percentuale specifico per il container registrato nel SD41700 $SN_AXCT_SWWIDTH[<Numero container>].

AXCTSWED Comando per la rotazione di un container assi con attivazione esclusiva del canale attivo (variante del comando per la messa in servizio). Nota: Gli assi immessi nel container vengono abilitati solo se gli altri canali che hanno gli assi nel container si trovano nello stato di reset.

Ulteriori funzioni 14.3 Container assi (AXCTSWE, AXCTSWED)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 775

Identificatore del container assi che deve essere ulteriormente attivato. I possibili dati sono i seguenti: CT<Numero container> Alla combinazione di lettere CT

viene aggiunto il numero del container assi. Esempio: CT3

<Container assi>

<Nome container> Nome individuale del container assi impostato con MD12750 $MN_AXCT_NAME_TAB. Esempio: A_CONT3

Ulteriori informazioni Container assi Attraverso il container assi è possibile assegnare: ● Assi locali e/o ● Assi link I container assi con assi di collegamento sono una risorsa operativa valida per ogni NCU (NCU globale), che viene coordinata dal controllo numerico. Sono possibili anche i container assi in cui vengono gestiti esclusivamente gli assi locali. Bibliografia: Per indicazioni dettagliate per la progettazione dei container assi vedere: Manuale di guida alle funzioni Funzioni di ampliamento; Più pannelli operatore su più NCU, Sistemi decentrati (B3) Criteri di abilitazione AXCTSWE( ) Ogni canale i cui assi sono inseriti nel container specificato consente l'abilitazione di una rotazione container (enable) quando ha terminato la lavorazione della posizione/stazione. Se nel controllo si ricevono le abilitazioni di tutti i canali per gli assi del container, la rotazione del container avviene con il gradino percentuale specifico per il container registrato nel SD41700 $SN_AXCT_SWWIDTH[<Numero container>].

Ulteriori funzioni 14.3 Container assi (AXCTSWE, AXCTSWED)

Preparazione del lavoro 776 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio:

Dopo la rotazione del container assi intorno a 1, l'asse canale Z è assegnato invece dell'asse AX1 a NCU1 e l'asse AX5 a NCU1. AXCTSWED( ) La variante del comando AXCTSWED() può essere impostata per semplificare la messa in servizio. Il container assi ruota con attivazione esclusiva del canale attivo intorno al gradino percentuale specifico per il container registrato nel SD41700 $SN_AXCT_SWWIDTH[<Numero container>]. Il richiamo deve essere utilizzato solo se gli altri canali che contengono assi nel container si trovano nello stato di reset.

Ulteriori funzioni 14.3 Container assi (AXCTSWE, AXCTSWED)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 777

Efficacia Dalla nuova assegnazione assi successiva a una rotazione del container assi sono coinvolte tutte le NCU i cui canali si riferiscono attraverso l'immagine logica della macchina al container assi ruotato. Rotazione container assi con GET/GETD impliciti Per l'abilitazione di una rotazione container assi vengono assegnati al canale tutti gli assi del container assi assegnati al canale tramite GET o GETD. L'indicazione degli assi è di nuovo consentita solo dopo la rotazione del container assi.

Nota Questo comportamento può essere impostato tramite dati macchina. Fare attenzione alle indicazioni del costruttore della macchina

Nota La rotazione del container assi con GET/GETD implicito non può essere impiegata per un asse che si trova nello stato elaborazione principale asse, ad es. per un asse PLC, in quanto questo asse dovrebbe uscire da questo stato per la rotazione del container assi.

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro 778 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.4 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Funzioni Il set di istruzioni del linguaggio NC generato con un SINUMERIK 840D sl, comprese le definizioni attive di GUD/macro, come anche i programmi ciclici installati ed attivi possono essere verificati con il comando STRINGIS per quanto riguarda la loro disponibilità effettiva e le loro proprietà specifiche di programma. In questo modo è ad es. possibile controllare già all'inizio di un'interpretazione di programma l'efficacia di funzioni non attivate. I valori di ritorno vengono emessi in modo indicizzato tramite la superficie operativa HMI e contengono informazioni di base nonché informazioni di dettaglio indicizzate.

Sintassi STRINGIS(STRING name) = valore di ritorno indicizzato Nella configurazione attuale lo (STRING name) da controllare viene fondamentalmente trattato come segue: con 000 viene identificato come sconosciuto, con 100 viene riconosciuto come comando NC, che tuttavia non è programmabile. Tutti i comandi NC, attivi come funzione od opzione, vengono rilevati con 2xx. Le relative informazioni di dettaglio sono contenute nei campi dei valori.

Significato Come e con quali comandi NC debba avvenire il movimento viene stabilito dal costruttore della macchina tramite un dato macchina. Se vengono programmati comandi NC la cui funzione non è attiva o è sconosciuta nell'ambito attuale, viene generato un messaggio di allarme. Prestare particolare attenzione in questo caso alle indicazioni del costruttore della macchina.

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 779

STRINGIS Controlla il set di istruzioni di linguaggio NC disponibile e in particolare i nomi dei cicli NC, i nomi delle variabili, le macro e i nomi delle etichette appartenenti a questo comando: se questi esistono, sono validi, definiti o attivi. Il comando di linguaggio NC STRINGIS è una variabile del tipo Integer.

Speciale per STRINGIS Nomi di ciclo NC (di un ciclo attivo) Variabili GUD Variabili LUD Macro Nomi di label

STRING name Identificatore della variabile del set di istruzioni di linguaggio NC da verificare e parametri di trasferimento di valori rilevati del tipo STRING.

Il comando NC ISVAR rappresenta un sottoinsieme del comando STRINGIS e può continuare ad essere utilizzato per determinate verifiche. Set di istruzioni di linguaggio NC Per SINUMERIK powerline continuano ad essere validi tutti i comandi NC disponibili ed anche particolarmente quelli non richiesti e attivi. Il set di istruzioni da verificare per SINUMERIK solution line dipende dal dato macchina preconfigurato e comprende tutte le opzioni conosciute oppure specificamente solo le opzioni abilitate o le funzioni attive nel set di istruzioni NC attuale.

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro 780 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Set di istruzioni di linguaggio NC Al set di istruzioni di linguaggio NC appartengono:

Codici G di tutti i gruppi di codice G esistenti, come ad es. G0, G1, G2, INVCW, POLY, ROT, KONT, SOFT, CUT2D, CDON, RMB, SPATH Indirizzi DIN o NC come ad es. ADIS, RNDM, SPN, SR, MEAS Funzioni di linguaggio NC come ad es. i sottoprogrammi predefiniti TANG(FAsse1..n, LAsse1..n, fattore di accoppiamento). Procedure di linguaggio NC (procedure predefinite con valore di ritorno), come ad es. il richiamo di sottoprogrammi con trasferimento dei parametri GETMDACT. Procedure di linguaggio NC (procedure predefinite senza valore di ritorno), come ad es. la disattivazione dell'inibizione blocco singolo SBLOF. Parole chiave NC come ad es. ACN, ACP, AP, RP, DEFINE, SETMS Dati macchina $MN generali, $MA assiali, $MC specifici del canale nonchè tutti i dati di setting $S... e i dati opzionali $O.... Variabili di sistema NC $ nel partprogram e nelle azioni sincrone come pure parametri di calcolo NCR.

Valori di ritorno Informazioni di base STRINGIS

Il valore di ritorno è indicizzato. La ripartizione avviene così: in y le informazioni di base contenute, in x le informazione dettagliate presenti.

Indicizzazione: Risultato della verifica se nella configurazione attuale: 000 STRING name non è noto all'NCK. 100 STRING name è un comando NC ma non è programmabile,

cioè questa funzione è inattiva. 2xx STRING name è un comando NC programmabile, cioè questa

funzione è attiva. y00 Non è possibile un'assegnazione. y01 ... y11 I campi dei valori per le informazioni di dettaglio presenti sono

conosciuti. 400 Per gli indirizzi NC che non presentano xx=01 o xx=10 e non

sono codici G o parametri di calcolo R, vedere la nota (1).

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 781

Nota Se la verifica con STRINGISnon evidenzia un'altra indicizzazione, il comando NC è considerato programmabile e vale l'indicizzazione 2xx.

Campi di valore 2xx delle informazioni dettagliate Informazioni dettagliate Significato del risultato della verifica: 200 Non è possibile alcuna interpretazione 201 È definito un indirizzo DIN o NC, cioè se dal nome sono stati

riconosciuti gli identificatori indirizzo; vedere nota (1) 202 Sono stati riconosciuti i codici G dai gruppi esistenti di codice G.203 Sono presenti le funzioni di linguaggio NC con valore di ritorno

e trasferimento dei parametri. 204 Sono presenti le procedure di linguaggio NC senza valore di

ritorno e con trasferimento dei parametri. 205 Sono presenti le parole chiave NC. 206 Sono presenti dati macchina generali, assiali o specifici di

canale ($M...), dati setting ($S...) o dati opzionali ($O...). 207 Sono presenti variabili utente come ad es. le variabili di sistema

NC che iniziano con $... o parametri di calcolo che iniziano con R.

208 Sono stati caricati i nomi di ciclo nell'NCK e anche i programmi ciclici sono attivati; vedere nota (2).

209 È stato riconosciuto dalle variabili utente globali (variabili GUD) il nome definito ed è stata trovata la variabile GUD attivata.

210 Sono stati trovati i nomi delle macro con i nomi definiti nei file di definizione delle macro e le macro attivate; vedere nota (3).

211 Di variabili utente locali (variabili LUD), il cui nome è contenuto in un programma attuale.

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro 782 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Note sui singoli valori di ritorno (1) Come indirizzi DIN vengono riconosciuti gli indirizzi a standard fisso. Per gli indirizzi NC con identificatori impostabili valgono le seguenti definizioni relative agli assi di geometria: A, B, C per gli assi rotanti specificati, E è riservato per le estensioni, I, J, K, Q, U, V, W, X, Y, Z per gli assi lineari specificati. Gli identificatori asse possono essere programmati con ampliamento dell'indirizzo e scritti per la verifica, ad es. 201 = STRINGIS("A1"). I seguenti indirizzi non possono essere scritti con ampliamento dell'indirizzo per la verifica e forniscono sempre il valore fisso 400. Esempio: 400 = STRINGIS("D") o l'indicazione di un ampliamento dell'indirizzo con 0 = STRINGIS("M02") determina 400 = STRINGIS("M"). (2) Non è possibile verificare con il comando STRINGIS i nomi dei parametri del ciclo. (3) Gli identificatori indirizzo NC definiti come macro G, H, L, M vengono identificati come macro.

Indirizzi NC validi senza ampliamento dell'indirizzo con il valore fisso 400 Sono validi gli indirizzi NC D, F, G, H, R e L, M, N, O, P, S, T. Significato: 400 D come correzione utensile, numero tagliente (funzione D)

F come avanzamento (funzione F)

G è definito come codice G (qui non è la condizione di percorso)

H indica funzione ausiliaria (funzione H)

R è definito come parametro di sistema

L indica chiamata a un sottoprogramma, M funzione aggiuntiva, N blocco secondario, O è libero per estensioni, P indica il numero delle esecuzioni del programma, S numero di giri del mandrino (funzione S), T numero utensile (funzione T).

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 783

Esempio di funzione ausiliaria T programmabile Programmazione Commento

T è definito come funzione ausiliaria e sempre programmabile

400 = STRINGIS("T") ;

0 = STRINGIS("T3") ;

Valore di ritorno senza ampliamento dell'indirizzo

; Valore di ritorno con ampliamento dell'indirizzo

Esempi di altre verifiche del set di istruzioni di linguaggio NC programmabile 2xx Programmazione Commento

X è definito come asse ; L'asse è un asse lineare X

201 = STRINGIS("X") ; Valore di ritorno asse lineare X

201 = STRINGIS("X1") Valore di ritorno asse lineare X1

A2 è un indirizzo NC con estensione Indirizzo NC A2 con estensione

201 = STRINGIS("A") Valore di ritorno per indirizzo NC A

201 = STRINGIS("A2") con indirizzo NC esteso A2

INVCW è un codice G definito INVCW è codice G interpolazione degli evolventi in senso orario.

202 = STRINGIS("INVCW") Valore di ritorno del codice G nominato

GETMDACT è una funzione di linguaggio NC la funzione di linguaggio NC GETMDACT è presente.

203 = STRINGIS("GETMDACT") GETMDACT è una funzione di linguaggio NC

DEFINE è una parola chiave NC esiste la parola chiave DEFINE per l'identificazione delle macro.

205 = STRINGIS("DEFINE") DEFINE è presente come parola chiave

$MC_GCODES_RESET_VALUES è un dato macchina specifico del canale

il dato macchina $MC_GCODE_RESET_VALUES esiste.

206 = STRINGIS("$MC_GCODE_RESET_VALUES") $MC_GCODE_RESET_VALUES è stato riconosciuto come dato macchina

$TC_DP3 è una variabile di sistema per un componente di lunghezza utensile

esiste la variabile di sistema NC $TC_DP3 per componente di lunghezza utensile.

Ulteriori funzioni 14.4 Verifica del set di istruzioni del linguaggio NC presente (STRINGIS)

Preparazione del lavoro 784 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programmazione Commento

207 = STRINGIS("$TC_DP3") $TC_DP3 riconosciuto come variabile di sistema.

$TC_TP4 è una variabile di sistema per una dimensione utensile

esiste la variabile di sistema $TC_TP4 per la dimensione utensile.

207 = STRINGIS("$TC_TP4") $TC_TP4 riconosciuto come variabile di sistema.

$TC_MPP4 è una variabile di sistema per lo stato del posto magazzino

verifica della gestione magazzino

207 = STRINGIS("$TC_MPP4") la gestione magazzino è attiva

0 = STRINGIS("$TC_MPP4") la gestione magazzino non è disponibile (4)

MACHINERY_NAME è definito come variabile GUD la variabile utente globale è definita come MACHINERY_NAME.

209 = STRINGIS("MACHINERY_NAME") MACHINERY_NAME trovato come GUD

LONGMACRO è definito come macro il nome della macro è LONGMACRO

210 = STRINGIS("LONGMACRO") macro identificata come LONGMACRO

MYVAR è definito come variabile LUD la variabile utente locale è stata denominata MYVAR

211 = STRINGIS("MYVAR") la variabile LUD è contenuta come nome MYVAR nel programma attuale

X, Y, Z è un comando sconosciuto a NC X,Y,Z è un comando di linguaggio sconosciuto e non è GUD/macro/nome di ciclo

0 = STRINGIS("XYZ") STRING name X, Y, Z è sconosciuto

(4) La proprietà vale specialmente per i parametri di sistema della gestione magazzino se la funzione non è attiva; in questo caso, STRINGIS fornisce sempre, indipendentemente dal valore impostato del dato macchina per la configurazione del set di istruzioni del linguaggio NC, il valore del risultato = 0.

Ulteriori funzioni 14.5 Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 785

14.5 14.5 Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array

Funzioni L'istruzione ISVAR è una funzione nell'ambito del linguaggio NC con un: ● Valore della funzione del tipo BOOL ● Parametro di trasferimento del tipo STRING L'istruzione ISVAR restituisce TRUE quando il parametro di trasferimento contiene una variabile nota all'NC (dato macchina, dato setting, variabile di sistema, variabili generiche ad esempio GUD).

Sintassi ISVAR(<identificatore di variabile>) ISVAR(<identificatore>,[<valore>,<valore>])

Significato <identificatore di variabile> Il parametro di trasferimento del tipo String può essere

senza dimensioni, a una dimensione o a due dimensioni. <identificatore> Identificativo con una delle variabili note all'NC con o

senza indice di array come dato macchina, dato setting, variabile di sistema o variabile generica. Ampliamento: per i dati macchina generici e specifici per canale, il primo elemento dell'array viene letto anche se manca l'indice

<valore> Valore della funzione del tipo BOOL

Verifiche In relazione al parametro di trasferimento vengono eseguite queste verifiche: ● è presente l’identificatore ● si tratta di un campo mono o bidimensionale ● è consentito un indice Array

Ulteriori funzioni 14.5 Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array

Preparazione del lavoro 786 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

La funzione verrà confermata con TRUE solo se tutti questi controlli hanno avuto esito positivo. Nel caso in cui una sola condizione non venga soddisfatta oppure ci sia un errore di sintassi, la funzione verrà confermata con FALSE. Le variabili assiali vengono accettate come indici per i nomi degli assi ma non è prevista un'ulteriore verifica. Ampliamento: lettura dell'array dei dati macchina e dati setting senza indice. Se manca l'indice dei dati macchina generici e specifici per canale l'allarme 12400 "Canale % 1 Blocco % 2 Campo % 3 Elemento non esistente" non viene più emesso. Inoltre per i dati macchina specifici per canale deve essere programmato almeno l'indice dell'asse. In caso contrario viene emesso l'allarme 12400.

Esempio: Richiamo della funzione ISVAR Codice di programma Commento

DEF INT VAR1

DEF BOOL IS_VAR=FALSE ; Il parametro di trasferimento è una variabile generale

N10 IS_VAR=ISVAR("VAR1") ; IS_VAR sarà in questo caso TRUE

DEF REAL VARARRAY[10,10]

DEF BOOL IS_VAR=FALSE ; Diverse varianti di sintassi

N20 IS_VAR=ISVAR("VARARRAY[,]") ; IS_VAR è TRUE con un array bidimensionale

N30 IS_VAR=ISVAR("VARARRAY") ; IS_VAR è TRUE, esiste la variabile

N40 IS_VAR=ISVAR("VARARRAY[8,11]") ; IS_VAR è FALSE, l'indice array non è consentito

N50 IS_VAR=ISVAR("VARARRAY[8,8") ; IS_VAR è FALSE, errore di sintassi per "]" mancante

N60 IS_VAR=ISVAR("VARARRAY[,8]") ; IS_VAR è TRUE, l'indice array è consentito

N70 IS_VAR=ISVAR("VARARRAY[8,]") ; IS_VAR è TRUE

DEF BOOL IS_VAR=FALSE ; Il parametro di trasferimento è un dato macchina

N100 IS_VAR=ISVAR("$MC_GCODE_RESET_VALUES[1]" ; IS_VAR è TRUE

DEF BOOL IS_VAR=FALSE ; Il parametro di trasferimento è una variabile di sistema

N10 IS_VAR=ISVAR("$P_EP") ; IS_VAR sarà in questo caso TRUE

N10 IS_VAR=ISVAR("$P_EP[X]") ; IS_VAR sarà in questo caso TRUE

Ulteriori funzioni 14.5 Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 787

Esempio: Lettura dei dati macchina array con e senza indice Il primo elemento viene letto con R1=$MC_EXTERN_GCODE_RESET_VALUES questo corrisponde al precedente R1=$MC_EXTERN_GCODE_RESET_VALUES[0] oppure viene letto il primo elemento R1=$MA_POSTCTRL_GAIN[X1] questo corrisponde al precedente R1=$MA_POSTCTRL_GAIN[0, X1] Nelle azioni sincrone il primo elemento viene anche letto con WHEN TRUE DO $R1 = $MC_EXTERN_GCODE_RESET_VALUES questo corrisponde al precedente WHEN TRUE DO $R1 = $MC_EXTERN_GCODE_RESET_VALUES[0] e finora con l'allarme 12400 non veniva letto. L'allarme 12400 viene comunque emesso con R1=$MA_POSTCTRL_GAIN

Ulteriori funzioni 14.6 Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF)

Preparazione del lavoro 788 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.6 14.6 Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF)

Funzione La compensazione dell'errore del quadrante (QFK)) riduce gli errori sul profilo derivanti da non linearità meccaniche quando si inverte il movimento (ad es. attrito, giochi,) o torsione. I dati di compensazione ottimali possono essere adattati dal controllo numerico nella fase di apprendimento grazie ad una rete neuronale per determinare automaticamente la curva di compensazione. L'apprendimento può avvenire contemporaneamente in max. 4 assi.

Sintassi QECLRNON QECLRNOF Attivazione processo di apprendimento: QECLRNON Il vero e proprio processo di apprendimento viene attivato nel programma NC con il comando QECLRNON attraverso indicazione degli assi: QECLRNON (X1, Y1, Z1, Q) Solo se il comando è attivo vengono modificate le linee guida. Disattivazione apprendimento: QECLRNOF Una volta conclusi i movimenti di apprendimento degli assi desiderati, il processo di apprendimento viene disattivato con QECLRNOF per tutti gli assi contemporaneamente.

Ulteriori funzioni 14.6 Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 789

Significato QECLRNON (Asse 1,…4) Attivazione della funzione "Apprendimento della

compensazione dell'errore sul quadrante" QECLRNO Disattivazione della funzione "Apprendimento della

compensazione dell'errore sul quadrante" QECLRN.SPF Ciclo di apprendimento QECDAT.MPF Programma NC modello per l'assegnazione delle variabili di

sistema e per la parametrizzazione del ciclo di apprendimentoQECTEST.MPF Programma NC modello per test forma del cerchio

Descrizione I movimenti degli assi necessari per l'apprendimento vengono generati con l'ausilio di un programma NC. In esso sono disponibili i movimenti di apprendimento in forma di un ciclo di apprendimento. Primo apprendimento Per il primo apprendimento in fase di messa in servizio sono contenuti nel dischetto del programma base PLC esempi di programmi NC per l'apprendimento dei movimenti e per la definizione delle variabili di sistema per la QFK: Apprendimento successivo Una ottimizzazione successiva di una curva già esistente è possibile con "Apprendimenti successivi". Vengono utilizzati i dati già esistenti nella memoria utente. Per gli apprendimenti successivi vengono adattati i programmi NC di esempio alle proprie esigenze. I parametri del ciclo di apprendimento (ad esempio QECLRN.SPF) se necessario, vanno modificati per gli "Apprendimenti successivi": ● settare "Modo apprendimento" = 1 ● ridurre eventualmente il "Numero dei cicli di apprendimento" ● disattivare eventualmente "Apprendimento per stadi" e definire i relativi limiti del settore.

Ulteriori funzioni 14.7 Richiamo interattivo della finestra dal partprogram (MMC)

Preparazione del lavoro 790 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.7 14.7 Richiamo interattivo della finestra dal partprogram (MMC)

Funzioni Con il comando MMC si possono visualizzare dal partprogram sull'interfaccia HMI delle finestre di dialogo interattive definite dall'utente (maschere interattive). La struttura delle finestre di dialogo si definisce con una progettazione esclusivamente testuale (file COM nella directory cicli), il software di sistema HMI resta invariato. Le finestre interattive definite dall'utente non si possono richiamare contemporaneamente in canali diversi.

Sintassi MMC(CYCLES,PICTURE_ON,T_SK.COM,BILD,MGUD.DEF,BILD_3.AWB,TEST_1,A1","S")

Significato MMC Dal partprogram richiamare in modo interattivo la maschera di

dialogo sull'HMI. CYCLES Settore operativo nel quale vengono eseguiti i dialoghi utente

progettati. PICTURE_ON o PICTURE_OFF

Istruzione: selezione/deselezione maschera

T_SK.COM File Com: Nome del file per le maschere interattive (cicli utente). Nel file si definisce la struttura delle maschere. Nella maschera di dialogo si possono visualizzare variabili utente e/o testi di commento.

MASCHERA Nome della maschera di dialogo: le singole maschere vengono selezionate attraverso il relativo nome.

MGUD.DEF File di definizione dei dati utente, al quale si accede per la lettura/scrittura di variabili.

MASCHERA_3.AWB File di grafica TEST_1 Tempo di visualizzazione o variabile di conferma A1 Variabili di testo...", "S" Modo di conferma: sincrono, conferma con il softkey "OK"

Bibliografia Per indicazioni dettagliate sulla programmazione del comando MMC (incl. esempi di programmazione) vedere il Manuale per la messa in servizio.

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 791

14.8 14.8 Tempo di esecuzione del programma/contapezzi

14.8.1 Tempo di esecuzione del programma/contapezzi (panoramica) A supporto dell'operatore della macchina utensile vengono fornite informazioni relative al tempo di esecuzione del programma e al numero dei pezzi. Queste informazioni possono essere elaborate come variabili di sistema nel programma NC e/o PLC. Contemporaneamente queste informazioni sono disponibili per la visualizzazione sulla superficie operativa.

14.8.2 Tempo di esecuzione del programma

Funzione La funzione "Tempo di esecuzione del programma" consente di disporre di un timer NC interno per il controllo dei processi tecnologici che possono essere letti tramite variabili di sistema specifiche di NC e del canale nel partprogram e nelle azioni sincrone. Il trigger per la misura runtime ($AC_PROG_NET_TIME_TRIGGER) è l'unica variabile di sistema scrivibile della funzione e serve per la misura selettiva di sezioni di programma. Ciò significa che attraverso la descrizione del trigger nel programma NC può essere attivata e nuovamente disattivata la misurazione temporale.

Variabile di sistema Significato Attività Specifica di NC $AN_SETUP_TIME Tempo a partire dall'ultimo avviamento del controllo

con valori predefiniti ("avviamento a freddo") in minuti Viene reimpostato automaticamente su "0" a ciascun avviamento del controllo con valori predefiniti.

$AN_POWERON_TIME Valore di tempo a partire dall'ultimo avviamento normale del PLC ("avvio a caldo") in minuti Viene reimpostato automaticamente su "0" a ciascun avviamento normale del controllore.

sempre attiva

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro 792 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Variabile di sistema Significato Attività Specifica del canale $AC_OPERATING_TIME Tempo di esecuzione totale in secondi dei programmi

NC nel modo operativo Automatico Il valore viene reimpostato automaticamente su "0" a ciascun avviamento del controllore.

$AC_CYCLE_TIME Tempo di elaborazione in secondi del programma NC selezionato Il valore viene reimpostato automaticamente su "0" all'avvio di un nuovo programma NC. Tramite MD27860 è possibile impostare che questa eliminazione avvenga anche nel caso di un salto all'inizio del programma con GOTOS o all'avvio di ASUP e PROG_EVENT.

$AC_CUTTING_TIME Tempo di lavorazione in secondi Si misura il tempo di esecuzione degli assi di interpolazione (almeno uno è attivo) senza rapido attivo in tutti i programmi NC tra NC-Start e fine programma/NC-Reset. La misura viene interrotta se è attivo il tempo di sosta. Il valore viene reimpostato automaticamente su "0" a ciascun avviamento del controllo con valori predefiniti.

• Attivazione tramite MD27860

• solo modo operativo AUTOMATICO

$AC_ACT_PROG_NET_TIME Tempo di elaborazione netto attuale in secondi del

programma NC corrente Viene reimpostato automaticamente su "0" all'avvio di un programma NC.

$AC_OLD_PROG_NET_TIME Tempo di esecuzione netto del programma terminato già corretto con M30 in secondi

$AC_OLD_PROG_NET_TIME_COUNT Variazioni in $AC_OLD_PROG_NET_TIME Dopo POWER ON $AC_OLD_PROG_NET_TIME_COUNT è impostato su "0". $AC_OLD_PROG_NET_TIME_COUNT viene successivamente sempre aumentato se il controllo ha nuovamente scritto $AC_OLD_PROG_NET_TIME.

• sempre attiva • solo modo

operativo AUTOMATICO

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 793

Variabile di sistema Significato Attività Trigger per la misurazione temporale: 0 Stato neutrale

Il trigger non è attivo. 1 Fine

Termina la misurazione e copia il valore da $AC_ACT_PROG_NET_TIME in $AC_OLD_PROG_NET_TIME. $AC_ACT_PROG_NET_TIME viene impostato su "0" e quindi continua a essere eseguito.

2 Avvio Avvia la misura e imposta $AC_ACT_PROG_NET_TIME su "0". $AC_OLD_PROG_NET_TIME non viene modificato.

3 Stop Interrompe la misura. Non modifica $AC_OLD_PROG_NET_TIME e mantiene $AC_ACT_PROG_NET_TIME costante fino alla prosecuzione.

$AC_PROG_NET_TIME_TRIGGER

4 Continua Prosecuzione della misura, vale a dire che una misura precedentemente interrotta viene nuovamente ripresa. $AC_ACT_PROG_NET_TIME continua ad essere eseguito. $AC_OLD_PROG_NET_TIME non viene modificato.

solo modo operativo AUTOMATICO

Attraverso POWER ON tutte le variabili di sistema vengono reimpostate su "0"!

Nota L'inserzione del timer attivabile e il comportamento delle misurazioni di tempo attive in determinate situazioni (ad es. con avanzamento ciclo di prova attivo, test del programma, …) avvengono tramite il dato macchina MD27860 $MC_PROCESSTIMER_MODE (→ costruttore della macchina!). Bibliografia: Manuale di guida alle funzioni Funzioni di base; BAG, canale, funzionamento del programma, comportamento di reset (K1), capitolo: Tempo di esecuzione del programma

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro 794 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Tempo residuo per un pezzo Sei si producono in successione dei pezzi uguali, è possibile rilevare dai valori del timer: • il tempo di lavorazione per l'ultimo pezzo prodotto (vedere $AC_OLD_PROG_NET_TIME)e • il tempo di lavorazione attuale (vedere $AC_ACT_PROG_NET_TIME) il tempo residuo per un pezzo. Il tempo residuo viene inoltre visualizzato per il tempo di lavorazione attuale sull'interfaccia utente.

ATTENZIONE Utilizzo di STOPRE Le variabili di sistema $AC_OLD_PROG_NET_TIME e $AC_OLD_PROG_NET_TIME_CTR non creano nessuno stop preelaborazione implicito. Durante l'utilizzo nel partprogram non è quindi problematico il fatto che il valore delle variabili di sistema provenga dalla precedente esecuzione del programma. Se tuttavia il trigger viene scritto molto frequentemente per la misurazione temporale ($AC_PROG_NET_TIME_TRIGGER) e $AC_OLD_PROG_NET_TIME varia di conseguenza con elevata frequenza, dovrebbe essere utilizzato nel partprogram un STOPRE esplicito.

Condizioni marginali ● Ricerca blocco

Con la ricerca blocco non vengono rilevati i tempi di esecuzione programma. ● REPOS

La durata di un'operazione REPOS viene ascritta al tempo di lavorazione attuale ($AC_ACT_PROG_NET_TIME).

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 795

Esempi Esempio 1: Misurazione della durata di "mySubProgrammA" Codice di programma

...

N50 DO $AC_PROG_NET_TIME_TRIGGER=2

N60 FOR ii= 0 TO 300

N70 mySubProgrammA

N80 DO $AC_PROG_NET_TIME_TRIGGER=1

N95 ENDFOR

N97 mySubProgrammB

N98 M30

Dopo che il programma ha elaborato la riga N80, il tempo netto di "mySubProgrammA" è impostato su $AC_OLD_PROG_NET_TIME. Il valore di $AC_OLD_PROG_NET_TIME: ● continua ad essere mantenuto al di là di M30. ● viene aggiornato dopo ciascuna operazione di rettifica. Esempio 2: Misurazione della durata di "mySubProgrammA" e "mySubProgrammC" Codice di programma

...

N10 DO $AC_PROG_NET_TIME_TRIGGER=2

N20 mySubProgrammA

N30 DO $AC_PROG_NET_TIME_TRIGGER=3

N40 mySubProgrammB

N50 DO $AC_PROG_NET_TIME_TRIGGER=4

N60 mySubProgrammC

N70 DO $AC_PROG_NET_TIME_TRIGGER=1

N80 mySubProgrammD

N90 M30

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro 796 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.8.3 Funzione di conteggio dei pezzi

Funzione La funzione "contapezzi" rende disponibili diversi contatori, utilizzabili particolarmente per il conteggio interno al controllo dei pezzi. I contatori esistono come variabili di sistema specifiche per canale con accesso in scrittura e lettura nel campo di valori da 0 a 999 999 999. Variabile di sistema Significato $AC_REQUIRED_PARTS Numero dei pezzi da produrre (contapezzi di riferimento)

In questo contatore si può definire il numero di pezzi al cui raggiungimento viene azzerato il numero attuale di pezzi ($AC_ACTUAL_PARTS).

$AC_TOTAL_PARTS Numero dei pezzi complessivamente prodotti (numero reale totale dei pezzi) Questo contatore registra il numero di tutti i pezzi prodotti dal momento di inizio. Il valore viene reimpostato automaticamente su "0" solo all'avviamento del controllo con valori predefiniti.

$AC_ACTUAL_PARTS Numero dei pezzi prodotti (numero reale dei pezzi) In questo contatore si registra il numero di tutti i pezzi prodotti dal momento di inizio. Al raggiungimento del numero di riferimento di pezzi ($AC_REQUIRED_PARTS) il contatore viene automaticamente azzerato (a condizione che $AC_REQUIRED_PARTS > 0).

$AC_SPECIAL_PARTS Numero dei pezzi contati dall'utente Questo contatore permette all'utente di eseguire un conteggio dei pezzi definito in base a criteri personali. Può essere definita un'emissione di allarme al raggiungimento del numero di riferimento di pezzi ($AC_REQUIRED_PARTS). L'azzeramento di questo contatore deve essere effettuato dall'utente stesso.

Nota Tutti i contapezzi vengono azzerati a ogni avvio del controllore con valori predefiniti e possono essere letti/scritti indipendentemente dalla loro attivazione.

Ulteriori funzioni 14.8 Tempo di esecuzione del programma/contapezzi

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 797

Nota Con i dati macchina specifici di canale si può influire sull'attivazione dei contatori, sull'istante di azzeramento e sull'algoritmo di conteggio.

Nota Contapezzi con funzione M definita dall'utente Tramite i dati macchina è possibile impostare che gli impulsi di conteggio per i diversi contapezzi vengano attivati, invece che dalla fine programma M2/M30, da funzioni M definite dall'utente.

Bibliografia Per ulteriori informazioni sulla funzione "contapezzi", consultare: ● Manuale di guida alle funzioni, Funzioni di base; BAG; canale, funzionamento del

programma, comportamento di reset (K1), capitolo: Contapezzi

Ulteriori funzioni 14.9 Allarme (SETAL)

Preparazione del lavoro 798 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

14.9 14.9 Allarme (SETAL)

Funzioni In un programma NC possono essere impostati gli allarmi. Tali allarmi vengono visualizzati sulla superficie operativa in un campo apposito. Ad un allarme è collegata una reazione del controllo numerico che varia in funzione della categoria dell'allarme stesso. Bibliografia: Per ulteriori informazioni sulle reazioni agli allarmi vedere il Manuale per la messa in servizio.

Sintassi SETAL(<numero di allarme>) SETAL(<numero di allarme>,<sequenza di caratteri>)

Significato SETAL Parola chiave per la programmazione di un allarme.

SETAL deve essere programmato in un proprio blocco NC. <numero di allarme> Variabile del tipo INT. Contiene il numero di allarme.

Il campo dei numeri di allarme utilizzabili è compreso tra 60000 e 69999. I numeri compresi tra 60000 e 64999 sono riservati ai cicli SIEMENS e i numeri tra 65000 e 69999 sono a disposizione dell'utente. Durante la programmazione degli allarmi dei cicli utente può essere indicata anche una sequenza di caratteri con un massimo di 4 parametri. In questi parametri possono essere definiti testi utente variabili. Sono tuttavia disponibili anche i seguenti parametri predefiniti: Parametro Significato %1 Numero del canale %2 Numero del blocco, label %3 Indice di testo per allarmi dei cicli

<sequenza di caratteri>

%4 Ulteriori parametri di allarme

Nota I testi degli allarmi devono essere progettati nella superficie operativa.

Ulteriori funzioni 14.9 Allarme (SETAL)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 799

Esempio Codice di programma Commento

...

N100 SETAL (65000) ; Impostazione dell'allarme n. 65000

...

Ulteriori funzioni 14.9 Allarme (SETAL)

Preparazione del lavoro 800 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 801

Programmi di sgrossatura personalizzati 1515.1 15.1 Funzioni di supporto per l'asportazione

Funzioni Per l'asportazione sono disponibili per l'operatore cicli di lavorazione finiti. Inoltre l'operatore ha la possibilità di creare propri programmi di asportazione con le funzioni successivamente riportate: ● Creazione della tabella dei profili (CONTPRON) ● Creazione della tabella dei profili codificata (CONTDCON) ● Disattivazione della preparazione del profilo (EXECUTE) ● Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC)

(solo per le tabelle che erano state create attraverso CONTPRON). ● Esecuzione blocco a blocco di elementi del profilo di una tabella (EXECTAB)

(solo per le tabelle che erano state create attraverso CONTPRON). ● Calcolo dei dati del cerchio (CALCDAT)

Nota In questo modo queste funzioni possono essere utilizzate non solo per l'asportazione ma anche universalmente.

Premesse Prima del richiamo delle funzioni CONTPRON e CONTDCON è necessario: ● raggiungere un punto iniziale che consente una lavorazione senza collisioni. ● disattivare la correzione raggio di taglio con G40.

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro 802 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

15.2 15.2 Creazione della tabella dei profili (CONTPRON)

Funzioni Con il comando CONTPRON viene attivata la preparazione del profilo. I blocchi NC di seguito richiamati non vengono lavorati ma suddivisi in singoli movimenti e memorizzati nella tabella dei profili. Ogni elemento del profilo corrisponde ad una riga nel campo bidimensionale della tabella del profilo. Il numero determinato delle passate sottosquadra viene restituito.

Sintassi Attivazione della preparazione del profilo: CONTPRON(<tabella dei profili>,<tipo di lavorazione>,<taglio in sottoquadro>, <direzione di lavorazione>)

Disattivazione della lavorazione del profilo e ritorno alla modalità di lavorazione normale: EXECUTE(<ERRORE>)

Vedere " Disattivazione preparazione del profilo (EXECUTE) "

Significato CONTPRON Comando per l'attivazione della lavorazione del

profilo per la creazione di una tabella dei profili <tabella dei profili> Nome della tabella dei profili

Parametri per il tipo di lavorazione Tipo: CHAR

"G" Tornitura cilindrica: Lavorazione interna

"L" Tornitura cilindrica: Lavorazione esterna

"N" Tornitura radiale: Lavorazione interna

<tipo di lavorazione>

Valore:

"P" Tornitura radiale: Lavorazione esterna

Variabile risultato per il numero di elementi taglio in sottoquadro emessi

<taglio in sottoquadro>

Tipo: INT

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 803

Parametri per la direzione di lavorazione Tipo: INT

0 Preparazione del profilo in avanti (valore standard)

<direzione di lavorazione>

Valore:

1 Lavorazione del profilo in entrambe le direzioni

Esempio 1 Creazione di una tabella dei profili con: ● Nome "KTAB" ● Massimo 30 elementi del profilo (cerchio, retta) ● Una variabile per il numero di elementi taglio in sottoquadro emessi ● Una variabile per messaggi di errore

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro 804 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programma NC: Codice di programma Commento

N10 DEF REAL KTAB[30,11] ; Tabella dei profili con nome KTAB e max 30 elementi del profilo, il valore del parametro 11 (numero di colonne della tabella) è una grandezza fissa.

N20 DEF INT NR_ELEM_OMBRA ; Variabile per il numero degli elementi taglio in sottoquadro con nome ANZHINT.

N30 DEF INT ERRORE ; Variabile per la risposta di errore (0=nessun errore, 1=errore).

N40 G18

N50 CONTPRON(KTAB,"G",ANZHINT) ; Attivazione della preparazione del profilo.

N60 G1 X150 Z20

N70 X110 Z30

N80 X50 RND=15

N90 Z70

N100 X40 Z85

N110 X30 Z90

N120 X0

; da N60 a N120: Descrizione del profilo

N130 EXECUTE(ERRORE) ; Fine della compilazione della tabella dei profili, commutazione sul funzionamento normale del programma.

N140 … ; Ulteriore elaborazione della tabella.

Tabella dei profili KTAB: Indice analitico Riga

Colonna

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 7 7 11 0 0 20 150 0 82.40535663 0 0 0 2 11 20 150 30 110 -1111 104.0362435 0 0 1 3 11 30 110 30 65 0 90 0 0 2 4 13 30 65 45 50 0 180 45 65 3 5 11 45 50 70 50 0 0 0 0 4 6 11 70 50 85 40 0 146.3099325 0 0 5 7 11 85 40 90 30 0 116.5650512 0 0 6 0 11 90 30 90 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 805

Significato dei contenuti delle colonne: (0) Puntatore all’elemento di profilo successivo (al numero di riga dello stesso) (1) puntatore all’elemento di profilo precedente

Codifica del modo del profilo per il movimento Valori possibili per X = abc a = 102 G90 = 0 G91 = 1 b = 101 G70 = 0 G71 = 1

(2)

c = 100 G0 = 0 G1 = 1 G2 = 2 G3 = 3 (3), (4) Punto iniziale degli elementi del profilo

(3) = ascisse, (4) = ordinate nel piano attuale (5), (6) Punto finale degli elementi del profilo

(5) = ascisse, (6) = ordinate nel piano attuale (7) Indicatore max./min. identifica la massima e la minima locale nel profilo (8) Valore massimo tra l’elemento del profilo e le ascisse (per lavorazione

longitudinale) oppure le ordinate (per lavorazione radiale). L’angolo dipende dal tipo di lavorazione programmato.

(9), (10) Coordinate del centro dell’elemento del profilo quando si tratta di un cerchio. (9) = ascisse, (10) = ordinate

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro 806 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Esempio 2 Creazione di una tabella dei profili con ● Nome KTAB ● Massimo 92 elementi del profilo (cerchio, retta) ● Modo operativo: Tornitura cilindrica, lavorazione esterna ● Lavorazione in avanti e indietro

Programma NC: Codice di programma Commento

N10 DEF REAL KTAB[92,11] ; Tabella dei profili con nome KTAB e con max. 92 elementi del profilo; il valore del parametro 11 è una grandezza fissa.

N20 DEF CHAR BT="L" ; Modo operativo per CONTPRON: Tornitura cilindrica, lavorazione esterna

N30 DEF INT HE=0 ; Numero di elementi taglio in sottoquadro=0

N40 DEF INT MODE=1 ; Lavorazione in avanti e indietro

N50 DEF INT ERR=0 ; Risposta di errore

...

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 807

Codice di programma Commento

N100 G18 X100 Z100 F1000

N105 CONTPRON(KTAB,BT,HE,MODE) ; Attivazione della preparazione del profilo.

N110 G1 G90 Z20 X20

N120 X45

N130 Z0

N140 G2 Z-15 X30 K=AC(-15) I=AC(45)

N150 G1 Z-30

N160 X80

N170 Z-40

N180 EXECUTE(ERR) ; Fine della compilazione della tabella dei profili, commutazione sul funzionamento normale del programma.

...

Tabella dei profili KTAB: Al termine della preparazione il profilo è a disposizione in entrambe le direzioni. Indice analitico

Colonna

Riga (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 0 61) 72) 11 100 100 20 20 0 45 0 0 1 03) 2 11 20 20 20 45 -3 90 0 0 2 1 3 11 20 45 0 45 0 0 0 0 3 2 4 12 0 45 -15 30 5 90 -15 45 4 3 5 11 -15 30 -30 30 0 0 0 0 5 4 7 11 -30 30 -30 45 -1111 90 0 0 6 7 04) 11 -30 80 -40 80 0 0 0 0 7 5 6 11 -30 45 -30 80 0 90 0 0 8 15) 26) 0 0 0 0 0 0 0 0 0 ... 83 84 07) 11 20 45 20 80 0 90 0 0 84 90 83 11 20 20 20 45 -1111 90 0 0 85 08) 86 11 -40 80 -30 80 0 0 0 0 86 85 87 11 -30 80 -30 30 88 90 0 0 87 86 88 11 -30 30 -15 30 0 0 0 0 88 87 89 13 -15 30 0 45 -90 90 -15 45 89 88 90 11 0 45 20 45 0 0 0 0 90 89 84 11 20 45 20 20 84 90 0 0 91 839) 8510) 11 20 20 100 100 0 45 0 0

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro 808 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Descrizione del contenuto delle colonne e note relative alle righe 0, 1, 6, 8, 83, 85 e 91 Valgono le descrizioni del contenuto delle colonne riportate nell'esempio 1. Sempre nella riga 0 della tabella: 1) Precedente: la riga n contiene la fine profilo in avanti 2) Successivo: la riga n è la fine della tabella del profilo in avanti Una volta all'interno degli elementi di profilo in avanti: 3) Precedente: inizio del profilo (in avanti) 4) Successivo: fine del profilo (in avanti) Sempre sulla riga di fine della tabella del profilo (in avanti) +1: 5) Precedente: numero dei sottosquadri in avanti 6) Successivo: numero dei sottosquadri all'indietro Una volta all'interno degli elementi di profilo all'indietro: 7) Successivo: fine del profilo (all'indietro) 8) Precedente: inizio del profilo (all'indietro) Sempre nell'ultima riga della tabella: 9) Precedente: la riga n è l'inizio della tabella del profilo (all'indietro) 10) Successivo: la riga n contiene l'inizio del profilo (all'indietro)

Programmi di sgrossatura personalizzati 15.2 Creazione della tabella dei profili (CONTPRON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 809

Ulteriori informazioni Comandi di movimento consentiti, sistema di coordinate Per la programmazione del profilo sono consentite le seguenti istruzioni G: ● Gruppo G 1: G0, G1, G2, G3 Inoltre sono possibili: ● Arrotondamento e smusso ● Programmazione circolare tramite CIP e CT Le funzioni di spline, polinomio e filetto conducono a errori. Le modifiche del sistema di coordinate attraverso l'attivazione di un frame non sono consentite fra CONTPRON e EXECUTE. La stessa cosa vale per un passaggio da G70 a G71 o da G700 a G710. Una sostituzione degli assi geometrici con GEOAX durante la preparazione della tabella dei profili provoca un allarme. Elementi taglio in sottoquadro La descrizione del profilo dei singoli elementi con taglio in ombra può avvenire in un sottoprogramma o con blocchi singoli. Sgrossatura indipendente dalla direzione del profilo programmata La preparazione del profilo con CONTPRON è stata ampliata in modo tale che dopo aver richiamato la tabella dei profili è disponibile indipendentemente dalla direzione programmata.

Programmi di sgrossatura personalizzati 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Preparazione del lavoro 810 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

15.3 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Funzioni Nella preparazione del profilo attivata con CONTDCON i blocchi NC di seguito richiamati vengono archiviati in modo codificato preferibilmente nella memoria in una tabella dei profili a 6 colonne. Ogni elemento del profilo corrisponde ad una riga della tabella. Conoscendo le regole di codifica indicate di seguito, è possibile, ad es, creare programmi in codice DIN per i cicli partendo dalle righe delle tabelle. Nella riga della tabella con il numero 0 vengono memorizzati i dati del punto di partenza.

Sintassi Attivazione della preparazione del profilo: CONTDCON(<tabella dei profili>,<direzione di lavorazione>)

Disattivazione della lavorazione del profilo e ritorno alla modalità di lavorazione normale: EXECUTE(<ERRORE>)

Vedere " Disattivazione preparazione del profilo (EXECUTE) "

Significato CONTDCON Comando per l'attivazione della lavorazione del

profilo per la creazione di una tabella dei profili codificata

<tabella dei profili> Nome della tabella dei profili Parametri per la direzione di lavorazione Tipo: INT

0 Preparazione del profilo in base alla sequenza dei blocchi di profilo (valore standard)

<direzione di lavorazione>

Valore:

1 non ammesso

Nota I codici G ammessi per CONTDCON nella parte di programma da inserire nella tabella sono più completi della funzione CONTPRON. Vengono inoltre memorizzati per ciascun pezzo del profilo avanzamenti e tipo di avanzamento.

Programmi di sgrossatura personalizzati 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 811

Esempio Creazione di una tabella dei profili con: ● Nome "KTAB" ● Elementi del profilo (cerchi, rette) ● Modo operativo: Rotazione ● Direzione di lavorazione: In avanti

Programma NC: Codice di programma Commento

N10 DEF REAL KTAB[9,6] ; Tabella dei profili con nome KTAB e 9 righe della tabella. Queste consentono 8 blocchi di profilo. Il valore del parametro 6 (numero di colonne nella tabella) è una grandezza fissa.

N20 DEF INT MODE = 0 ; Una variabile per la direzione di lavorazione. Valore standard 0: solo nella direzione programmata del profilo.

N30 DEF INT ERROR = 0 ; Una variabile per la risposta di errore.

...

Programmi di sgrossatura personalizzati 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Preparazione del lavoro 812 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Codice di programma Commento

N100 G18 G64 G90 G94 G710

N101 G1 Z100 X100 F1000

N105 CONTDCON (KTAB, MODE) ; Richiamo della preparazione del profilo (MODE può essere omesso).

N110 G1 Z20 X20 F200

N120 G9 X45 F300

N130 Z0 F400

; Descrizione del profilo.

N140 G2 Z-15 X30 K=AC(-15) I=AC(45)F100

N150 G64 Z-30 F600

N160 X80 F700

N170 Z-40 F800

N180 EXECUTE(ERROR) ; Fine della compilazione della tabella dei profili, commutazione sul funzionamento normale del programma.

...

Tabella dei profili KTAB:

Indice colonne 0 1 2 3 4 5

Indice righe Modo del profilo

Punto finaledelle ascisse

Punto finaledelle ordinate

Centro delle ascisse

Centro delle ordinate

Avanza-mento

0 30 100 100 0 0 7 1 11031 20 20 0 0 200 2 111031 20 45 0 0 300 3 11031 0 45 0 0 400 4 11032 -15 30 -15 45 100 5 11031 -30 30 0 0 600 6 11031 -30 80 0 0 700 7 11031 -40 80 0 0 800 8 0 0 0 0 0 0

Programmi di sgrossatura personalizzati 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 813

Significato dei contenuti delle colonne: Riga 0: Codifica per il punto iniziale: 100 (pos.unità): G0 = 0

Colonna 0: 101 (posizione delle decine): G70 = 0, G71 = 1, G700 = 2, G710 = 3

Colonna 1: Punto iniziale delle ascisse Colonna 2: Punto iniziale delle ordinate Colonna 3-4: 0 Colonna 5: Indice di riga dell’ultimo tratto di profilo nella tabella Righe 1-n: Registrazioni dei tratti di profilo 100 (pos.unità): G0 = 0, G1 = 1, G2 = 2, G3 = 3 101 (posizione delle decine): G70 = 0, G71 = 1, G700 = 2, G710 = 3 102 (pos.centinaia): G90 = 0, G91 = 1 103 (pos.migliaia): G93 = 0, G94 = 1, G95 = 2, G96 = 3 104 (pos.decine di migliaia): G60 = 0, G44 = 1, G641 = 2, G642 = 3

Colonna 0:

105 (pos.centinaia di migliaia): G9 = 1 Colonna 1: Punto finale delle ascisse Colonna 2: Punto finale delle ordinate Colonna 3: Centro delle ascisse con interpolazione circolare Colonna 4: Centro delle ordinate con interpolazione circolare Colonna 5: Avanzamento

Programmi di sgrossatura personalizzati 15.3 Creazione della tabella dei profili codificata (CONTDCON)

Preparazione del lavoro 814 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Ulteriori informazioni Comandi di movimento consentiti, sistema di coordinate Per la programmazione del profilo sono consentiti i seguenti gruppi G e comandi G: Gruppo G 1: G0, G1, G2, G3 Gruppo-G 10: G60, G64, G641, G642 Gruppo-G 11: G9

Gruppo-G 13: G70, G71, G700, G710 Gruppo-G 14: G90, G91 Gruppo-G 15: G93, G94, G95, G96, G961

Inoltre sono possibili: ● arrotondamento e smusso ● Programmazione circolare tramite CIP e CT Le funzioni di spline, polinomio e filetto conducono a errori. Le modifiche del sistema di coordinate attraverso l'attivazione di un frame non sono consentite fra CONTDCON e EXECUTE. La stessa cosa vale per un passaggio da G70 a G71 o da G700 a G710. Una sostituzione degli assi geometrici con GEOAX durante la preparazione della tabella dei profili provoca un allarme. Direzione di lavorazione La tabella dei profili creata con CONTDCON è prevista per l'asportazione nella direzione programmata del profilo.

Programmi di sgrossatura personalizzati 15.4 Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 815

15.4 15.4 Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC)

Funzioni INTERSEC rileva il punto di intersezione di due elementi del profilo normalizzati provenienti da tabelle dei profili create con CONTPRON.

Sintassi <Stato>=INTERSEC(<tabella dei profili_1>[<elemento del profilo_1>], <tabella dei profili_2>[<elemento di profilo_2>],<punto di intersezione>,<tipo di lavorazione>)

Significato INTERSEC Parola chiave per il calcolo del punto di intersezione di due

elementi del profilo provenienti dalle tabelle dei profili create con CONTPRON Variabile per lo stato del punto di intersezione Tipo: BOOL

TRUE Punto di intersezione trovato

<stato>

Valore: FALSE punto di intersezione non trovato

<tabella dei profili_1> Nome della prima tabella dei profili <elemento del profilo_1> Numero dell'elemento del profilo della prima tabella dei

profili <tabella dei profili_2> Nome della seconda tabella dei profili <elemento del profilo_2> Numero dell'elemento del profilo della seconda tabella dei

profili Coordinate del punto di interfaccia nel piano attivo (G17/G18/G19)

<punto di intersezione>

Tipo: REAL Parametri per il tipo di lavorazione Tipo: INT

0 Calcolo del punto di intersezione nel piano attivo con il parametro 2 (valore standard)

<tipo di lavorazione>

Valore:

1 Calcolo del punto di intersezione indipendente dal piano assegnato

Programmi di sgrossatura personalizzati 15.4 Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC)

Preparazione del lavoro 816 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Nota Prestare attenzione affinché le variabili vengano definite prima della relativa applicazione.

Il trasferimento dei profili richiede il rispetto dei valori definiti con CONTPRON: Parametro Significato 2 Codifica della modalità del profilo per il movimento 3 Ascisse del punto iniziale del profilo 4 Ordinata del punto iniziale del profilo 5 Ascisse del punto finale del profilo 6 Ordinata del punto finale del profilo 9 Coordinate del centro per l'ascissa (solo in caso di profilo circolare) 10 Coordinate del centro per l'ordinata (solo in caso di profilo circolare)

Esempio Determinare il punto di intersezione dell'elemento di profilo 3 della tabella TABNAME1 con l'elemento di profilo 7 della tabella TABNAME2. Le coordinate del punto di intersezione nel piano attivo vengono memorizzate nelle variabili ISCOORD (elemento 1 = ascissa, elemento 2 = ordinata). Se non esiste alcun punto di intersezione, si ha un salto a KEINSCH (nessun punto di intersezione trovato).

Codice di programma Commento

DEF REAL TABNAME1[12,11] ; Tabella dei profili 1

DEF REAL TABNAME2[10,11] ; Tabella dei profili 2

DEF REAL ISCOORD [2] ; Variabile per le coordinate del punto di intersezione.

DEF BOOL ISPOINT ; Variabile per lo stato del punto di intersezione.

DEF INT MODE ; Variabile per il tipo di lavorazione.

MODE=1 ; Calcolo indipendente dal piano attivo.

N10 ISPOINT=INTERSEC(TABNAME1[3],TABNAME2[7],ISCOORD,MODE) ; Richiamo del punto di intersezione degli elementi del profilo.

N20 IF ISPOINT==FALSE GOTOF NO_INTERS ; Salto a KEINSCH.

Programmi di sgrossatura personalizzati 15.5 Esecuzione blocco a blocco di elementi del profilo di una tabella (EXECTAB)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 817

15.5 15.5 Esecuzione blocco a blocco di elementi del profilo di una tabella (EXECTAB)

Funzioni Con il comando EXECTAB possono essere eseguiti blocco a blocco gli elementi del profilo di una tabella, che ad es. sono stati creati con il comando CONTPRON.

Sintassi EXECTAB(<tabella dei profili>[<elemento del profilo>])

Significato EXECTAB Comando per l'esecuzione di un elemento del profilo <tabella dei profili> Nome della tabella dei profili <elemento del profilo> Numero dell'elemento del profilo

Esempio Gli elementi del profilo da 0 a 2 della tabella KTAB devono essere eseguiti blocco a blocco. Codice di programma Commento

N10 EXECTAB(KTAB[0]) ; Spostamento dell'elemento 0 della tabella KTAB.

N20 EXECTAB(KTAB[1]) ; Spostamento dell'elemento 1 della tabella KTAB.

N30 EXECTAB(KTAB[2]) ; Spostamento dell'elemento 2 della tabella KTAB.

Programmi di sgrossatura personalizzati 15.6 Calcolo dei dati del cerchio (CALCDAT)

Preparazione del lavoro 818 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

15.6 15.6 Calcolo dei dati del cerchio (CALCDAT)

Funzioni Con il comando CALCDAT è possibile calcolare a partire da tre o quattro punti noti del cerchio il raggio e le coordinate del centro del cerchio. I punti impostati devono essere differenti tra di loro. Con 4 punti non giacenti esattamente sullo stesso cerchio, viene calcolato un valore medio sia per il centro che per il raggio.

Sintassi <stato>=CALCDAT(<punti del cerchio>[<numero>,<tipo>],<numero>,<risultato>)

Significato CALCDAT Comando per il calcolo del raggio e coordinate del centro di un

cerchio da 3 o 4 punti Variabile per lo stato di calcolo del cerchio Tipo: BOOL

TRUE I punti indicati si trovano su un cerchio.

<stato>

Valore: FALSE I punti indicati non si trovano su un

cerchio. Variabile per l'indicazione dei punti del cerchio con i parametri: <numero> Numero dei punti del cerchio (3 o 4)

<punti del cerchio>[]

<tipo> Tipo dell'indicazione delle coordinate, ad es. per le coordinate a 2 punti

<numero> Parametri per il numero dei punti utilizzati per il calcolo (3 o 4) Variabile per il risultato: Indicazione delle coordinate del centro del cerchio e del raggio 0 Coordinata del centro del cerchio: Valore delle ascisse 1 Coordinata del centro del cerchio: Valore delle ordinate

<risultato>[3]

2 Raggio

Nota Prestare attenzione affinché le variabili vengano definite prima della relativa applicazione.

Programmi di sgrossatura personalizzati 15.6 Calcolo dei dati del cerchio (CALCDAT)

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 819

Esempio È necessario calcolare a partire da tre punti se questi si trovano su una sezione di cerchio.

Codice di programma Commento

N10 DEF REAL PKT[3,2]=(20,50,50,40,65,20) ; Variabile per l'indicazione dei punti del cerchio

N20 DEF REAL ERG[3] ; Variabile per il risultato

N30 DEF BOOL STATUS ; Variabile di stato

N40 STATUS=CALCDAT(PKT,3,ERG) ; Richiamo dei dati del cerchio rilevati.

N50 IF STATUS == FALSE GOTOF ERROR ; Salto all'errore

Programmi di sgrossatura personalizzati 15.7 Disattivazione della preparazione del profilo (EXECUTE)

Preparazione del lavoro 820 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

15.7 15.7 Disattivazione della preparazione del profilo (EXECUTE)

Funzioni Con il comando EXECUTE viene attivata la preparazione del profilo e contemporaneamente questa viene riportata nel modo di lavorazione normale.

Sintassi EXECUTE(<ERRORE>)

Significato EXECUTE Comando per l'interruzione della preparazione del profilo

Variabile per la risposta di errore Tipo: INT Il valore delle variabili indica se il profilo può essere preparato senza errori:0 errore

<ERRORE>

1 nessun errore

Esempio Codice di programma ... N30 CONTPRON(...) N40 G1 X... Z... ... N100 EXECUTE(...) ...

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 821

Tabelle 1616.1 16.1 Lista istruzioni

Legenda:

Rimando al documento che contiene la descrizione dettagliata dell'istruzione: PG Manuale di programmazione, Nozioni di base PGA Manuale di programmazione, Preparazione del lavoro BHD Manuale d'uso HMI sl Tornitura BHF Manuale d'uso HMI sl Fresatura FB1 ( ) Manuale di guida alle funzioni, Funzioni di base (con la sigla alfanumerica della relativa descrizione

delle funzioni tra parentesi) FB2 ( ) Manuale di guida alle funzioni, Funzioni di ampliamento (con la sigla alfanumerica della relativa

descrizione delle funzioni tra parentesi) FB3 ( ) Manuale di guida alle funzioni, Funzioni speciali (con la sigla alfanumerica della relativa descrizione

delle funzioni tra parentesi) FBSI Manuale di guida alle funzioni, Safety Integrated FBSY Manuale di guida alle funzioni, Azioni sincrone

1)

FBW Manuale di guida alle funzioni, Gestione utensili Operatività dell'istruzione: m modale

2)

s blocco a blocco Disponibilità per SINUMERIK 828D (D = tornitura, F = fresatura): ● Standard ○ opzione

3)

- Non disponibile 4) Impostazione standard a inizio programma (nello stato di fornitura del controllo numerico, salvo diversa

programmazione).

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3)

PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

: Numero di blocco principale NC, fine etichetta di salto, operatore di concatenamento

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

* Operatore per moltiplicazione

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 822 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

+ Operatore per addizione PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

- Operatore per sottrazione PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

< Operatore di confronto, minore di

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

<< Operatore di concatenamento per stringhe

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

<= Operatore di confronto, minore di o uguale a

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

= Operatore di assegnazione

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

>= Operatore di confronto, maggiore di

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

/ Operatore per divisione PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

/0 … … /7

Il blocco viene escluso (1° livello escludibile) Il blocco viene escluso (8° livello escludibile)

PG

○ A Nome degli assi PGA

Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

m/s ● ● ● ●

A2 Orientamento utensile: Angolo RPY o di Eulero

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

A3 Orientamento utensile: Componenti dei vettori, direzionali/normali alla superficie

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

A4 Orientamento utensile: Vettore normale alla superficie per l'inizio blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 823

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

A5 Orientamento utensile: vettore normale alla superficie per la fine blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

ABS Valore assoluto (entità) PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

AC Quote assolute di coordinate/posizioni

PG

s ● ● ● ●

ACC Influsso dell'accelerazione assiale attuale

PG

m ● ● ● ●

ACCLIMA Influsso dell'accelerazione assiale attuale massima

PG

m ● ● ● ●

ACN Quota assoluta per assi rotanti, raggiungimento posizione in direzione negativa

PG

s ● ● ● ●

ACOS Arco-coseno (funzione trigonometrica)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

ACP Quota assoluta per assi rotanti, raggiungimento posizione in direzione positiva

PG

s ● ● ● ●

ACTBLOCNO Output del numero di blocco attuale di un blocco di allarme, anche se la "soppressione della visualizzazione del blocco attuale" (DISPLOF) è attiva!

PGA Disattivazione della visualizzazione del blocco attuale (DISPLOF, DISPLON, ACTBLOCNO) (Pagina 187)

● ● ● ●

ADDFRAME Inclusione ed eventuale attivazione di un frame misurato

PGA, FB1(K2) Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME) (Pagina 335)

● ● ● ●

ADIS Distanza di raccordo per funzioni vettoriali G1, G2, G3, ...

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 824 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ADISPOS Distanza di raccordo per rapido G0

PG

m ● ● ● ●

ADISPOSA Grandezza della finestra di tolleranza per IPOBRKA

PGA Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) (Pagina 309)

m ● ● ● ●

ALF Angolo di svincolo rapido PGA Svincolo rapido dal profilo (SETINT LIFTFAST, ALF) (Pagina 131)

m ● ● ● ●

AMIRROR Specularità programmabile

PG

s ● ● ● ●

AND AND logico PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

ANG Angolo del tratto di profilo PG

s ● ● ● ●

AP Angolo polare PG

m/s ● ● ● ●

APR Lettura/visualizzazione della protezione d'accesso

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

APRB Lettura dell'autorizzazione di accesso, BTSS

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

APRP Lettura dell'autorizzazione di accesso, programma pezzo

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

APW Scrittura della protezione d'accesso

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 825

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

APWB Scrittura dell'autorizzazione di accesso, BTSS

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

APWP Scrittura dell'autorizzazione di accesso, programma pezzo

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

APX Definizione della protezione d'accesso per l'esecuzione dell'elemento del linguaggio specificato

PGA Attributo: diritti di accesso (APR, APW, APRP, APWP, APRB, APWB) (Pagina 41)

● ● ● ●

AR Angolo di apertura PG

m/s ● ● ● ●

AROT Rotazione programmabile PG

s ● ● ● ●

AROTS Rotazioni frame programmabili con angoli nello spazio

PG

s ● ● ● ●

AS Definizione macro PGA Tecnica delle macro (DEFINE ... AS) (Pagina 229)

● ● ● ●

ASCALE Scala programmabile PG

s ● ● ● ●

ASIN Funzione di calcolo, arcoseno

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

ASPLINE Spline Akima PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

ATAN2 Arco-tangente 2 PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

ATOL Tolleranza specifica per asse per le funzioni compressore, smorzamento dell'orientamento e tipi di movimento raccordato

PGA Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL) (Pagina 566)

- ● - ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 826 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ATRANS Traslazione additiva programmabile

PG

s ● ● ● ●

AX Indicatore asse variabile PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

m/s ● ● ● ●

AXCSWAP Commutazione asse contenitore

PGA Container assi (AXCTSWE, AXCTSWED) (Pagina 774)

- - - -

AXCTSWE Commutazione asse contenitore

PGA Container assi (AXCTSWE, AXCTSWED) (Pagina 774)

- - - -

AXCTSWED Rotazione del contenitore d'assi

PGA Container assi (AXCTSWE, AXCTSWED) (Pagina 774)

- - - -

AXIS Identificatore dell'asse, indirizzo dell'asse

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

AXNAME Converte la stringa di ingresso in identificatore dell'asse

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

AXSTRING Converte la stringa in numero del mandrino

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

AXTOCHAN Richiesta di un asse per un determinato canale. È possibile dal programma NC e dalla sincronizzazione.

PGA Spostamento di un asse in un altro canale (AXTOCHAN) (Pagina 144)

● ● ● ●

AXTOSPI Converte l'identificatore dell'asse in un indice mandrino

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 827

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

B Nome degli assi PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

m/s ● ● ● ●

B2 Orientamento utensile: Angolo RPY o di Eulero

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

B3 Orientamento utensile: Componenti dei vettori, direzionali/normali alla superficie

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

B4 Orientamento utensile: Vettore normale alla superficie per l'inizio blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

B5 Orientamento utensile: vettore normale alla superficie per la fine blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

B_AND AND a bit PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

B_OR OR a bit PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

B_NOT Negazione a bit PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

B_XOR OR esclusivo a bit PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 828 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

BAUTO Definizione della prima sezione spline attraverso i 3 punti successivi

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

BLOCK Definisce assieme alla parola chiave TO la sezione di programma da elaborare in un sottoprogramma indiretto

PGA Richiamo indiretto del sottoprogramma con indicazione della parte di programma da eseguire (CALL BLOCK ... TO ...) (Pagina 214)

● ● ● ●

BLSYNC L'elaborazione della routine di interrupt deve iniziare con il successivo cambio blocco

PGA Assegnazione e avvio di routine di interrupt (SETINT, PRIO, BLSYNC) (Pagina 126)

● ● ● ●

BNAT 4) Passaggio naturale al primo blocco Spline

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

BOOL Tipo di dati: Valori logici TRUE/FALSE oppure 1/0

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

BOUND Controlla che il valore rientri nel campo di valori definito. In caso di uguaglianza viene restituito il valore di prova.

PGA Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)

● ● ● ●

BRISK 4) Accelerazione vettoriale a gradino

PG

m ● ● ● ●

BRISKA Attivazione accelerazione vettoriale a gradini per gli assi programmati

PG

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 829

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

BSPLINE B-Spline PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

BTAN Passaggio tangenziale al primo blocco Spline

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

C Nome degli assi PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

m/s ● ● ● ●

C2 Orientamento utensile: Angolo RPY o di Eulero

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

C3 Orientamento utensile: Componenti dei vettori, direzionali/normali alla superficie

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

s ● ● ● ●

C4 Orientamento utensile: Vettore normale alla superficie per l'inizio blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

C5 Orientamento utensile: vettore normale alla superficie per la fine blocco

PGA Fresatura frontale (fresatura 3D A4, B4, C4, A5, B5, C5) (Pagina 372)

s ● ● ● ●

CAC Accostamento assoluto a una posizione

PGA Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) (Pagina 261)

● ● ● ●

CACN Il valore riportato nella tabella viene raggiunto in modo assoluto in direzione negativa

PGA Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) (Pagina 261)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 830 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CACP Il valore riportato nella tabella viene raggiunto in modo assoluto in direzione positiva

PGA Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) (Pagina 261)

● ● ● ●

CALCDAT Raggio e centro di un cerchio calcolati da 3 o 4 punti

PGA Calcolo dei dati del cerchio (CALCDAT) (Pagina 818)

● ● ● ●

CALCPOSI Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software

PGA Verifica del superamento del settore di protezione, limitazione del campo di lavoro e finecorsa software (CALCPOSI) (Pagina 252)

● ● ● ●

CALL Richiamo indiretto di sottoprogrammi

PGA Richiamo indiretto di sottoprogramma (CALL) (Pagina 212)

● ● ● ●

CALLPATH Ampliamento del percorso di ricerca programmabile in un richiamo di sottoprogramma

PGA Estensione del percorso di ricerca nei richiami di sottoprogrammi (CALLPATH) (Pagina 218)

● ● ● ●

CANCEL Interruzione di un'azione sincrona modale

PGA Cancellazione dell'azione sincrona (CANCEL) (Pagina 726)

● ● ● ●

CASE Diramazione condizionata

PGA Diramazione del programma(CASE ... OF ... DEFAULT ...) (Pagina 97)

● ● ● ●

CDC Accostamento diretto a una posizione

PGA Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) (Pagina 261)

● ● ● ●

CDOF 4) Sorveglianza anticollisione OFF

PG

m ● ● ● ●

CDOF2 Sorveglianza anticollisione OFF, con fresatura periferica 3D

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 831

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CDON Sorveglianza anticollisione ON

PG

m ● ● ● ●

CFC 4) Avanzamento costante sul profilo

PG

m ● ● ● ●

CFIN Avanzamento costante solo per curvatura interna, non per curvatura esterna

PG

m ● ● ● ●

CFINE Assegnazione della traslazione fine a una variabile FRAME

PGA Traslazione grossolana e fine (CFINE, CTRANS) (Pagina 330)

● ● ● ●

CFTCP Avanzamento costante nel punto di riferimento del tagliente utensile, percorso riferito al centro

PG

m ● ● ● ●

CHAN Specifica del campo di validità dei dati

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

CHANDATA Impostare numero di canale per accessi ai dati del canale

PGA Memoria di lavoro (CHANDATA, COMPLETE, INITIAL) (Pagina 239)

● ● ● ●

CHAR Tipo di dati: carattere ASCII

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

CHECKSUM Forma il checksum su un campo come STRING di lunghezza predefinita

PGA Calcolo del checksum mediante un campo (CHECKSUM) (Pagina 162)

● ● ● ●

CHF Smusso; valore = lunghezza dello smusso

PG

s ● ● ● ●

CHKDM Controllo di univocità in un magazzino

FBW ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 832 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CHKDNO Prova di univocità dei numeri D

PGA Assegnazione libera dei numeri D: Controllo dei numeri D (CHKDNO) (Pagina 498)

● ● ● ●

CHR Smusso; valore = lunghezza dello smusso nella direzione di movimento

PG

● ● ● ●

CIC Accostamento incrementale a una posizione

PGA Raggiungimento di posizioni codificate (CAC, CIC, CDC, CACP, CACN) (Pagina 261)

● ● ● ●

CIP Interpolazione circolare tramite punto intermedio

PG

m ● ● ● ●

CLEARM Ripristino di una o più label per la coordinazione dei canali

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

CLRINT Disattivazione Interrupt PGA Cancellazione dell'assegnazione di una routine di interrupt (CLRINT) (Pagina 130)

● ● ● ●

CMIRROR Specularità rispetto a un asse delle coordinate

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

COARSEA Fine movimento al raggiungimento di "Arresto preciso"

PGA Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) (Pagina 309)

m ● ● ● ●

COMPCAD Compressore ON: Qualità superficiale ottimizzata per programmi CAD

PGA Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF) (Pagina 278)

m - ○ - ○

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 833

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

COMPCURV Compressore ON: polinomi a curvatura continua

PGA Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF) (Pagina 278)

m - ○ - ○

COMPLETE Istruzione di controllo per lettura e scrittura dei dati

PGA Memoria di lavoro (CHANDATA, COMPLETE, INITIAL) (Pagina 239)

● ● ● ●

COMPOF 4) Compressore OFF PGA Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF) (Pagina 278)

m - ○ - ○

COMPON Compressore ON PGA Compressione blocco NC (COMPON, COMPCURV, COMPCAD, COMPOF) (Pagina 278)

- ○ - ○

CONTDCON Codifica del profilo sotto forma di tabella ON

PGA Creazione della tabella dei profili codificata (CONTDCON) (Pagina 810)

● ● ● ●

CONTPRON Attivazione elaborazione dei punti di riferimento

PGA Creazione della tabella dei profili (CONTPRON) (Pagina 802)

● ● ● ●

CORROF Vengono disattivati tutti i movimenti attivi sovrapposti.

PG

● ● ● ●

COS Coseno (funzione trigonometrica)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

COUPDEF Definizione raggruppamento ELG/ raggruppamento mandrini sincroni

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 834 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

COUPDEL Cancellazione raggruppamento ELG

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

COUPOF Raggruppamento ELG/ coppia di mandrini sincroni ON

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

COUPOFS Disattivazione raggruppamento ELG/coppia mandrini sincroni con arresto del mandrino slave

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

COUPON Raggruppamento ELG/ coppia di mandrini sincroni ON

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

COUPONC Attivazione gruppo ELG/ coppia mandrini sincroni con programmazione precedente

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

COUPRES Reset raggruppamento ELG

PGA Mandrino sincrono: Programmazione (COUPDEF, COUPDEL, COUPON, COUPONC, COUPOF, COUPOFS, COUPRES, WAITC) (Pagina 615)

○ - ○ -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 835

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CP Movimento interpolato PGA Movimento cartesiano PTP (Pagina 428)

m ● ● ● ●

CPRECOF 4) Precisione programmabile del profilo OFF

PG

m ● ● ● ●

CPRECON Precisione programmabile del profilo ON

PG

m ● ● ● ●

CPROT Settore di protezione specifico per canale ON/OFF

PGA Attivazione/disattivazione dei settori di protezione (CPROT, NPROT) (Pagina 247)

● ● ● ●

CPROTDEF Definizione di un settore di protezione specifico del canale

PGA Definizione dei settori di protezione (CPROTDEF, NPROTDEF) (Pagina 243)

● ● ● ●

CR Raggio del cerchio PG

s ● ● ● ●

CROT Rotazione del sistema di coordinate attuale

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

CROTS Rotazioni programmabili dei frame con angoli nello spazio (rotazione negli assi indicati)

PG

s ● ● ● ●

CRPL Rotazione frame in un piano qualsiasi

FB1(K2) ● ● ● ●

CSCALE Fattore di scala per più assi

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

CSPLINE Spline cubico PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

CT Cerchio con passaggio tangenziale

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 836 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTAB Calcola la posizione dell'asse slave in base alla posizione dell'asse master nella tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABDEF Definizione della tabella ON

PGA Definizione delle tabelle delle curve (CTABDEF, CATBEND) (Pagina 577)

- - - -

CTABDEL Cancellare tabella per curve

PGA Eliminazione di tabelle delle curve (CTABDEL) (Pagina 585)

- - - -

CTABEND Definizione della tabella OFF

PGA Definizione delle tabelle delle curve (CTABDEF, CATBEND) (Pagina 577)

- - - -

CTABEXISTS Verifica la tabella di curve con il numero n

PGA Verifica della presenza di una tabella delle curve (CTABEXISTS) (Pagina 585)

- - - -

CTABFNO Numero di tabelle delle curve ancora possibili in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABFPOL Numero di polinomi ancora possibili in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 837

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTABFSEG Numero dei segmenti di curve ancora possibili in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABID Fornisce il numero di tabella della tabella di curve n

PGA Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) (Pagina 589)

- - - -

CTABINV Calcola la posizione dell'asse master in base alla posizione dell'asse slave nella tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABISLOCK Restituisce lo stato del blocco della tabelle curve con il numero n

PGA Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) (Pagina 589)

- - - -

CTABLOCK Blocco cancellazione e sovrascrittura

PGA Inibizione dell'eliminazione e della sovrascrittura delle tabelle delle curve (CTABLOCK, CTABUNLOCK) (Pagina 587)

- - - -

CTABMEMTYP Restituisce la memoria nella quale è stata creata la tabella di curve con il numero n.

PGA Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) (Pagina 589)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 838 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTABMPOL Numero max. di polinomi ancora possibili in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABMSEG Numero max. di segmenti di curve ancora possibili in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABNO Numero delle tabelle di curve definite in memoria SRAM o DRAM

FB3(M3) - - - -

CTABNOMEM Numero delle tabelle di curve definite in memoria SRAM o DRAM

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABPERIOD Restituisce la periodicità della tabelle di curve con il numero n

PGA Tabelle delle curve: rilevamento delle proprietà delle tabelle (CTABID, CTABISLOCK, CTABMEMTYP, CTABPERIOD) (Pagina 589)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 839

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTABPOL Numero max. di polinomi già utilizzati in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABPOLID Numero dei polinomi di curve utilizzati dalla tabella di curve con il numero n

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABSEG Numero dei segmenti di curve già utilizzati in memoria

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABSEGID Numero dei segmenti di curve utilizzati dalla tabella di curve con il numero n

PGA Tabelle delle curve: verifica dell'utilizzo delle risorse (CTABNO, CTABNOMEM, CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL, CTABFPOL, CTABMPOL) (Pagina 597)

- - - -

CTABSEV Restituisce il valore finale dell'asse slave di un segmento della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 840 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTABSSV Restituisce il valore iniziale dell'asse slave di un segmento della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABTEP Restituisce il valore dell'asse master alla fine della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABTEV Restituisce il valore dell'asse slave alla fine della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABTMAX Restituisce il valore massimo dell'asse slave della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABTMIN Restituisce il valore minimo dell'asse slave della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABTSP Restituisce il valore dell'asse master all'inizio della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 841

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CTABTSV Restituisce il valore dell'asse slave all'inizio della tabella di curve

PGA Lettura dei valori delle tabelle delle curve (CTABTSV, CTABTEV, CTABTSP, CTABTEP, CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) (Pagina 591)

- - - -

CTABUNLOCK Rimozione del blocco di cancellazione e sovrascrittura

PGA Inibizione dell'eliminazione e della sovrascrittura delle tabelle delle curve (CTABLOCK, CTABUNLOCK) (Pagina 587)

- - - -

CTOL Tolleranza del profilo per funzioni compressore, spianamento dell'orientamento e tipi di movimento raccordato

PGA Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL) (Pagina 566)

- ○ - ○

CTRANS Spostamento origine per più assi

PGA Traslazione grossolana e fine (CFINE, CTRANS) (Pagina 330)

● ● ● ●

CUT2D 4) Correzione utensile 2D PG

m ● ● ● ●

CUT2DF Correzione utensile 2D La correzione utensile è attiva rispetto al frame attuale (piano inclinato).

PG

m ● ● ● ●

CUT3DC Correzione utensile 3D, fresatura periferica

PGA Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...) (Pagina 471)

m - - - -

CUT3DCC Correzione utensile 3D, fresatura periferica con superfici di limitazione

PGA Correzione utensile 3D: Considerazione di una superficie limite (CUT3DCC, CUT3DCCD) (Pagina 484)

m - - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 842 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

CUT3DCCD Correzione utensile 3D, fresatura periferica con superfici di limitazione e utensile differenziale

PGA Correzione utensile 3D: Considerazione di una superficie limite (CUT3DCC, CUT3DCCD) (Pagina 484)

m - - - -

CUT3DF Correzione utensile 3D, fresatura frontale

PGA Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...) (Pagina 471)

m - - - -

CUT3DFF Correzione utensile 3D, fresatura frontale con orientamento utensile costante dipendente dal frame attivo

PGA Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...) (Pagina 471)

m - - - -

CUT3DFS Correzione utensile 3D, fresatura frontale con orientamento utensile costante indipendente dal frame attivo

PGA Attivazione delle correzioni utensili 3D (CUT3DC..., CUT3DF...) (Pagina 471)

m - - - -

CUTCONOF 4) Correzione raggio costante OFF

PG

m ● ● ● ●

CUTCONON Correzione raggio costante ON

PG

m ● ● ● ●

CUTMOD Attivazione della funzione "Modifica dei dati di correzione con utensili orientabili"

PGA Modifica del dati dei taglienti con utensili orientabili (CUTMOD) (Pagina 517)

● ● ● ●

CYCLE... Cicli di misura BHD/BHF D Numero di correzione

utensile PG

● ● ● ●

D0 Con D0 le correzioni per l'utensile sono inattive

PG

● ● ● ●

DAC Programmazione del diametro assoluta, specifica per asse e blocco-blocco

PG

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 843

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

DC Quota assoluta per assi rotanti, accostamento diretto alla posizione

PG

s ● ● ● ●

DEF Definizione delle variabili PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

DEFINE Parola chiave per definizioni macro

PGA Tecnica delle macro (DEFINE ... AS) (Pagina 229)

● ● ● ●

DEFAULT Diramazione in CASE PGA Diramazione del programma(CASE ... OF ... DEFAULT ...) (Pagina 97)

● ● ● ●

DELAYFSTON Definizione dell'inizio di un settore Stop Delay

PGA Diramazione del programma(CASE ... OF ... DEFAULT ...) (Pagina 97)

m ● ● ● ●

DELAYFSTOF Definizione della fine di un settore Stop Delay

PGA Interruzioni condizionate delle sezioni di programma (DELAYFSTON, DELAYFSTOF) (Pagina 543)

m ● ● ● ●

DELDL Cancellazione delle correzioni additive

PGA Cancellazione delle correzioni supplementari (DELDL) (Pagina 454)

● ● ● ●

DELDTG Cancellazione del percorso residuo

PGA Cancellazione percorso residuo (DELDTG) (Pagina 669)

● ● ● ●

DELETE Cancellazione del file indicato. Il nome del file si può indicare con il percorso e l'identificatore del file.

PGA Cancellazione del file (DELETE) (Pagina 151)

● ● ● ●

DELTOOLENV Cancellazione del set di dati per la cancellazione degli ambienti utensile

FB1(W1) ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 844 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

DIACYCOFA Programmazione modale del diametro specifica per asse: OFF nei cicli

FB1(P1) m ● ● ● ●

DIAM90 Programmazione del diametro per G90, programmazione del raggio per G91

PGA

m ● ● ● ●

DIAM90A Programmazione modale del diametro specifica per asse per G90 e AC, programmazione del raggio per G91 e IC

PG

m ● ● ● ●

DIAMCHAN Acquisizione di tutti gli assi dagli MD delle funzioni degli assi nello stato del canale della programmazione del diametro

PG

● ● ● ●

DIAMCHANA Acquisizione dello stato del canale della programmazione del diametro

PG

● ● ● ●

DIAMCYCOF Programmazione del diametro specifica del canale: OFF nei cicli

FB1(P1) m ● ● ● ●

DIAMOF 4) Programmazione diametrale: OFF Impostazione di base, vedere costruttore della macchina

PG

m ● ● ● ●

DIAMOFA Programmazione del diametro modale specifica dell'asse: OFF Impostazione di base, vedere costruttore della macchina

PG

m ● ● ● ●

DIAMON Programmazione diametrale: ON

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 845

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

DIAMONA Programmazione del diametro modale specifica dell'asse: ON Attivazione, vedere costruttore della macchina

PG

m ● ● ● ●

DIC Programmazione del diametro relativa, specifica per asse e blocco-blocco

PG

s ● ● ● ●

DILF Percorso di svincolo (lunghezza)

PG

m ● ● ● ●

DISABLE Interrupt OFF PGA Disattivazione/riattivazione dell'assegnazione di una routine di interrupt (DISABLE, ENABLE) (Pagina 129)

● ● ● ●

DISC Sopraelevazione cerchio di raccordo correzione raggio utensile

PG

m ● ● ● ●

DISCL Distanza del punto finale del movimento di incremento rapido dal piano di lavorazione

PG

● ● ● ●

DISPLOF Escludere la visualizzazione del blocco attuale

PGA Disattivazione della visualizzazione del blocco attuale (DISPLOF, DISPLON, ACTBLOCNO) (Pagina 187)

● ● ● ●

DISPLON Rimozione della soppressione della visualizzazione del blocco attuale

PGA Disattivazione della visualizzazione del blocco attuale (DISPLOF, DISPLON, ACTBLOCNO) (Pagina 187)

● ● ● ●

DISPR Differenza del profilo di riposizionamento

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 846 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

DISR Distanza di riposizionamento

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

DITE Percorso di svincolo in filettatura

PG

m ● ● ● ●

DITS Percorso di accostamento in filettatura

PG

m ● ● ● ●

DIV Divisione Intero PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

DL Selezionare la correzione utensile additiva dipendente dalla posizione (DL, correzione di messa a punto totale)

PGA Selezione di correzioni addizionali (DL) (Pagina 451)

m - - - -

DO Parola chiave per azione sincrona, attiva l'azione se la condizione è soddisfatta

PGA Azioni (DO) (Pagina 643)

● ● ● ●

DRFOF Disattivazione delle traslazioni con volantino (DRF)

PG

m ● ● ● ●

DRIVE Accelerazione vettoriale in funzione della velocità

PG

m ● ● ● ●

DRIVEA Attivare la caratteristica di accelerazione a due inclinazioni per gli assi programmati

PG

● ● ● ●

DYNFINISH Dinamica per microfinitura

PG

m ● ● ● ●

DYNNORM Dinamica normale PG

m ● ● ● ●

DYNPOS Dinamica per funzionamento di posizionamento, maschiatura

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 847

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

DYNROUGH Dinamica per sgrossatura PG

m ● ● ● ●

DYNSEMIFIN Dinamica per la finitura PG

m ● ● ● ●

DZERO Contraddistingue tutti i numeri D dell’unità TO come non validi

PGA Assegnazione libera dei numeri D: Impostazione non valida dei numeri D (DZERO) (Pagina 502)

● ● ● ●

EAUTO Definizione dell'ultimo settore Spline tramite gli ultimi 3 punti

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

EGDEF Definizione di un cambio elettronico

PGA Definizione del cambio elettronico (EGDEF) (Pagina 606)

- - - -

EGDEL Cancellazione della definizione di accoppiamento per l'asse slave

PGA Cancellazione della definizione di un cambio elettronico (EGDEL) (Pagina 613)

- - - -

EGOFC Disattivazione continua del cambio elettronico

PGA Disattivazione del cambio elettronico (EGOFS, EGOFC) (Pagina 611)

- - - -

EGOFS Disattivazione selettiva del cambio elettronico

PGA Disattivazione del cambio elettronico (EGOFS, EGOFC) (Pagina 611)

- - - -

EGON Attivazione cambio elettronico

PGA Disattivazione del cambio elettronico (EGOFS, EGOFC) (Pagina 611)

- - - -

EGONSYN Attivazione cambio elettronico

PGA Disattivazione del cambio elettronico (EGOFS, EGOFC) (Pagina 611)

- - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 848 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

EGONSYNE Attivazione cambio elettronico, con impostazione del modo di accostamento

PGA Disattivazione del cambio elettronico (EGOFS, EGOFC) (Pagina 611)

- - - -

ELSE Diramazione del programma, se non è soddisfatta la condizione IF

PGA Loop di programma con alternativa (IF, ELSE, ENDIF) (Pagina 109)

● ● ● ●

ENABLE Interrupt ON PGA Disattivazione/riattivazione dell'assegnazione di una routine di interrupt (DISABLE, ENABLE) (Pagina 129)

● ● ● ●

ENAT 4) Raccordo curvilineo naturale al successivo blocco di movimento

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

ENDFOR Riga di fine del loop di conteggio FOR

PGA Loop con conteggio (FOR ... TO ..., ENDFOR) (Pagina 112)

● ● ● ●

ENDIF Riga di fine della diramazione IF

PGA Loop di programma con alternativa (IF, ELSE, ENDIF) (Pagina 109)

● ● ● ●

ENDLABEL Endlabel per ripetizioni del partprogram tramite REPEAT

PGA, FB1(K1) Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P) (Pagina 99)

● ● ● ●

ENDLOOP Riga di fine del loop di programma senza fine LOOP

PGA Loop di programma permanente (LOOP, ENDLOOP) (Pagina 111)

● ● ● ●

ENDPROC Riga di fine di un programma con riga iniziale PROC

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 849

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ENDWHILE Riga di fine del loop WHILE

PGA Loop di programma con condizione all'inizio del loop (WHILE, ENDWHILE) (Pagina 114)

● ● ● ●

ETAN Raccordo curvilineo tangenziale al successivo blocco di movimento all’inizio della Spline

PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

m - ○ - ○

EVERY Esecuzione dell'azione sincrona se la condizione passa da FALSE a TRUE

PGA Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY) (Pagina 640)

● ● ● ●

EX Parola chiave per l'assegnazione dei valori in scrittura esponenziale

PGA Variabili utente predefinite: Parametri di calcolo (R) (Pagina 19)

● ● ● ●

EXECSTRING Trasmissione di una variabile String con la riga di partprogram da eseguire

PGA Programmazione indiretta di righe di partprogram (EXECSTRING) (Pagina 66)

● ● ● ●

EXECTAB Elaborare un elemento dalla tabella dei movimenti

PGA Programmazione indiretta di righe di partprogram (EXECSTRING) (Pagina 66)

● ● ● ●

EXECUTE Esecuzione programma ON

PGA Disattivazione della preparazione del profilo (EXECUTE) (Pagina 820)

● ● ● ●

EXP Funzione esponenziale ex

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

EXTCALL Esecuzione di un sottoprogramma esterno

PGA Esecuzione di un sottoprogramma esterno (EXTCALL) (Pagina 220)

● ● ● ●

EXTERN Comunicazione di un sottoprogramma con trasferimento dei parametri

PGA Richiamo del sottoprogramma senza assegnazione di parametri (Pagina 203)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 850 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

F Valore avanzamento (in combinazione con G4, con F viene programmato anche il tempo di sosta)

PG

● ● ● ●

FA Avanzamento assiale PG

m ● ● ● ●

FAD Avanzamento di incremento per accostamento e svincolo morbido

PG

● ● ● ●

FALSE Costante logica: falso PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

FB Avanzamento blocco a blocco

PG

● ● ● ●

FCTDEF Definizione funzione polinomiale

PGA Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

- - - -

FCUB Avanzamento modificabile dopo Spline cubica

PGA Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO) (Pagina 534)

m ● ● ● ●

FD Avanzamento vettoriale per sovrapposizione del volantino

PG

s ● ● ● ●

FDA Avanzamento assiale per sovrapposizione da volantino

PG

s ● ● ● ●

FENDNORM Rallentamento d'angolo OFF

PGA Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621) (Pagina 308)

m ● ● ● ●

FFWOF 4) Precomando OFF PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 851

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

FFWON Precomando ON PG

m ● ● ● ●

FGREF Raggio di riferimento con assi rotanti o fattori di riferimento di traiettoria negli assi di orientamento (interpolazione vettoriale)

PG

m ● ● ● ●

FGROUP Definizione dell'asse (o degli assi) con avanzamento tangenziale

PG

● ● ● ●

FI Parametro per l'accesso ai dati del Frame: Traslazione fine

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

FIFOCTRL Controllo del buffer di preelaborazione

PGA Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Pagina 540)

m ● ● ● ●

FILEDATE Fornisce la data dell'ultimo accesso in scrittura al file

PGA Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) (Pagina 159)

● ● ● ●

FILEINFO Fornisce la somma di FILEDATE, FILESIZE, FILESTAT e FILETIME

PGA Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) (Pagina 159)

● ● ● ●

FILESIZE Fornisce le dimensioni attuali del file

PGA Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) (Pagina 159)

● ● ● ●

FILESTAT Fornisce lo stato del file per i diritti di lettura, scrittura, esecuzione, visualizzazione, cancellazione (rwxsd)

PGA Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) (Pagina 159)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 852 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

FILETIME Fornisce l'ora dell'ultimo accesso in scrittura al file

PGA Lettura delle informazioni sul file (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO) (Pagina 159)

● ● ● ●

FINEA Fine movimento al raggiungimento di "arresto di precisione fine"

PGA Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) (Pagina 309)

m ● ● ● ●

FL Velocità limite per gli assi sincroni

PG Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

m ● ● ● ●

FLIN Avanzamento modificabile in modo lineare

PGA Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO) (Pagina 534)

m ● ● ● ●

FMA Avanzamento multiplo assiale

PG

m - - - -

FNORM 4) Avanzamento normale secondo DIN66025

PGA Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO) (Pagina 534)

m ● ● ● ●

FOCOF Disattivazione avanzamento con coppia/forza limitata

PGA Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF) (Pagina 708)

m ○ - ○ -

FOCON Attivazione avanzamento con coppia/forza limitata

PGA Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF) (Pagina 708)

m ○ - ○ -

FOR Loop di conteggio con numero fisso di ripetizioni

PGA Loop con conteggio (FOR ... TO ..., ENDFOR) (Pagina 112)

● ● ● ●

FP Punto fisso: Numero del punto fisso da raggiungere

PG

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 853

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

FPO Caratteristica dell'avanzamento programmata con un polinomio

PGA Andamento dell'avanzamento (FNORM, FLIN, FCUB, FPO) (Pagina 534)

- - - -

FPR Identificazione asse rotante

PG

● ● ● ●

FPRAOF Disattivazione avanzamento per giro

PG

● ● ● ●

FPRAON Attivazione avanzamento per giro

PG

● ● ● ●

FRAME Tipo di dati per la definizione dei sistemi di coordinate

PGA Definizione di nuovi frame (DEF FRAME) (Pagina 329)

● ● ● ●

FRC Avanzamento per raggio e smusso

PG

s ● ● ● ●

FRCM Avanzamento per raggio e smusso modale

PG

m ● ● ● ●

FROM L'azione viene eseguita quando la condizione è soddisfatta e fintanto che è attiva l'azione sincrona

PGA Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY) (Pagina 640)

● ● ● ●

FTOC Modificare correzione fine dell'utensile

PG Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

● ● ● ●

FTOCOF 4) Correzione utensile precisa attiva online OFF

PGA Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

m ● ● ● ●

FTOCON Correzione utensile precisa attiva online ON

PGA Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 854 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

FXS Movimento su riscontro fisso ON

PG Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF) (Pagina 708)

m ● ● ● ●

FXST Limite di coppia per posizionamento su riscontro fisso

PG Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF) (Pagina 708)

m ● ● ● ●

FXSW Finestra di sorveglianza per posizionamento su riscontro fisso

PG Avanzamento su riscontro fisso (FXS, FXST, FXSW, FOCON, FOCOF) (Pagina 708)

● ● ● ●

FZ Avanzamento dente PG

m ● ● ● ●

G0 Interpolazione lineare in rapido (movimento rapido)

PG

m ● ● ● ●

G1 4) Interpolazione lineare con avanzamento (interpolazione lineare)

PG

m ● ● ● ●

G2 Interpolazione circolare in senso orario

PG

m ● ● ● ●

G3 Interpolazione circolare in senso antiorario

PG

m ● ● ● ●

G4 Tempo di sosta, determinato

PG

s ● ● ● ●

G5 Rettifica con mola obliqua PGA Asse inclinato (TRAANG) (Pagina 422)

s ● ● ● ●

G7 Movimento di compensazione nella rettifica con mola obliqua

PGA Asse inclinato (TRAANG) (Pagina 422)

s ● ● ● ●

G9 Arresto preciso - riduzione velocità

PG

s ● ● ● ●

G17 4) Scelta del piano di lavoro X/Y

PG

m ● ● ● ●

G18 Scelta del piano di lavoro Z/X

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 855

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G19 Scelta del piano di lavoro Y/Z

PG

m ● ● ● ●

G25 Limitazione inferiore del campo di lavoro

PG

s ● ● ● ●

G26 Limitazione superiore del campo di lavoro

PG

s ● ● ● ●

G33 Filettatura con passo costante

PG

m ● ● ● ●

G34 Filettatura con passo crescente linearmente

PG

m ● ● ● ●

G35 Filettatura con passo decrescente linearmente

PG

m ● ● ● ●

G40 4) Correzione raggio utensile OFF

PG

m ● ● ● ●

G41 Correzione raggio utensile a sinistra del profilo

PG

m ● ● ● ●

G42 Correzione raggio utensile a destra del profilo

PG

m ● ● ● ●

G53 Soppressione dello spostamento origine attuale (blocco per blocco)

PG

s ● ● ● ●

G54 1° spostamento origine impostabile

PG

m ● ● ● ●

G55 2° spostamento origine impostabile

PG

m ● ● ● ●

G56 3° spostamento origine impostabile

PG

m ● ● ● ●

G57 4° spostamento origine impostabile

PG

m ● ● ● ●

G58 Spostamento origine programmabile assiale assoluto, traslazione grossolana

PG

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 856 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G59 Spostamento origine programmabile assiale addizionale, traslazione fine

PG

s ● ● ● ●

G60 4) Arresto preciso - riduzione velocità

PG

m ● ● ● ●

G62 Rallentamento d'angolo sugli spigoli interni con correzione raggio utensile attiva (G41, G42)

PGA Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621) (Pagina 308)

m ● ● ● ●

G63 Maschiatura con compensatore

PG

s ● ● ● ●

G64 Funzionamento continuo PG

m ● ● ● ●

G70 Quote in pollici per indicazioni geometriche (lunghezze)

PG

m ● ● ● ●

G71 4) Quote metriche per indicazioni geometriche (lunghezze)

PG

m ● ● ● ●

G74 Ricerca punto di riferimento

PG

s ● ● ● ●

G75 Accostamento a un punto fisso

PG

s ● ● ● ●

G90 4) Quota assoluta PG

m/s ● ● ● ●

G91 Indicazione in quote incrementali

PG

m/s ● ● ● ●

G93 Avanzamento inversamente proporzionale al tempo 1/min

PG

m ● ● ● ●

G94 4) Avanzamento lineare F in mm/min oppure pollici/min e gradi/min

PG

m ● ● ● ●

G95 Avanzamento al giro F al mm/giro oppure pollici/giro

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 857

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G96 Velocità di taglio costante (come per G95) ON

PG

m ● ● ● ●

G97 Velocità di taglio costante (come per G95) OFF

PG

m ● ● ● ●

G110 Programmazione del polo relativo all'ultima posizione programmata

PG

s ● ● ● ●

G111 Programmazione dei poli relativamente al punto zero del sistema di coordinate del pezzo attuale

PG

s ● ● ● ●

G112 Programmazione del polo relativa all'ultimo polo valido

PG

s ● ● ● ●

G140 4) Direzione accostamento WAB definita da G41/G42

PG

m ● ● ● ●

G141 Direzione accostamento WAB a sinistra del profilo

PG

m ● ● ● ●

G142 Direzione accostamento WAB a destra del profilo

PG

m ● ● ● ●

G143 Direzione accostamento WAB dipendente dalla tangente

PG

m ● ● ● ●

G147 Accostamento tangenziale con retta

PG

s ● ● ● ●

G148 Distacco tangenziale con retta

PG

s ● ● ● ●

G153 Soppressione di frame attuali inclusi frame di base

PG

s ● ● ● ●

G247 Accostamento tangenziale con quarto di cerchio

PG

s ● ● ● ●

G248 Distacco tangenziale con quarto di cerchio

PG

s ● ● ● ●

G290 Commutazione sul modo SINUMERIK ON

FBW m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 858 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G291 Commutazione sul modo ISO2/3 ON

FBW m ● ● ● ●

G331 Maschiatura senza utensile compensato, passo positivo, rotazione destrorsa

PG

m ● ● ● ●

G332 Maschiatura senza utensile compensato, passo negativo, rotazione sinistrorsa

PG

m ● ● ● ●

G340 4) Blocco di accostamento spaziale (in profondità e nel piano contempora-neamente (elicoide))

PG

m ● ● ● ●

G341 Prima incremento nell'asse verticale (z), quindi accostamento nel piano

PG

m ● ● ● ●

G347 Accostamento tangen-ziale con semicerchio

PG

s ● ● ● ●

G348 Distacco tangenziale con semicerchio

PG

s ● ● ● ●

G450 4) Cerchio di raccordo PG

m ● ● ● ●

G451 Punto di intersezione delle equidistanti

PG

m ● ● ● ●

G460 4) Attivazione della sorveglianza collisioni per il blocco di accostamento e svincolo

PG

m ● ● ● ●

G461 Inserimento di un cerchio nel blocco di correzione del raggio utensile

PG

m ● ● ● ●

G462 Inserimento di una retta nel blocco di correzione del raggio utensile

PG

m ● ● ● ●

G500 4) Disattivazione di tutti i frame impostabili, frame di base attivi

PG

m ● ● ● ●

G505 ... G599 5° ... 99° spostamento origine impostabile

PG

m ● ● ● ●

G601 4) Cambio blocco con arresto preciso fine

PG

m ● ● ● ●

G602 Passaggio di blocco ad arresto preciso grossolano

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 859

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G603 Passaggio di blocco a fine blocco IPO

PG

m ● ● ● ●

G621 Rallentamento d'angolo su tutti gli spigoli

PGA Riduzione dell'avanzamento con rallentamento sugli spigoli (FENDNORM, G62, G621) (Pagina 308)

m ● ● ● ●

G641 Funzionamento continuo raccordato in base al criterio del percorso (= distanza di raccordo programmabile)

PG

m ● ● ● ●

G642 Funzionamento continuo raccordato con rispetto di tolleranze definite

PG

m ● ● ● ●

G643 Funzionamento continuo raccordato con rispetto di tolleranze definite (interno al blocco)

PG

m ● ● ● ●

G644 Funzionamento continuo raccordato con la massima dinamica possibile

PG

m ● ● ● ●

G645 Funzionamento continuo con raccordo di angoli e raccordi di blocco tangenziali con rispetto di tolleranze definite

PG

m ● ● ● ●

G700 Quote in pollici per indicazioni geometriche e tecnologiche (lunghezza, avanzamento)

PG

m ● ● ● ●

G710 4) Quote metriche per indicazioni geometriche e tecnologiche (lunghezza, avanzamento)

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 860 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G751 Accostamento al punto fisso tramite un punto intermedio

PG

s ● ● ● ●

G810 4), ..., G819

Gruppo G riservato per utente OEM

PGA Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829) (Pagina 307)

● ● ● ●

G820 4), ..., G829

Gruppo G riservato per utente OEM

PGA Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829) (Pagina 307)

● ● ● ●

G931 Impostazione avanzamento tramite tempo di esecuzione

m ● ● ● ●

G942 Congelare l'avanzamento lineare e la velocità di taglio costante oppure dei giri del mandrino

m ● ● ● ●

G952 Congelare l'avanzamento al giro e la velocità di taglio costante oppure dei giri del mandrino

m ● ● ● ●

G961 Velocità di taglio costante e avanzamento lineare

PG

m ● ● ● ●

G962 Avanzamento lineare oppure avanzamento al giro e velocità di taglio costante

PG

m ● ● ● ●

G971 Congelare i giri del mandrino e avanzamento lineare

PG

m ● ● ● ●

G972 Congelare l'avanzamento lineare oppure l'avanzamento al giro e i giri del mandrino costanti

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 861

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

G973 Avanzamento al giro senza limitazione della velocità del mandrino

PG

m ● ● ● ●

GEOAX Assegnare nuovi assi canale agli assi geometrici 1 - 3

PGA Assi geometrici commutabili (GEOAX) (Pagina 768)

● ● ● ●

GET Scambio asse abilitato tra canali

PGA Scambio assi, scambio mandrini (RELEASE, GET, GETD) (Pagina 138)

● ● ● ●

GETACTT Determina l'utensile attivo da un gruppo di utensili con lo stesso nome

FBW ● ● ● ●

GETACTTD Determina per un numero D assoluto il rispettivo numero T

PGA Assegnazione libera dei numeri D: Individuazione del numero T per il numero D preimpostato (GETACTTD) (Pagina 501)

● ● ● ●

GETD Scambio asse diretto tra canali

PGA Scambio assi, scambio mandrini (RELEASE, GET, GETD) (Pagina 138)

● ● ● ●

GETDNO Fornisce il numero D del tagliente (CE) di un utensile (T)

PGA Assegnazione libera dei numeri D: Modifica dei nomi dei numeri D (GETDNO, SETDNO) (Pagina 499)

● ● ● ●

GETEXET Lettura del numero T sostituito

FBW ● ● ● ●

GETFREELOC Ricerca di un posto libero nei magazzini per un determinato utensile

FBW ● ● ● ●

GETSELT Restituire il numero T selezionato

FBW ● ● ● ●

GETT Determinare il numero della T per un nome di utensile

FBW ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 862 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

GETTCOR Lettura lunghezze utensile o componenti lunghezze utensile

FB1(W1) ● ● ● ●

GETTENV Lettura numeri T, D e DL FB1(W1) ● ● ● ● GOTO Istruzione di salto prima

in avanti e poi indietro (direzione prima verso la fine e poi verso l'inizio del programma)

PGA Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC) (Pagina 93)

● ● ● ●

GOTOB Istruzione di salto indietro (direzione inizio programma)

PGA Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC) (Pagina 93)

● ● ● ●

GOTOC Come GOTO, ma soppressione dell'allarme 14080 "Destinazione di salto non trovata"

PGA Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC) (Pagina 93)

● ● ● ●

GOTOF Istruzione di salto in avanti (direzione fine programma)

PGA Salti nel programma su etichette di salto (GOTOB, GOTOF, GOTO, GOTOC) (Pagina 93)

● ● ● ●

GOTOS Salto all'inizio del programma

PGA Ritorno all'inizio del programma (GOTOS) (Pagina 92)

● ● ● ●

GP Parola chiave per la programmazione indiretta di attributi di posizione

PGA Programmazione indiretta di attributi di posizione (GP) (Pagina 63)

● ● ● ●

GWPSOF Disattivare la velocità periferica costante della mola (VPM)

PG

s ● ● ● ●

GWPSON Attivare la velocità periferica costante della mola (VPM)

PG

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 863

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

H... Emissione funzioni ausiliarie al PLC

PG/FB1(H2)

● ● ● ●

HOLES1 Ciclo per dime di foratura, serie di fori

BHD/BHF ● ● ● ●

HOLES2 Ciclo per dime di foratura, cerchio di fori

BHD/BHF ● ● ● ●

I Parametri di interpolazione

PG

s ● ● ● ●

I1 Coordinata punto intermedio

PG

s ● ● ● ●

IC Impostazione delle quote incrementale

PG

s ● ● ● ●

ICYCOF Elaborazione di tutti i blocchi di un ciclo tecnologico dopo ICYCOF in un clock IPO

PGA Controllo ed esecuzione di cicli tecnologici (ICYCOF, ICYCON) (Pagina 720)

● ● ● ●

ICYCON Elaborazione di ogni blocco di un ciclo tecnologico dopo ICYCON in un clock IPO separato

PGA Controllo ed esecuzione di cicli tecnologici (ICYCOF, ICYCON) (Pagina 720)

● ● ● ●

ID Identificazione per le azioni sincrone modali

PGA Campo di validità e sequenza di lavorazione (ID, IDS) (Pagina 638)

m ● ● ● ●

IDS Identificazione per le azioni sincrone modali statiche

PGA Campo di validità e sequenza di lavorazione (ID, IDS) (Pagina 638)

● ● ● ●

IF Introduzione di un salto condizionato nel partprogram/ciclo tecnologico

PGA Loop di programma con alternativa (IF, ELSE, ENDIF) (Pagina 109)

● ● ● ●

INDEX Determinazione di indice di un carattere nella stringa di ingresso

PGA Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) (Pagina 87)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 864 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

INIPO Inizializzazione delle variabili al PowerOn

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

INIRE Inizializzazione delle variabili al Reset

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

INICF Inizializzazione delle variabili con NewConfig

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

INIT Scelta di un determinato programma NC per l'elaborazione in un determinato canale:

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

INITIAL Generazione di un file INI in tutti i settori

PGA Memoria di lavoro (CHANDATA, COMPLETE, INITIAL) (Pagina 239)

● ● ● ●

INT Tipo di dati: Valore intero con segno

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

INTERSEC Calcolo del punto di intersezione fra due elementi del profilo

PGA Individuazione del punto di intersezione fra due elementi del profilo (INTERSEC) (Pagina 815)

● ● ● ●

INVCCW Movimento su evolvente, in senso antiorario

PG

m - - - -

INVCW Movimento su evolvente, in senso orario

PG

m - - - -

INVFRAME Calcolo del frame inverso a partire da un frame

FB1(K2) ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 865

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

IP Parametro di interpolazione variabile

PGA Programmazione indiretta (Pagina 58)

● ● ● ●

IPOBRKA Criterio di spostamento sul punto di attivazione della rampa di frenatura

PGA Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) (Pagina 309)

m ● ● ● ●

IPOENDA Fine dello spostamento al raggiungimento di "Stop IPO"

PGA Criterio programmabile di fine movimento (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA) (Pagina 309)

m ● ● ● ●

IPTRLOCK Congelare l'inizio della sezione di programma senza possibilità di ricerca sul successivo blocco di funzioni macchina.

PGA Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK) (Pagina 550)

m ● ● ● ●

IPTRUNLOCK Impostare la fine della sezione di programma senza possibilità di ricerca sul blocco attuale come punto di interruzione.

PGA Inibire la zona di programma per SERUPRO (IPTRLOCK, IPTRUNLOCK) (Pagina 550)

m ● ● ● ●

ISAXIS Verificare se l'asse geometrico 1 indicato come parametro è disponibile

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

ISD Profondità di penetrazione

PGA Attivazione delle correzioni utensile 3D (CUT3DC, CUT3DF, CUT3DFS, CUT3DFF, ISD) (Pagina 471)

m ● ● ● ●

ISFILE Verifica se un file è presente nella memoria utente dell'NCK.

PGA Verifica della presenza di un file (ISFILE) (Pagina 157)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 866 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ISNUMBER Verifica se la stringa in ingresso può essere convertita in un numero

PGA Conversione di tipi da STRING (NUMBER, ISNUMBER, AXNAME) (Pagina 81)

● ● ● ●

ISOCALL Richiamo indiretto di un programma scritto in linguaggio ISO

PGA Richiamo indiretto di un programma programmato in linguaggio ISO (ISOCALL) (Pagina 216)

● ● ● ●

ISVAR Verifica se il parametro di trasferimento contiene una variabile nota all'NC

PGA Richiamo della funzione ISVAR e lettura dei dati macchina indice dell'array (Pagina 785)

● ● ● ●

J Parametri di interpolazione

PG

s ● ● ● ●

J1 Coordinata punto intermedio

PG

s ● ● ● ●

JERKA Attiva il comportamento all'accelerazione degli assi programmati impostato mediante i dati macchina

● ● ● ●

JERKLIM Riduzione o sopraelevazione dello strappo massimo assiale

PGA Correzione percentuale dello strappo (JERKLIM) (Pagina 563)

m ● ● ● ●

JERKLIMA Riduzione o sopraelevazione dello strappo massimo assiale

PG

m ● ● ● ●

K Parametri di interpolazione

PG

s ● ● ● ●

K1 Coordinata punto intermedio

PG

s ● ● ● ●

KONT Aggiramento del profilo in caso di correzione utensile

PG

m ● ● ● ●

KONTC Accostamento/svincolo con polinomio a curvatura continua

PG

m ● ● ● ●

KONTT Accostamento/svincolo con polinomio a tangente continua

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 867

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

L Numero di sottoprogramma

PGA Richiamo del sottoprogramma senza assegnazione di parametri (Pagina 203)

s ● ● ● ●

LEAD Angolo di anticipo 1. Orientamento dell'utensile 2. Polinomi di orientamento

PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

m ● -

● -

● -

● -

LEADOF Accoppiamento al valore master OFF

PGA Accoppiamento assiale tramite valore master (LEADON, LEADOF) (Pagina 599)

- - - -

LEADON Accoppiamento al valore master ON

PGA Accoppiamento assiale tramite valore master (LEADON, LEADOF) (Pagina 599)

- - - -

LENTOAX Fornisce informazioni sull'assegnazione delle lunghezze utensili L1, L2 e L3 dell'utensile attivo ad ascissa, ordinata e applicata

FB1(W1) ● ● ● ●

LFOF 4) Svincolo rapido per filettatura OFF

PG

m ● ● ● ●

LFON Svincolo rapido per filettatura ON

PG

m ● ● ● ●

LFPOS Svincolo dell'asse dichiarato con POLFMASK o POLFMLIN sulla posizione assoluta dell'asse programmata con POLF.

PG

m ● ● ● ●

LFTXT Il piano del movimento di svincolo rapido viene determinato dalla tangente al profilo e dalla direzione attuale dell'utensile

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 868 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

LFWP Il piano del movimento di svincolo rapido viene determinato dal piano di lavoro attuale (G17/G18/G19)

PG

m ● ● ● ●

LIFTFAST Svincolo rapido PG Svincolo rapido dal profilo (SETINT LIFTFAST, ALF) (Pagina 131)

● ● ● ●

LIMS Limitazione dei giri per G96/G961 e G97

PG

m ● ● ● ●

LLI Limite inferiore delle variabili

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

LN Logaritmo naturale PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

LOCK Bloccare azione sincrona con ID (arresto ciclo tecnologico)

PGA Blocco, sblocco, reset (LOCK, UNLOCK, RESET) (Pagina 724)

● ● ● ●

LONGHOLE Ciclo dima di fresatura asole su cerchio

BHD/BHF - - - -

LOOP Introduzione di un loop senza fine

PGA Loop di programma permanente (LOOP, ENDLOOP) (Pagina 111)

● ● ● ●

M0 Arresto programmato PG

● ● ● ●

M1 Arresto opzionale PG

● ● ● ●

M2 Fine programma principale con reset all'inizio del programma

PG

● ● ● ●

M3 Rotazione destrorsa per il mandrino master

PG

● ● ● ●

M4 Rotazione sinistrorsa per il mandrino master

PG

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 869

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

M5 Arresto mandrino per mandrino master

PG

● ● ● ●

M6 Cambio utensile PG

● ● ● ●

M17 Fine sottoprogramma PG

● ● ● ●

M19 Programmazioni mandrino raccolte con ricerca blocco

PG

● ● ● ●

M30 Fine programma, come M2

PG

● ● ● ●

M40 Cambio gamma automatico

PG

● ● ● ●

M41... M45 Gamma 1, ..., 5 PG

● ● ● ●

M70 Commutazione al funzionamento assi

PG

● ● ● ●

MASLDEF Definisce una configurazione master/slave

PGA Raggruppamento master-/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) (Pagina 629)

● ● ● ●

MASLDEL Interrompe un collegamento master/slave e cancella la definizione di collegamento

PGA Raggruppamento master-/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) (Pagina 629)

● ● ● ●

MASLOF Disinserzione di un accoppiamento temporaneo

PGA Raggruppamento master-/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) (Pagina 629)

● ● ● ●

MASLOFS Disabilitazione di un accoppiamento temporaneo con arresto automatico dell'asse slave

PGA Raggruppamento master-/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) (Pagina 629)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 870 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

MASLON Inserzione di un accoppiamento temporaneo

PGA Raggruppamento master-/slave (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS) (Pagina 629)

● ● ● ●

MATCH Ricerca di una stringa nella stringa

PGA Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) (Pagina 87)

● ● ● ●

MAXVAL Valore inferiore di due variabili (funzione aritmetica)

PGA Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)

● ● ● ●

MCALL Richiamo sottoprogramma modale

PGA Richiamo sottoprogramma modale (MCALL) (Pagina 210)

● ● ● ●

MEAC Misura continua senza cancellazione del percorso residuo

PGA Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione) (Pagina 295)

s - - - -

MEAFRAME Calcolo del frame da punti di misura

PGA Calcolo del frame in base a 3 punti di misura nello spazio (MEAFRAME) (Pagina 335)

● ● ● ●

MEAS Misurazione con tasto a commutazione

PGA Misura con tastatore a commutazione (MEAS, MEAW) (Pagina 292)

s ● ● ● ●

MEASA Misura con cancellazione del percorso residuo

PGA Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione) (Pagina 295)

s - - - -

MEASURE Metodo di calcolo per la misura pezzo e utensile

FB2(M5) Misura con tastatore a commutazione (MEAS, MEAW) (Pagina 292)

● ● ● ●

MEAW Misurazione con tasto a commutazione senza cancellazione del percorso residuo

PGA Misura con tastatore a commutazione (MEAS, MEAW) (Pagina 292)

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 871

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

MEAWA Misura senza cancellazione del percorso residuo

PGA Funzione di misura ampliata (MEASA, MEAWA, MEAC) (opzione) (Pagina 295)

s - - - -

MI Accesso ai dati del Frame: Specularità

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

MINDEX Determinazione di indice di un carattere nella stringa di ingresso

PGA Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) (Pagina 87)

● ● ● ●

MINVAL Valore inferiore di due variabili (funzione aritmetica)

PGA Minimo, massimo e campo delle variabili (MINVAL, MAXVAL e BOUND) (Pagina 75)

● ● ● ●

MIRROR Specularità programmabile

PGA

s ● ● ● ●

MMC Dal programma pezzo richiamare in modo interattivo la finestra di dialogo sull'HMI

PGA Richiamo interattivo della finestra dal partprogram (MMC) (Pagina 790)

● ● ● ●

MOD Divisione modulo PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

MODAXVAL Rilevamento della posizione modulo di un asse rotante modulo

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

MOV Avvio asse di posizionamento

PGA Start/stop asse (MOV) (Pagina 689)

● ● ● ●

MSG Messaggi programmabili PG

m ● ● ● ●

MVTOOL Istruzione per il movimento di un utensile

FBW

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 872 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

N Numero di blocco secondario NC

PG

● ● ● ●

NCK Specifica del campo di validità dei dati

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

NEWCONF Trasferimento dati macchina modificati (corrisponde a "attivazione di un dato macchina")

PGA Attivazione dei dati macchina (NEWCONF) (Pagina 146)

● ● ● ●

NEWT Creazione di un nuovo utensile

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

NORM 4) Impostazione normale nel punto di partenza, punto di arrivo nella correzione utensile

PG

m ● ● ● ●

NOT NOT logico (negazione) PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

NPROT Settore di protezione specifico per la macchina ON/OFF

PGA Attivazione/disattivazione dei settori di protezione (CPROT, NPROT) (Pagina 247)

● ● ● ●

NPROTDEF Definizione di un settore di protezione specifico della macchina

PGA Definizione dei settori di protezione (CPROTDEF, NPROTDEF) (Pagina 243)

● ● ● ●

NUMBER Convertire la stringa di ingresso in numero

PGA Conversione di tipi da STRING (NUMBER, ISNUMBER, AXNAME) (Pagina 81)

● ● ● ●

OEMIPO1 Interpolazione OEM 1 PGA Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829) (Pagina 307)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 873

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

OEMIPO2 Interpolazione OEM 2 PGA Funzioni speciali per l’utente OEM (OEMIPO1, OEMIPO2, G810 ... G829) (Pagina 307)

m ● ● ● ●

OF Parola chiave nella diramazione CASE

PGA Diramazione del programma(CASE ... OF ... DEFAULT ...) (Pagina 97)

● ● ● ●

OFFN Sovrametallo rispetto al profilo programmato

PG

m ● ● ● ●

OMA1 Indirizzo OEM 1 m ● ● ● ● OMA2 Indirizzo OEM 2 m ● ● ● ● OMA3 Indirizzo OEM 3 m ● ● ● ● OMA4 Indirizzo OEM 4 m ● ● ● ● OMA5 Indirizzo OEM 5 m ● ● ● ● OR Operatore logico,

combinazione in OR PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

ORIAXES Interpolazione lineare degli assi macchina o degli assi di orientamento

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIAXPOS Angolo di orientamento tramite assi di orientamento virtuali con posizioni dell'asse rotante

m ● ● ● ●

ORIC 4) Le modifiche di orientamento negli spigoli esterni vengono sovrapposti al blocco circolare da inserire

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 874 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ORICONCCW Interpolazione su una superficie circolare in senso antiorario

PGA/FB3(F3) Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Pagina 380)

m ● ● ● ●

ORICONCW Interpolazione su una superficie circolare in senso orario

PGA/FB3(F4) Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Pagina 380)

m ● ● ● ●

ORICONIO Interpolazione su una superficie circolare con indicazione di un orientamento intermedio

PGA/FB3(F4) Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Pagina 380)

m ● ● ● ●

ORICONTO Interpolazione su una superficie esterna circolare con raccordo tangenziale (indicazione dell'orientamento finale)

PGA/FB3(F5) Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Pagina 380)

m ● ● ● ●

ORICURVE Interpolazione dell'orientamento con preimpostazione del movimento di due punti di contatto dell'utensile

PGA/FB3(F6) Impostazione dell'orientamento di due punti di contatto (ORICURVE, PO[XH]=, PO[YH]=, PO[ZH]=) (Pagina 385)

m ● ● ● ●

ORID Le modifiche dell'orientamento vengono eseguite prima del blocco circolare

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

ORIEULER Angolo di orientamento tramite angolo di Eulero

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 875

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ORIMKS Orientamento utensile nel sistema di coordinate macchina

PGA Riferimento degli assi di orientamento (ORIWKS, ORIMKS) (Pagina 374)

m ● ● ● ●

ORIPATH Orientamento utensile riferito alla traiettoria

PGA Rotazione relativa al percorso dell'orientamento dell'utensile (ORIPATH, ORIPATHS, angolo di rotazione) (Pagina 395)

m ● ● ● ●

ORIPATHS Orientamento dell'utensile riferito al percorso, viene raddrizzata una piega durante l'orientamento

PGA Rotazione relativa al percorso dell'orientamento dell'utensile (ORIPATH, ORIPATHS, angolo di rotazione) (Pagina 395)

m ● ● ● ●

ORIPLANE Interpolazione in un piano (corrisponde a ORIVECT) interpolazione cerchio massimo

PGA Programmazione dell'orientamento lungo una superficie conica (ORIPLANE, ORICONCW, ORICONCCW, ORICONTO, ORICONIO) (Pagina 380)

m ● ● ● ●

ORIRESET Impostazione di base dell'orientamento utensile con max. 3 assi di orientamento

PGA Varianti della programmazione dell'orientamento e della posizione base (ORIRESET) (Pagina 361)

● ● ● ●

ORIROTA Angolo di rotazione in un senso di rotazione preimpostato in modo assoluto

PGA Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Pagina 390)

m ● ● ● ●

ORIROTC Vettore di rotazione tangenziale rispetto alla tangente vettoriale

PGA Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Pagina 390)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 876 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ORIROTR Angolo di rotazione relativo al piano fra orientamento iniziale e finale

PGA Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Pagina 390)

m ● ● ● ●

ORIROTT Angolo di rotazione riferito alla variazione del vettore di orientamento

PGA Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Pagina 390)

m ● ● ● ●

ORIRPY Angolo di orientamento mediante angolo RPY (XYZ)

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIRPY2 Angolo di orientamento mediante angolo RPY (ZYX)

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIS Variazione dell'orientamento

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

ORISOF 4) Spianamento del percorso di orientamento OFF

PGA Spianamento del percorso di orientamento (ORISON, ORISOF) (Pagina 406)

m ● ● ● ●

ORISON Spianamento del percorso di orientamento ON

PGA Spianamento del percorso di orientamento (ORISON, ORISOF) (Pagina 406)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 877

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

ORIVECT Interpolazione del cerchio estesa (identico a ORIPLANE)

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIVIRT1 Angolo di orientamento tramite assi di orientamento virtuali (definizione 1)

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIVIRT2 Angolo di orientamento tramite assi di orientamento virtuali (definizione 1)

PGA Programmazione degli assi di orientamento (ORIAXES, ORIVECT, ORIEULER, ORIRPY, ORIRPY2, ORIVIRT1, ORIVIRT2) (Pagina 377)

m ● ● ● ●

ORIWKS 4) Orientamento utensile nel sistema di coordinate pezzo

PGA Riferimento degli assi di orientamento (ORIWKS, ORIMKS) (Pagina 374)

m ● ● ● ●

OS Pendolamento on/off PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

- - - -

OSB Pendolamento: Punto di partenza

FB2(P5) m - - - -

OSC Livellamento costante dell'orientamento utensile

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

OSCILL Axis: 1 - 3 di incremento PGA Pendolamento controllato da azioni sincrone (OSCILL) (Pagina 738)

m - - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 878 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

OSCTRL Opzione pendolamento PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OSD Raccordare il movimento dell'orientamento utensile impostando la lunghezza di raccordo con SD

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

OSE Punto di arrivo del pendolamento

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OSNSC Pendolamento: Numero passate spegnifiamma

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OSOF 4) Livellamento orientamento utensile OFF

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m ● ● ● ●

OSP1 Pendolamento: punto di inversione sinistro

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OSP2 Pendolamento punto di inversione destro

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 879

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

OSS Livellamento dell'orientamento utensile a fine blocco

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

OSSE Livellamento dell'orientamento utensile a inizio e fine blocco

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

OST Raccordo dell'orientamento utensile mediante impostazione della tolleranza angolare in gradi con DS (scostamento massimo dal valore programmato del percorso di orientamento)

PGA Orientamento dell'utensile (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST) (Pagina 489)

m ● ● ● ●

OST1 Pendolamento: Punto di arresto nel punto di inversione sinistro

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OST2 Pendolamento: Punto di arresto nel punto di inversione destro

PGA Pendolamento asincrono (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) (Pagina 731)

m - - - -

OTOL Tolleranza di orientamento per funzioni compressore, spianamento dell'orientamento e tipi di movimento raccordato

PGA Tolleranza programmabile di profilo/orientamento (CTOL, OTOL, ATOL) (Pagina 566)

- ● - ●

OVR Correzione giri PGA

m ● ● ● ●

OVRA Correzione giri assiale PGA

m ● ● ● ●

OVRRAP Correzione del rapido PGA

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 880 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

P Numero di esecuzioni del sottoprogramma

PGA Numero di ripetizioni del programma (P) (Pagina 208)

● ● ● ●

PAROT Allestimento del sistema di coordinate pezzo sul pezzo

PG

m ● ● ● ●

PAROTOF Disattivazione rotazione frame riferita al pezzo

PG

m ● ● ● ●

PCALL Richiamo di sottoprogrammi con indicazione assoluta del percorso e trasferimento dei parametri

PGA Richiamo sottoprogramma con indicazione del percorso e parametri (PCALL) (Pagina 217)

● ● ● ●

PDELAYOF Punzonatura con ritardo OFF

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

PDELAYON 4) Punzonatura con ritardo ON

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

PHU Unità fisica di una variabile

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

PL 1. B-Spline: Distanza nodo 2. Interpolazione polinomiale: lunghezza dell'intervallo parametri nell'interpolazione polinomiale

PGA 1. Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263) 2. Interpolazione polinomica (POLY, POLYPATH, PO, PL) (Pagina 281)

s - -

○ -

- -

○ -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 881

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

PM al minuto PG

● ● ● ●

PO Coefficiente polinomiale nell'interpolazione polinomiale

PGA Interpolazione polinomica (POLY, POLYPATH, PO, PL) (Pagina 281)

s - - - -

POCKET3 Ciclo di fresatura, tasca rettangolare (qualsiasi fresa)

BHD/BHF

● ● ● ●

POCKET4 Ciclo di fresatura tasca circolare (qualsiasi fresa)

BHD/BHF ● ● ● ●

POLF Posizione di svincolo LIFTFAST

PG/PGA

m ● ● ● ●

POLFA Avvio della posizione di svincolo per assi singoli con $AA_ESR_TRIGGER

PG

m ● ● ● ●

POLFMASK Abilitazione degli assi per lo svincolo senza relazione tra gli assi stessi

PG

m ● ● ● ●

POLFMLIN Abilitazione degli assi per lo svincolo con relazione lineare tra gli assi stessi

PG

m ● ● ● ●

POLY Interpolazione polinomiale

PGA Interpolazione polinomica (POLY, POLYPATH, PO, PL) (Pagina 281)

m - - - -

POLYPATH Interpolazione polinomiale selezionabile per i gruppi di assi AXIS o VECT

PGA Interpolazione polinomica (POLY, POLYPATH, PO, PL) (Pagina 281)

m - - - -

PON Punzonatura ON PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 882 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

PONS Punzonatura ON nel clock IPO

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

POS Posizionamento asse PG

● ● ● ●

POSA Posizionamento asse con condizionamento di fine blocco

PG

● ● ● ●

POSM Posizionamento magazzino

FBW ● ● ● ●

POSP Posizionamento a passi (pendolamento)

PG

● ● ● ●

POSRANGE Determinare se la posizione attuale di riferimento interpolata di un asse si trova in una finestra attinente alla posizione di riferimento predefinita

PGA Posizione nell'intervallo di riferimento predefinito (POSRANGE) (Pagina 688)

● ● ● ●

POT Quadrato (funzione aritmetica)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

PR Per giro PG

● ● ● ●

PREPRO Identificazione di sottoprogrammi con preparazione

PGA Identificazione di sottoprogrammi con preparazione (PREPRO) (Pagina 192)

● ● ● ●

PRESETON Impostazione valore reale per assi programmati

PGA Traslazione del preset (PRESETON) (Pagina 333)

● ● ● ●

PRIO Parola chiave per impostare la priorità nel trattamento degli interrupt

PGA Assegnazione e avvio di routine di interrupt (SETINT, PRIO, BLSYNC) (Pagina 126)

● ● ● ●

PROC Prima istruzione di un programma

PGA Richiamo sottoprogramma con indicazione del percorso e parametri (PCALL) (Pagina 217)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 883

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

PTP Movimento da punto a punto

PGA Movimento cartesiano PTP (Pagina 428)

m ● ● ● ●

PTPG0 Movimento da punto a punto solo con G0, altrimenti CP

PGA PTP con TRANSMIT (Pagina 435)

m ● ● ● ●

PUNCHACC Accelerazione in funzione del percorso nella roditura

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

- - - -

PUTFTOC Correzione utensile fine per diamantatura parallela

PGA Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

● ● ● ●

PUTFTOCF Correzione utensile fine in base ad una funzione stabilita con FCTDEF per diamantatura parallela

PGA Correzione utensile online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) (Pagina 465)

● ● ● ●

PW B-Spline, punto peso PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

s - ○ - ○

QECLRNOF Apprendimento compensazione di errori del quadrante OFF

PGA Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF) (Pagina 788)

● ● ● ●

QECLRNON Apprendimento della compensazione dell'errore del quadrante ON

PGA Apprendimento delle curve di compensazione (QECLRNON, QECLRNOF) (Pagina 788)

● ● ● ●

QU Emissione funzione (ausiliaria) supplementare veloce

PG

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 884 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

R... Parametri di calcolo anche sotto forma di indicatore dell'asse impostabile e con estensione numerica

PGA Variabili utente predefinite: Parametri di calcolo (R) (Pagina 19)

● ● ● ●

RAC Programmazione del raggio assoluta, specifica per asse e blocco-blocco

PG

s ● ● ● ●

RDISABLE Blocco lettura PGA Impostazione del blocco lettura (RDISABLE) (Pagina 667)

● ● ● ●

READ Legge una o più righe dal file indicato e memorizza le informazioni nel campo

PGA Lettura di righe nel file (READ) (Pagina 153)

● ● ● ●

REAL Tipo di dati: Variabile a virgola mobile con segno (numeri reali)

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

REDEF Impostazione per dati macchina, elementi del linguaggio NC e variabili di sistema, con indicazione dei gruppi di utenti in cui vengono visualizzati

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

RELEASE Abilitare gli assi macchina allo scambio assi

PGA Scambio assi, scambio mandrini (RELEASE, GET, GETD) (Pagina 138)

● ● ● ●

REP Parola chiave per l'inizializzazione di tutti gli elementi di un campo con lo stesso valore

PGA Definizione e inizializzazione delle variabili di campo (DEF, SET, REP) (Pagina 48)

● ● ● ●

REPEAT Ripetizione di un loop di programma

PGA Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P) (Pagina 99)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 885

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

REPEATB Ripetizione di una riga di programma

PGA Ripetizione di una parte di programma (REPEAT, REPEATB, ENDLABEL, P) (Pagina 99)

● ● ● ●

REPOSA Riaccostamento al profilo lineare con tutti gli assi

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

REPOSH Riaccostamento al profilo con semicerchio

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

REPOSHA Riaccostamento al profilo con tutti gli assi; assi geometrici in semicerchio

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

REPOSL Riaccostamento al profilo lineare

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

REPOSQ Riaccostamento al profilo in un quarto di cerchio

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

REPOSQA Riaccostamento al profilo lineare con tutti gli assi; assi geometrici in un quarto di cerchio

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

s ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 886 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

RESET Resettare ciclo tecnologico

PGA Blocco, sblocco, reset (LOCK, UNLOCK, RESET) (Pagina 724)

● ● ● ●

RESETMON Istruzione per l'attivazione del valore di riferimento

FBW

● ● ● ●

RET Fine sottoprogramma PGA Ritorno al sottoprogramma parametrizzabile (RET ...) (Pagina 195)

● ● ● ●

RIC Programmazione del raggio relativa, specifica per asse e blocco-blocco

PG Scambio assi, scambio mandrini (RELEASE, GET, GETD) (Pagina 138)

s ● ● ● ●

RINDEX Determinazione di indice di un carattere nella stringa di ingresso

PGA Ricerca carattere/stringa all'interno di una stringa (INDEX, RINDEX, MINDEX, MATCH) (Pagina 87)

● ● ● ●

RMB Riaccostamento al punto di partenza del blocco

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

m ● ● ● ●

RME Riaccostamento al punto di arrivo del blocco

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

m ● ● ● ●

RMI 4) Riaccostamento al punto di interruzione

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 887

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

RMN Riaccostamento al punto del percorso più vicino

PGA Riaccostamento al profilo (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN) (Pagina 553)

m ● ● ● ●

RND Raccordo spigoli PG

s ● ● ● ●

RNDM Arrotondamento modale PG

m ● ● ● ●

ROT Rotazione programmabile PG

s ● ● ● ●

ROTS Rotazioni frame programmabili con angoli solidi

PG

s ● ● ● ●

ROUND Arrotondare le cifre decimali

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

ROUNDUP Arrotondamento del valore di immissione

PGA Arrotondamento (ROUNDUP) (Pagina 164)

● ● ● ●

RP Raggio polare PG

m/s ● ● ● ●

RPL Rotazione nel piano PG

s ● ● ● ●

RT Parametro per l'accesso ai dati del Frame: Rotazione

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

RTLIOF G0 senza interpolazione lineare (interpolazione ad asse singolo)

PG

m ● ● ● ●

RTLION G0 con interpolazione lineare

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 888 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

S Giri del mandrino oppure (per G4, G96/G961 altro significato)

PG

m/s ● ● ● ●

SAVE Attributo per salvare informazioni in richiami di sottoprogrammi

PGA Salvataggio delle funzioni G modali (SAVE) (Pagina 178)

● ● ● ●

SBLOF Soppressione blocco singolo

PGA Soppressione esecuzione blocco singolo (SBLOF, SBLON): (Pagina 180)

● ● ● ●

SBLON Soppressione blocco singolo

PGA Soppressione esecuzione blocco singolo (SBLOF, SBLON): (Pagina 180)

● ● ● ●

SC Parametro per l'accesso ai dati del Frame: Fattore di scala

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

SCALE Fattore di scala programmabile

PG

s ● ● ● ●

SCC Assegnazione selettiva di un asse radiale a G96/G961/G962. Possono essere identificatori dell'asse gli assi geometrici, di canale o di macchina.

PG

● ● ● ●

SCPARA Programmazione blocco parametri servo

PGA Blocco parametri servo programmabile (SCPARA) (Pagina 313)

● ● ● ●

SD Grado della Spline PGA Interpolazione spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL) (Pagina 263)

s - ○ - ○

SEFORM Istruzione di strutturazione nell'editor Step per generare la visualizzazione dei passi per HMI Advanced

PGA Istruzione di strutturazione nell'editor Step (SEFORM) (Pagina 242)

● ● ● ●

SET Parola chiave per l'inizializzazione di tutti gli elementi di un campo con i valori elencati

PGA Definizione e inizializzazione delle variabili di campo (DEF, SET, REP) (Pagina 48)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 889

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

SETAL Impostazione dell'allarme PGA Allarme (SETAL) (Pagina 798)

● ● ● ●

SETDNO Assegnazione del numero D del tagliente (CE) di un utensile (T)

PGA Assegnazione libera dei numeri D: Modifica dei nomi dei numeri D (GETDNO, SETDNO) (Pagina 499)

● ● ● ●

SETINT Determinazione della routine di interrupt che deve essere attivata se un ingresso NCK è in attesa

PGA Assegnazione e avvio di routine di interrupt (SETINT, PRIO, BLSYNC) (Pagina 126)

● ● ● ●

SETM Impostazione di marker nel proprio canale

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

SETMS Ritorno al mandrino master definito nel dato macchina

● ● ● ●

SETMS (n) Mandrino n deve fungere da mandrino master

PG

● ● ● ●

SETMTH Impostazione del numero portautensile master

FBW ● ● ● ●

SETPIECE Verificare il numero di pezzi per tutti gli utensili abbinati al mandrino

FBW ● ● ● ●

SETTA Impostare attivo l'utensile del gruppo di usura

FBW ● ● ● ●

SETTCOR Modifica dei componenti utensili tenendo conto di tutte le condizioni limite

FB1(W1) ● ● ● ●

SETTIA Impostare inattivo l'utensile del gruppo di usura

FBW ● ● ● ●

SF Traslazione del punto di partenza per la filettatura

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 890 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

SIN Seno (funzione trigonometrica)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

SIRELAY Attivazione delle funzioni di sicurezza parametrizzate con SIRELIN, SIRELOUT e SIRELTIME

FBSI ● ● ● ●

SIRELIN Inizializzazione delle grandezze d'ingresso del blocco funzionale

FBSI ● ● ● ●

SIRELOUT Inizializzazione delle grandezze d'uscita del blocco funzionale

FBSI ● ● ● ●

SIRELTIME Inizializzazione del timer del blocco funzionale

FBSI ● ● ● ●

SLOT1 Ciclo dima di fresatura, cave su cerchio

BHD/BHF ● ● ● ●

SLOT2 Ciclo dima di fresatura cava circolare

BHD/BHF ● ● ● ●

SOFT Accelerazione vettoriale con antistress

PG

m ● ● ● ●

SOFTA Inserire l'accelerazione con funzione antistress per gli assi programmati

PG

● ● ● ●

SON Roditura ON PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

SONS Roditura ON nel clock IPO

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 891

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

SPATH 4) Il riferimento di percorso per gli assi FGROUP è la lunghezza dell'arco

PGA Riferimento vettoriale impostabile, (SPATH, UPATH) (Pagina 288)

m ● ● ● ●

SPCOF Commutazione mandrino master opp. mandrino/i da regolazione in posizione a regolazione in velocità

PG

m ● ● ● ●

SPCON Commutazione mandrino master opp. mandrino/i da regolazione in velocità a regolazione in posizione

PGA

m ● ● ● ●

SPI Converte il numero di mandrino in identificatore asse

PGA Funzioni per gli assi (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL) (Pagina 765)

● ● ● ●

SPIF1 4) Ingressi/uscite NCK veloci per punzonatura/roditura byte 1

FB2(N4) m - - - -

SPIF2 Ingressi/uscite NCK veloci per punzonatura/roditura byte 2

FB2(N4) m - - - -

SPLINEPATH Definizione del raggruppamento Spline

PGA Raggruppamento spline (SPLINEPATH) (Pagina 276)

- ○ - ○

SPN Numero dei tratti di percorso per blocco

PGA Preparazione automatica del percorso (Pagina 754)

s - - - -

SPOF 4) Tranciatura OFF, punzonatura, roditura OFF

PGA Attivazione o disattivazione di punzonatura e roditura (SPOF, SON, PON, SONS, PONS, PDELAYON, PDELAYOF, PUNCHACC) (Pagina 747)

m - - - -

SPOS Posizione del mandrino PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 892 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

SPOSA Posizione del mandrino oltre limiti di blocco

PG

m ● ● ● ●

SPP Lunghezza di un tratto di percorso

PGA Preparazione automatica del percorso (Pagina 754)

m - - - -

SQRT Radice quadrata (funzione aritmetica) (square root)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

SR Percorso di svincolo con pendolamento per azione sincrona

PG

s - - - -

SRA Percorso di svincolo con pendolamento per ingresso esterno assiale per azione sincrona

PG

m - - - -

ST Tempo di spegnifiamma per pendolamento per azione sincrona

PG

s - - - -

STA Tempo di spegnifiamma per pendolamento assiale per azione sincrona

PG

m - - - -

START Avvio dei programmi selezionati in più canali contemporaneamente, dal programma in corso

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

STARTFIFO 4) Elaborazione; parallelamente riempimento della memoria di preelaborazione

PGA Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Pagina 540)

m ● ● ● ●

STAT Posizione dei giunti PGA Movimento cartesiano PTP (Pagina 428)

s ● ● ● ●

STOPFIFO Arresto dell'elaborazione; riempimento della memoria di preelaborazione fino al riconoscimento di STARTFIFO, memoria di preelaborazione piena oppure fine programma

PGA Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Pagina 540)

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 893

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

STOPRE Stop preelaborazione fino ad esecuzione avvenuta di tutti i blocchi preelaborati dell'esecuzione principale

PGA Esecuzione del programma con memoria di preelaborazione (STOPFIFO, STARTFIFO, FIFOCTRL, STOPRE) (Pagina 540)

● ● ● ●

STOPREOF Eliminare il blocco preelaborazione

PGA Disattivazione stop preelaborazione (STOPREOF) (Pagina 668)

● ● ● ●

STRING Tipo di dati: Stringa di caratteri

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

STRINGFELD Selezione di un singolo carattere del campo String programmato

PGA Selezione di una singola stringa (STRINGVAR, STRINGFELD) (Pagina 90)

● ● ● ●

STRINGIS Verifica il set di istruzioni del linguaggio NC e in particolare per questo comando i nomi dei cicli NC, le variabili utente, le macro e i nomi di label, per accertarsi che questi esistano, siano validi, definiti o attivi.

PGA Verifica del set di istruzioni del linguaggio NC presente (STRINGIS) (Pagina 778)

● ● ● ●

STRINGVAR Selezione di un singolo carattere del campo String programmato String

PGA Selezione di una singola stringa (STRINGVAR, STRINGFELD) (Pagina 90)

- - - -

STRLEN Determinazione lunghezza di una stringa

PGA Determinazione della lunghezza di una stringa (STRLEN) (Pagina 86)

● ● ● ●

SUBSTR Determinazione di indice di un carattere nella stringa di ingresso

PGA Selezione di una stringa parziale (SUBSTR) (Pagina 89)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 894 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

SUPA Soppressione dello spostamento origine attuale, incluse le traslazioni programmate, i frame di sistema, le traslazioni DRF, lo spostamento origine esterno e movimento sovrapposto

PG

s ● ● ● ●

SVC Velocità di taglio utensile PG

m ● ● ● ●

SYNFCT Valutazione di un polinomio in funzione di una condizione nell'azione sincrona al movimento

PGA Funzione sincrona (SYNFCT) (Pagina 674)

● ● ● ●

SYNR La lettura della variabile avviene in modo sincrono, ovvero al momento dell'elaborazione

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

SYNRW La lettura e la scrittura della variabile avvengono in modo sincrono, ovvero al momento dell'elaborazione

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

SYNW La scrittura della variabile avviene in modo sincrono, ovvero al momento dell'elaborazione

PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

T Richiamo utensile (cambio solo se definito nel dato macchina, altrimenti è necessario il comando M6)

PG

● ● ● ●

TAN Tangente (funzione trigonometrica)

PGA Funzioni di calcolo (Pagina 67)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 895

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TANG Definizione del gruppo d'assi Inseguimento tangenziale

PGA Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) (Pagina 525)

- - - -

TANGDEL Cancellazione della definizione del gruppo d'assi Inseguimento tangenziale

PGA Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) (Pagina 525)

- - - -

TANGOF Inseguimento tangenziale OFF

PGA Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) (Pagina 525)

- - - -

TANGON Inseguimento tangenziale ON

PGA Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) (Pagina 525)

- - - -

TCA Selezione utensile/ cambio utensile indipendente dallo stato dell'utensile

FBW ● ● ● ●

TCARR Richiedere portautensile (numero "m")

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

- ● - ●

TCI Sostituzione utensile da memoria intermedia al magazzino

FBW ● ● ● ●

TCOABS4) Determinazione componenti della lunghezza utensile dall'orientamento utensile attuale

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

m - ● - ●

TCOFR Determinazione componenti lunghezza utensile da orientamento del frame attuale

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

m - ● - ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 896 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TCOFRX Nella scelta di un utensile definizione dell'orientamento utensile di un frame attivo, utensile nella direzione di X

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

m - ● - ●

TCOFRY Nella scelta di un utensile definizione dell'orientamento utensile di un frame attivo, utensile nella direzione di Y

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

m - ● - ●

TCOFRZ Nella scelta di un utensile definizione dell'orientamento utensile di un frame attivo, utensile nella direzione di Z

PGA Correzione della lunghezza utensile per portautensili orientabili (TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ) (Pagina 510)

m - ● - ●

THETA Angolo di rotazione PGA Rotazioni dell'orientamento utensile (ORIROTA, ORIROTR, ORIROTT, ORIROTC, THETA) (Pagina 390)

s ● ● ● ●

TILT Angolo laterale PGA Programmazione dell'orientamento utensile (A..., B..., C..., LEAD, TILT) (Pagina 364)

m ● ● ● ●

TLIFT Per il controllo tangenziale, inserimento blocco intermedio sugli spigoli del profilo

PGA Controllo tangenziale (TANG, TANGON, TANGOF, TLIFT, TANGDEL) (Pagina 525)

- - - -

TMOF Disattivazione della sorveglianza utensile

PGA Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF) (Pagina 761)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 897

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TMON Selezione sorveglianza utensili

PGA Sorveglianza utensili per rettifica nel partprogram (TMON, TMOF) (Pagina 761)

● ● ● ●

TO Definisce il valore finale in un loop di conteggio FOR

PGA Loop con conteggio (FOR ... TO ..., ENDFOR) (Pagina 112)

● ● ● ●

TOFF Offset della lunghezza utensile in direzione del componente della lunghezza utensile, che agisce parallelamente all'asse geometrico specificato nell'indice.

PG

m ● ● ● ●

TOFFL Offset della lunghezza utensile in direzione del componente della lunghezza utensile L1, L2 o L3

PG

m ● ● ● ●

TOFFOF Resettare la correzione della lunghezza utensile on line

PGA Correzione della lunghezza utensile on line (TOFFON, TOFFOF) (Pagina 514)

● ● ● ●

TOFFON Attivazione correzione online della lunghezza utensile

PGA Correzione della lunghezza utensile on line (TOFFON, TOFFOF) (Pagina 514)

● ● ● ●

TOFFR Offset del raggio utensile PG

m ● ● ● ●

TOFRAME Allineamento dell'asse Z dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

TOFRAMEX Allineamento dell'asse X dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 898 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TOFRAMEY Allineamento dell'asse Y dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

TOFRAMEZ come TOFRAME PG

m ● ● ● ●

TOLOWER Convertire tutte le lettere della stringa di ingresso in lettere minuscole

PGA Conversione in lettere minuscole/maiuscole (TOLOWER, TOUPPER) (Pagina 85)

● ● ● ●

TOOLENV Salvataggio di tutti gli stati attuali rilevanti ai fini della valutazione dei dati utensili memorizzati

FB1(W1)

● ● ● ●

TOROT Allineamento dell'asse Z dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

TOROTOF Rotazioni frame in direzione dell'utensile OFF

PG

m ● ● ● ●

TOROTX Allineamento dell'asse X dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

TOROTY Allineamento dell'asse Y dell'SCP mediante rotazione frame parallelamente all'orientamento utensile

PG

m ● ● ● ●

TOROTZ come TOROT PG

m ● ● ● ●

TOUPPER Convertire tutte le lettere della stringa di ingresso in lettere maiuscole

PGA Conversione in lettere minuscole/maiuscole (TOLOWER, TOUPPER) (Pagina 85)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 899

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TOWBCS Valori di usura nel sistema di coordinate base (SCB)

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

TOWKCS Valori di usura nel sistema di coordinate della testa dell'utensile con trasformazione cinetica (differisce dal SCM per la rotazione dell'utensile)

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

TOWMCS Valori di usura nel sistema di coordinate della macchina (SCM)

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

TOWSTD Valore di posizione base per le correzioni della lunghezza utensile

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

TOWTCS Valori di usura nel sistema di coordinate utensile (punto di riferimento del portautensili T nel suo punto di innesto)

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

TOWWCS Valori di usura nel sistema di coordinate del pezzo (SCP)

PGA Sistema di coordinate della lavorazione attiva (TOWSTD, TOWMCS, TOWWCS, TOWBCS, TOWTCS, TOWKCS) (Pagina 460)

m - ● - ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 900 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TR Componente di traslazione di una variabile Frame

PGA Leggere e modificare le componenti frame (TR, FI, RT, SC, MI) (Pagina 326)

● ● ● ●

TRAANG Trasformazione per asse inclinato

PGA Asse inclinato (TRAANG) (Pagina 422)

- - ○ -

TRACON Trasformazione concatenata

PGA Trasformazioni concatenate (TRACON, TRAFOOF) (Pagina 443)

- - ○ -

TRACYL Cilindro: trasformazione superficie del cilindro

PGA Trasformazione della superficie esterna del cilindro (TRACYL) (Pagina 412)

○ ○ ○ ○

TRAFOOF Disattivazione delle trasformazioni attive nel canale

PGA Trasformazioni concatenate (TRACON, TRAFOOF) (Pagina 443)

● ● ● ●

TRAILOF Trascinamento asincrono asse OFF

PGA Trascinamento (TRAILON, TRAILOF) (Pagina 571)

● ● ● ●

TRAILON Trascinamento asincrono asse ON

PGA Trascinamento (TRAILON, TRAILOF) (Pagina 571)

● ● ● ●

TRANS Traslazione programmabile

PG

s ● ● ● ●

TRANSMIT Trasformazione polare (lavorazione della superficie frontale)

PGA Fresatura su pezzi torniti (TRANSMIT) (Pagina 409)

○ ○ ○ ○

TRAORI Trasformazione a 4, 5 assi, trasformazione generica

PGA Trasformazione a tre, quattro e cinque assi (TRAORI) (Pagina 359)

- ● - ●

TRUE Costante logica: vero PGA Definizione di variabili utente (DEF) (Pagina 24)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 901

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

TRUNC Esclusione delle cifre decimali

PGA Correttore di precisione in caso di errori di confronto (TRUNC) (Pagina 73)

● ● ● ●

TU Angolo asse PGA Movimento cartesiano PTP (Pagina 428)

s ● ● ● ●

TURN Numero di spire per l'interpolazione elicoidale

PG

s ● ● ● ●

ULI Limite superiore delle variabili

PGA Attributo: valori limite (LLI, ULI) (Pagina 38)

● ● ● ●

UNLOCK Abilitare azione sincrona con ID (continuare ciclo tecnologico)

PGA Blocco, sblocco, reset (LOCK, UNLOCK, RESET) (Pagina 724)

● ● ● ●

UNTIL Condizione per la conclusione di un loop REPEAT

PGA Loop di programma con condizione all'inizio del loop (WHILE, ENDWHILE) (Pagina 114)

● ● ● ●

UPATH Il riferimento di percorso per gli assi FGROUP è il parametro della curva

PGA Riferimento vettoriale impostabile, (SPATH, UPATH) (Pagina 288)

m ● ● ● ●

VAR Parola chiave: tipo di trasferimento dei parametri

PGA Richiamo del sottoprogramma con assegnazione di parametri (EXTERN) (Pagina 205)

● ● ● ●

VELOLIM Riduzione di una sopraelevazione della velocità massima assiale

PGA Correzione percentuale della velocità (VELOLIM) (Pagina 564)

m ● ● ● ●

VELOLIMA Riduzione o sopraelevazione della velocità massima assiale

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 902 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

WAITC Attesa finché non è soddisfatto il criterio di cambio blocco di accoppiamento per gli assi/mandrini

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - ○ -

WAITE Attesa della fine del programma in un altro canale.

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

WAITM Attesa del marker nel canale specificato; terminare il blocco precedente con arresto preciso.

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

WAITMC Attesa del marker nel canale indicato; arresto preciso solo se gli altri canali non hanno ancora raggiunto il marker.

PGA Coordinamento dei programmi (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM) (Pagina 117)

- - - -

WAITP Attesa di fine posizionamento

PG

● ● ● ●

WAITS Attesa raggiungimento posizione mandrino

PG

● ● ● ●

WALCS0 Limitazione del campo di lavoro WKS selezionata

PG

m ● ● ● ●

WALCS1 Gruppo di limitazione 1 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS2 Gruppo di limitazione 2 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS3 Gruppo di limitazione 3 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS4 Gruppo di limitazione 4 del campo di lavoro WKS attivo

PG

m ● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 903

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

WALCS5 Gruppo di limitazione 5 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS6 Gruppo di limitazione 6 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS7 Gruppo di limitazione 7 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS8 Gruppo di limitazione 8 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS9 Gruppo di limitazione 9 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALCS10 Gruppo di limitazione 10 del campo di lavoro WKS attivo

PG

m ● ● ● ●

WALIMOF Limitazione campo di lavoro SCB OFF

PG

m ● ● ● ●

WALIMON 4) Limitazione campo di lavoro SCB ON

PG

m ● ● ● ●

WHEN L'azione viene eseguita ciclicamente quando la condizione è soddisfatta.

PGA Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY) (Pagina 640)

● ● ● ●

WHENEVER L'azione viene eseguita quando la condizione è soddisfatta.

PGA Verifica ciclica della condizione (WHEN, WHENEVER, FROM, EVERY) (Pagina 640)

● ● ● ●

WHILE Inizio del loop di programma WHILE

PGA Loop di programma con condizione all'inizio del loop (WHILE, ENDWHILE) (Pagina 114)

● ● ● ●

Tabelle 16.1 Lista istruzioni

Preparazione del lavoro 904 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Istruzione Significato Descrizione, vedere 1) W 2) 828D 3) PPU260/261 - - - PPU280/281 D - - - - - F - - - - - D - - - - - F

WRITE Scrivere testo nel file system. Inserisce un blocco alla fine del file indicato.

PGA Scrittura del file (WRITE) (Pagina 147)

● ● ● ●

WRTPR Ritarda l'ordine di lavorazione senza interrompere il funzionamento continuo

● ● ● ●

X Nome degli assi PG

m/s ● ● ● ●

XOR OR logico esclusivo PGA Operazioni logiche e di confronto (Pagina 70)

● ● ● ●

Y Nome degli assi PG

m/s ● ● ● ●

Z Nome degli assi PG

m/s ● ● ● ●

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 905

A Appendice AA.1 A.1 Elenco delle abbreviazioni A Uscita AS Sistema d'automazione ASCII American Standard Code for Information Interchange: Codice standard americano

per lo scambio di informazioni ASIC Application Specific Integrated Circuit: circuito integrato per applicazione specifica ASUP Sottoprogramma asincrono AV Preparazione del lavoro AWL Lista istruzioni BA Modo operativo BAG Gruppi di modi operativi BB Pronto al funzionamento BCD Binary Coded Decimals: numeri decimali codificati in codice binario BHG Tastiera operativa manuale BIN File binari (Binary Files) BIOS Basic Input Output System BKS Sistema di coordinate base BOF Superficie operativa BOT Boot Files: File di avvio per SIMODRIVE 611 digitale BT Pannello operatore BTSS Interfaccia pannello operatore BuB, B&B Servizio e supervisione CAD Computer-Aided Design: progettazione supportata da computer CAM Computer-Aided Manufacturing: produzione supportata da computer CNC Computerized Numerical Control: Controllo numerico computerizzato Codice EIA Codice speciale per nastro perforato, il numero di buchi per carattere è sempre

dispari Codice ISO Codice speciale per nastro perforato, il numero di fori per carattere è sempre pari COM Communication CP Processore di comunicazione CPU Central Processing Unit: unità di elaborazione centrale CR Carriage Return CRT Cathode Ray Tube: tubo catodico CSB Central Service Board: scheda PLC CTS Clear To Send: messaggio di pronto per invio con interfacce dati seriali CUTOM Cutter radius compensation: Correzione raggio utensile

Appendice A.1 Elenco delle abbreviazioni

Preparazione del lavoro 906 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

DAU DAC (convertitore analogico-digitale) DB Blocco dati nel PLC DBB Byte nel blocco dati nel PLC DBW Parola nel blocco dati nel PLC DBX Bit nel blocco dati nel PLC DC Direct Control: movimento dell’asse rotante verso la posizione assoluta nell'ambito di

un giro attraverso il percorso più breve DCD Carrier Detect DDE Dynamic Data Exchange: scambio dati automatico DEE Terminale per dati DIN Norme industriali tedesche DIO Data Input/Output: visualizzazione trasmissione dati DIR Directory DLL Dynamic Link Library DOE Apparecchio per la trasmissione di dati DOS Disk Operating System DPM Dual Port Memory: memoria a doppio accesso DPR Dual-Port-RAM: memoria di scrittura/lettura a doppio accesso DRAM Dynamic Random Access Memory: memoria di scrittura/lettura dinamica DRF Differential Resolver Function: funzione resolver differenziale (volantino) DRY Dry Run: Avanzamento per ciclo di prova DSB Decoding Single Block: decodifica blocco singolo DW Parola dati E Ingresso E/A Immissione/emissione E/R Unità di alimentazione/recupero (alimentatore) del

SIMODRIVE 611 digitale ENC Encoder: trasduttore di posizione EPROM Erasable Programmable Read Only Memory (memoria di lettura cancellabile e

programmabile elettricamente) ERROR Error from printer FB Blocco funzionale FBS Schermo piatto FC Function Call: blocco funzionale (nel PLC) FDB Banca dati dei prodotti FDD Floppy Disk Drive: unità a dischetti FEPROM Flash-EPROM: memoria di lettura e scrittura

Appendice A.1 Elenco delle abbreviazioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 907

FIFO First in First Out: memoria che lavora senza indicazione dell'indirizzo e nella quale i dati vengono letti nella stessa sequenza in cui sono stati salvati.

FIPO Interpolatore fine FM Modulo funzionale FPU Floating Point Unit: unità a virgola mobile FRA Blocco frame FRAME Gruppo di dati (cumulativi) FRK Correzione raggio (CRF) FST Feed Stop: stop avanzamento FUP Schema funzionale (metodo di programmazione per il PLC) GP Programma base GUD Global User Data: Dati utente globali HD Hard Disk: Disco rigido HEX Acronimo per valore esadecimale HiFu Funzione ausiliaria HMI Human Machine Interface: funzionalità del SINUMERIK per operatività,

programmazione e simulazione. HMS Sistema di misura ad alta risoluzione HSA Azionamento mandrino principale HW Hardware IBN Messa in servizio IF Abilitazione impulsi per il modulo di azionamento IK (GD) Comunicazione implicita (dati globali) IKA Interpolative Compensation: Compensazione interpolatoria IM Interface-Modul: scheda d'interfaccia IMR Interface-Modul Receive: scheda d’interfaccia per la ricezione IMS Interface-Modul Send: scheda d’interfaccia per la trasmissione INC Increment: Quota incrementale INI Initializing Data: Dati di inizializzazione IPO Interpolatore ISA International Standard Architecture ISO International Standard Organization JOG Jogging: messa a punto K1 .. K4 Canale da 1 a 4 K-Bus Bus di comunicazione KD Rotazione delle coordinate KOP Schema a contatti (metodo di programmazione per il PLC) KÜ Rapporto di trasmissione Kv Fattore di guadagno dell'anello

Appendice A.1 Elenco delle abbreviazioni

Preparazione del lavoro 908 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

LCD Liquid Crystal Display: display a cristalli liquidi LED Light-Emitting Diode: indicatore a diodi luminosi LF Line Feed LMS Sistema di misura della posizione LR Regolatore di posizione LUD Local User Data MB Megabyte MD Dati macchina MDA Manual Data Automatic: immissione manuale MK Circuito di misura MLFB Numero di ordinazione del materiale MPF Main Program File: partprogram NC (programma principale) MPI Multi Point Interface: interfaccia multipoint MS- Microsoft (produttore del software) MSTT Pulsantiera di macchina NC Numerical Control: controllo numerico NCK Numerical Control Kernel: nucleo numerico con preparazione blocco, campo di

posizionamento, ecc. NCU Numerical Control Unit: unità hardware dell’NCK NRK Denominazione del sistema operativo dell’NCK NST Segnale di interfaccia NURBS Non Uniform Rational B-Spline NV Spostamento origine OB Blocco organizzativo (nel PLC) OEM Original Equipment Manufacturer: costruttore i cui prodotti vengono venduti con il

nome di altre società OP Operation Panel: pannello operativo OPI Operation Panel Interface: interfaccia pannello operativo OPT Options: opzioni OSI Open Systems Interconnection: Standard per la comunicazione fra computer P-Bus Bus di periferia PC Personal Computer PCIN Nome del SW per lo scambio dati con il controllo numerico PCMCIA Personal Computer Memory Card International Association: standard per le schede

di memoria ad innesto PCU PC Unit: PC-Box (unità di calcolo) PG Console de programmation PLC Programmable Logic Control: controllore programmabile POS ...di posizionamento

Appendice A.1 Elenco delle abbreviazioni

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 909

RAM Random Access Memory: memoria programmabile per lettura e scrittura REF Funzione di ricerca del punto di riferimento REPOS Funzione di riposizionamento RISC Reduced Instruction Set Computer: tipo di processore con set di istruzioni ridotto e

esecuzione rapida del comando ROV Rapid Override: ovveride del rapido RPA R-Parameter Active: area di memoria nell'NCK

per R NCK per numeri di parametri R RPY Roll Pitch Yaw: rotazione di un sistema di coordinate RTS Request To Send: attivazione del dispositivo di trasmissione, segnale di comando

dalle interfacce dati seriali SBL Single Block: Blocco singolo SCM Sistema di coordinate macchina SCP Sistema di coordinate pezzo SD Dati di setting SDB Blocco dati di sistema SEA Setting Data Active: identificatore (tipo di file) per dati di setting SFB Blocco funzionale di sistema SFC System Function Call: richiamo di funzione per sistema SK Softkey SKP Skip: esclusione blocco SM Motore passo-passo SPF Sub Program File: Sottoprogramma SPS Controllore programmabile (PLC) SRAM Memoria statica (tamponata) SRK Correzione raggio tagliente (CRT) SSFK Compensazione errore passo vite (CEPV) SSI Serial Synchron Interface: interfaccia seriale sincrona SW Software SYF System Files: file di sistema TEA Testing Data Active: codice per i dati macchina TO Tool Offset: Correzione utensile TOA Tool Offset Active: identificatore (tipo di file) per correzioni utensile TRANSMIT Transform Milling into Turning: commutazione di coordinate nei torni per lavorazione

di fresatura UFR User Frame: Spostamento origine UP Sottoprogramma V.24 Interfaccia seriale (definizione dei collegamenti di scambio tra DEE e DÜE) VSA Azionamento assi

Appendice A.1 Elenco delle abbreviazioni

Preparazione del lavoro 910 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

WKZ Utensile WLK Correzione lunghezza utensile (CLU) WOP Programmazione di officina WPD Work Piece Directory: Directory dei pezzi WRK Correzione del raggio utensile (CRU) WZK Correzione utensile WZW Cambio utensile ZOA Zero Offset Active: identificatore (tipo di file) per i dati di spostamento del punto zero µC Microcontrollore

Appendice A.2 Feedback sulla documentazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 911

A.2 A.2 Feedback sulla documentazione Il presente documento viene esaminato e migliorato costantemente per qualità e semplicità d'uso. Vi chiediamo pertanto di inviarci le Vostre annotazioni e proposte di miglioramento per E-Mail oppure Fax a: E-Mail: mailto:[email protected] Fax: +49 9131 - 98 2176

Utilizzate per favore il modello di Fax presente sulla parte posteriore della pagina.

Appendice A.2 Feedback sulla documentazione

Preparazione del lavoro 912 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Appendice A.3 Panoramica della documentazione

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 913

A.3 A.3 Panoramica della documentazione

Appendice A.3 Panoramica della documentazione

Preparazione del lavoro 914 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 915

Glossario

Accelerazione con antistress meccanico Per realizzare un comportamento di accelerazione ottimale sulla macchina rendendo più docili i movimenti, è possibile differenziare nel programma di lavoro tra accelerazione a gradino e accelerazione con variazione continua (senza stress).

Accostamento di un punto fisso Le macchine utensili possono raggiungere dei punti fissi, come punti di cambio utensile, punti di carico, punti di cambio, ecc. Le coordinate di questi punti vengono inserite nel controllo numerico. Il controllo numerico muove gli assi interessati, possibilmente in → rapido.

Allarmi Tutti → gli allarmi e messaggi vengono visualizzati in chiaro sul pannello operatore con data e ora e con il corrispondente simbolo che rappresenta il criterio di tacitazione. La visualizzazione di allarmi e messaggi avviene separatamente. 1. Allarmi e messaggi nel programma pezzo

Allarmi e messaggi della macchina possono essere visualizzati con testo in chiaro direttamente dal programma pezzo.

2. Allarmi e messaggi da PLC Allarmi e messaggi della macchina possono essere visualizzati con testo in chiaro attraverso il programma PLC. Per fare questo non sono necessari ulteriori pacchetti di blocchi funzionali.

Archiviazione Trasferire i file e/o le directory su un dispositivo di backup esterno.

Arresto orientato del mandrino Arresto del mandrino portapezzo in una posizione angolare preimpostata, ad. es. per poter eseguire una lavorazione supplementare in una determinata posizione.

Glossario

Preparazione del lavoro 916 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Arresto preciso Se si programma l'istruzione di arresto preciso, la posizione indicata nel blocco viene raggiunta con precisione ed eventualmente molto lentamente. Per ridurre i tempi di accostamento, vengono definite le → soglie di arresto preciso per rapido e avanzamento.

Asse base Asse il cui valore programmato o valore reale viene preso in considerazione per il calcolo di un valore di compensazione.

Asse C Asse che gestisce il movimento rotativo e il posizionamento utilizzando il mandrino portapezzo.

Asse di comando L'asse di comando è l'asse → Gantry che è disponibile dalla vista dell'operatore e del programmatore e che di conseguenza è influenzabile come un normale asse NC.

Asse di compensazione Asse il cui valore richiesto o reale viene modificato dal valore di compensazione.

Asse di posizionamento Asse che esegue un movimento ausiliario della macchina utensile (ad es. magazzino utensili, trasporto pallet). Gli assi di posizionamento sono assi che non interpolano con gli → assi interpolanti.

Asse geometrico Gli assi geometrici servono a descrivere un settore bi- o tridimensionale nel sistema di coordinate del pezzo.

Asse lineare Gli assi lineari sono tutti quegli assi di lavoro del → canale gestiti dall' → interpolatore in modo tale che partano, accelerino, si arrestino e raggiungano il punto di arrivo contemporaneamente. L'asse lineare è un asse che, a differenza di un asse rotante, descrive una retta.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 917

Asse rotante Gli assi rotanti provocano una rotazione del pezzo o dell’utensile in una posizione angolare predefinita. Gli assi rotanti eseguono una rotazione del pezzo o dell’utensile in una posizione angolare corrispondente al reticolo di divisione. Una volta raggiunta una determinata divisione, l’asse rotante è “in posizione”.

Asse sincrono L'asse sincrono è l'asse → Gantry la cui posizione di riferimento è sempre derivata dal movimento dell'→ asse di comando e viene quindi traslata in modo sincrono. Dalla vista dell'operatore e del programmatore l'asse sincrono "non è disponibile".

Assi In base alla loro funzione, gli assi CNC vengono suddivisi in: ● Assi: assi di interpolazione lineari ● assi ausiliari: assi di posizionamento e assi ausiliari non interpolanti con avanzamenti

specifici. Gli assi ausiliari non partecipano alla lavorazione vera e propria, per es. navetta utensili, magazzino utensili.

Assi macchina Assi fisicamente esistenti sulla macchina utensile.

Assi sincroni Per compiere il loro percorso gli assi sincroni necessitano dello stesso tempo degli assi geometrici per il percorso di contornitura.

Automatico Modo operativo del controllo numerico (funzionamento continuo secondo DIN): Modo operativo per i sistemi NC, nel quale un → programma pezzo viene selezionato ed elaborato in modo continuo.

Avanzamento reciproco nel tempo In SINUMERIK 840D è possibile programmare, invece della velocità di avanzamento per il movimento degli assi, il tempo necessario per il percorso di contornitura di un blocco (G93).

Glossario

Preparazione del lavoro 918 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Avanzamento vettoriale L'avanzamento vettoriale agisce sugli → assi lineari. Esso rappresenta la somma geometrica degli avanzamenti dei vari → assi geometrici interessati.

Azionamento L'azionamento è l'unità del CNC che esegue la regolazione del numero di giri e della coppia sulla base delle indicazioni dell'NC.

Azioni sincrone 1. Emissione di funzioni ausiliarie

Durante la lavorazione del pezzo, dal programma CNC è possibile emettere al PLC funzioni tecnologiche (→ funzioni ausiliarie). Con queste funzioni ausiliarie vengono comandati, ad esempio, dispositivi supplementari della macchina utensile, quali la contropunta, le pinze, l'autocentrante, etc.

2. Emissione veloce di funzioni ausiliarie Per funzioni di comando a reazione rapida è possibile minimizzare i tempi di conferma delle → funzioni ausiliarie evitando così arresti indesiderati del processo di lavorazione.

Batteria tampone La batteria tampone assicura che il → programma utente memorizzato nella → CPU sia salvato anche in caso di interruzione di corrente e che i settori dati definiti, marker, temporizzatori ed i contatori vengano mantenuti in modo retentivo.

Blocchi intermedi I movimenti con → correzione utensile selezionata (G41/G42) possono essere interrotti da un numero limitato di blocchi intermedi (blocchi senza movimenti degli assi nel piano di correzione), il che non impedisce che la correzione utensile possa ancora essere calcolata correttamente. Il numero ammesso di blocchi intermedi che vengono letti anticipatamente dal controllo numerico può essere impostato mediante parametri di sistema.

Blocco Per blocchi si intendono tutti i file necessari per la stesura e l'elaborazione del programma.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 919

Blocco dati 1. Unità di dati del → PLC, alla quale possono accedere i programmi → HIGHSTEP. 2. Unità dati del → CN: i blocchi dati contengono definizioni per dati utente globali. I dati

possono essere inizializzati direttamente durante la definizione.

Blocco di partprogram Sezione di → programma pezzo delimitato da Line Feed. Si distinguono → blocchi principali e → blocchi secondari.

Blocco di programma I blocchi di programma contengono i programmi principali e i sottoprogrammi dei → programmi pezzo.

Blocco principale Blocco contrassegnato con ":" che contiene tutte le informazioni necessarie per poter avviare il ciclo di lavorazione in un → programma pezzo

Blocco secondario Blocco che inizia con "N" contenente le informazioni necessarie per un passo di lavoro, ad es. un valore di posizione.

Boot Caricamento del sistema operativo dopo Power On.

Campo di lavoro Spazio tridimensionale nel quale la punta dell'utensile può spostarsi in relazione alla struttura della macchina utensile. Vedere → Zona di protezione.

Campo di posizionamento Il massimo campo di posizionamento degli assi lineari è ± 9 decadi. Il valore assoluto dipende dalla risoluzione di impostazione e di regolazione della posizione e dal sistema di impostazione (in pollici o metrico) prescelti.

Glossario

Preparazione del lavoro 920 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Campo di protezione Spazio tridimensionale all’interno del → campo di lavoro, nel quale non deve entrare la punta dell’utensile.

Canale Un canale si contraddistingue per il fatto che consente di elaborare un → programma pezzo indipendentemente da altri canali. Un canale controlla esclusivamente gli assi e i mandrini ad esso assegnati. L'elaborazione di programmi pezzo su diversi canali può essere coordinata tramite → sincronizzazione.

Canale di lavorazione Con una struttura a canali, grazie all'esecuzione di movimenti paralleli, ad es. movimento di un portale di carico contemporaneamente alla lavorazione, è possibile ridurre i tempi morti. Un canale va considerato come un CNC indipendente fornito di decodifica, preparazione del blocco e interpolazione autonome.

Cancellazione totale Nella cancellazione totale vengono cancellate le seguenti memorie della → CPU: ● → Memoria di lavoro ● l’area di scrittura/lettura della → memoria di caricamento ● → Memoria di sistema ● → Memoria di backup

Cavo di collegamento I cavi di collegamento sono cavi a 2 conduttori, preconfezionati o realizzati dall'utente, dotati di 2 connettori. Questi cavi di collegamento collegano la → CPU mediante → l'interfaccia multipoint (MPI) con un → PG o con altre CPU.

Chiave di programmazione Caratteri e stringhe di caratteri che hanno un significato definito nel linguaggio di programmazione del → programma pezzo.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 921

Cicli Sottoprogrammi protetti per l'esecuzione di sequenze di lavorazione ripetitive sul → pezzo.

Cicli standard Per compiti di lavorazione ripetitivi sono disponibili dei cicli standard: ● per la tecnologia di foratura/fresatura ● per la tecnologia tornitura Nel settore operativo "Programma" sotto il menu "Supporto per cicli" vengono elencati i cicli disponibili. Dopo la selezione del ciclo di lavoro desiderato vengono visualizzati in chiaro i parametri necessari per la definizione dei valori.

CNC Vedere → NC

COM Componente del controllo numerico preposto all'esecuzione e al coordinamento della comunicazione.

Compensazione dei giochi Compensazione del gioco meccanico della macchina, per es. gioco di inversione nelle viti a ricircolo di sfere. Per ogni asse la compensazione del gioco può essere immessa separatamente.

Compensazione dell'errore sul quadrante Eventuali errori di profilo sui cambi del quadrante derivanti dalla variabilità dei rapporti di attrito delle guide che possono essere eliminati con la compensazione dell’errore sul quadrante. La parametrizzazione della compensazione dell’errore sul quadrante avviene con un test di prova della circolarità.

Compensazione errore passo vite Compensazione di inesattezze meccaniche di una vite a ricircolo di sfere utilizzata come asse attraverso il controllo numerico in base a valori di correzione precedentemente definiti.

Glossario

Preparazione del lavoro 922 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Compensazione interpolatoria Con la compensazione interpolatoria è possibile compensare gli errori di produzione compensazione errore passo vite e compensazione errore sistema di misura (CEPV, CESM).

Controllore programmabile (PLC) I controllori programmabili (PLC) sono apparecchiatura in grado di elaborare un programma applicativo memorizzato nel loro interno. La forma costruttiva e il cablaggio dell’apparecchiatura non dipendono quindi dalla sua funzione. Il controllore programmabile ha la stessa struttura di un computer; è costituito da CPU (unità centrale) con memoria, unità di ingresso e di uscita e sistema di bus interno. La periferia e il linguaggio di programmazione sono orientati alle esigenze della tecnica di controllo.

Coordinate polari Sistema di coordinate che definisce la posizione di un punto in un piano tramite la distanza dal punto zero e l’angolo compreso tra il vettore raggio e uno degli assi definiti.

Correzione raggio tagliente (CRT) Nella programmazione di un profilo viene considerato un utensile a punta. Siccome questo nella pratica non è realizzabile, nel controllo numerico viene impostato il raggio di curvatura dell’utensile che viene considerato durante la lavorazione. Il profilo che viene creato è equidistante a quello programmato in funzione del raggio utensile.

Correzione raggio utensile Per poter programmare direttamente il → profilo del pezzo desiderato, il controllo numerico, in considerazione del raggio dell'utensile utilizzato, deve calcolare ed eseguire un profilo equidistante da quello programmato (G41/G42).

Correzione utensile Nel calcolo del percorso vengono considerate le misure dell'utensile.

CPU Central Processing Unit, vedere → Controllore a memoria programmabile

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 923

C-Spline Il C-Spline è lo spline più noto e maggiormente utilizzato. I passaggi ai punti di appoggio sono costanti dal punto di vista della tangente e della curvatura. Vengono utilizzati polinomi di terzo grado.

Curvatura La curvatura k di un profilo è l'inverso del raggio r del cerchio tangente ad un punto del profilo (cerchio osculatore) (k = 1/r).

Dati setting Dati che trasmettono al controllo numerico NC le caratteristiche della macchina utensile nel modo definito dal software di sistema.

Definizione delle variabili La definizione di una variabile implica la definizione di un tipo di dati e del nome della variabile stessa. Quest'ultimo consente di interrogare il valore della variabile.

Diagnostica 1. Settore operativo del controllo numerico 2. Il controllo numerico possiede sia un programma di autodiagnostica sia test utili per il

service: Visualizzazioni di stato, allarme e service

DRF Differential Resolver Function: Funzione NC che, in concomitanza con un volantino elettronico, genera uno spostamento origine incrementale in funzionamento automatico.

Editor L'editor consente la stesura, la modifica, l'ampliamento, la composizione e l'inserimento di programmi/testi/blocchi di programma.

Editor di testi Vedere → Editor

Glossario

Preparazione del lavoro 924 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Fattore di scala Componente di un → frame che determina asse per asse delle variazioni di scala.

Finecorsa software I finecorsa software limitano il campo di posizionamento di un asse ed evitano che le slitte raggiungano i finecorsa hardware. Per ogni asse sono definibili 2 coppie di valori attivabili separatamente da → PLC.

Frame Un frame rappresenta una prescrizione di calcolo che trasforma un sistema di coordinate cartesiano in un altro sistema cartesiano. Un frame contiene i componenti → spostamento origine, → rotazione, → fattore di scala, → specularità.

Frame programmabili Con i → frame programmabili è possibile definire in modo dinamico, in base all'elaborazione del programma pezzo, nuovi punti di partenza del sistema di coordinate. Si fa distinzione tra definizione assoluta di un nuovo frame e definizione additiva rispetto ad un determinato punto di partenza.

Funzionamento continuo Obiettivo del funzionamento continuo è evitare grosse frenature degli → assi lineari ai limiti del blocco del programma pezzo ed eseguire passaggi al blocco successivo con una velocità vettoriale quanto più possibile uniforme.

Funzioni ausiliarie Le funzioni ausiliarie consentono di trasmettere al → PLC dei → parametri del → programma pezzo che provocano reazioni definite dal costruttore della macchina.

Funzioni di sicurezza Il controllo numerico dispone di sorveglianze permanentemente attive che riconoscono tempestivamente eventuali errori verificatisi nel → CNC, nell’interfaccia (→ PLC) e a bordo macchina in modo tale da evitare danni gravi al pezzo, all’utensile o alla macchina. In caso di errore viene interrotta la lavorazione e vengono arrestati gli azionamenti, viene inoltre memorizzata la causa dell’errore e visualizzato l’allarme. Contemporaneamente viene segnalato al PLC che è presente un allarme CNC.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 925

Geometria Descrizione di un → pezzo nel → sistema di coordinate del pezzo.

Gestione del partprogram La gestione dei programmi pezzo può essere organizzata in base ai → pezzi. L'estensione della memoria utente determina la quantità dei programmi e dati da gestire. Ogni file (programma e dati) può essere provvisto di un nome composto da max. 24 caratteri alfanumerici.

Gestione della velocità Per poter ottenere una velocità accettabile anche con movimenti molto brevi, è possibile attivare per ogni blocco la preelaborazione anticipata di più blocchi (→ Look Ahead).

Giri limite Velocità massima/minima (del mandrino): è possibile limitare la velocità massima di un mandrino predefinendo i dati macchina, il → PLC o → i dati di setting.

Gruppi di modi operativi Gli assi e i mandrini raggruppati tecnologicamente possono essere riuniti in un gruppo di modi operativi (BAG). Assi e mandrini di un gruppo di modi operativi possono essere gestiti da uno o più → canali. Ai canali di un BAG è abbinato sempre lo stesso → modo operativo.

HIGHSTEP Riepilogo delle possibilità di programmazione per i → PLC del sistema AS300/AS400.

Glossario

Preparazione del lavoro 926 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Identificatore Secondo DIN 66025 le parole vengono integrate con indicatori (nomi) per variabili (variabili di calcolo, variabili di sistema, variabili utente), per sottoprogrammi, per parole chiave e parole con più lettere di indirizzamento. Queste integrazioni sono concettualmente analoghe alle parole nella struttura del blocco. Gli indicatori devono essere univoci. Lo stesso indicatori non può essere utilizzato per oggetti differenti.

Impostazione metrica e in pollici delle quote Nel programma di lavorazione, le quote e i valori di passo si possono programmare in pollici. Indipendentemente dal tipo di impostazione programmabile (G70/G71), il controllo numerico viene impostato su un sistema di base.

Indicatore asse Secondo DIN 66217, gli assi vengono contrassegnati con X, Y, Z in un → sistema di coordinate ortogonale destrorso. Gli → assi rotanti intorno a X, Y, Z sono contrassegnati con A, B e C. Gli assi supplementari paralleli agli assi fondamentali possono essere contrassegnati con altre lettere di indirizzamento.

Indirizzo L'indirizzo è un identificatore per un determinato operando o per un settore dello stesso, ad es. un ingresso, un'uscita ecc.

Indirizzo assi Vedere → Indicatori assi

Ingressi/uscite digitali veloci Tramite gli ingressi digitali si possono avviare, ad esempio, delle routine di programma CNC veloci (routine di interrupt). Tramite le uscite digitali CNC è possibile attivare delle funzioni di comando gestite da programma (SINUMERIK 840D).

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 927

Interfaccia seriale V.24 Per l'immissione/emissione dei dati è disponibile una interfaccia seriale V.24 (RS232) sulla PCU 20, sulla PCU 50/70 sono disponibili due interfacce V.24. Con queste interfacce è possibile caricare e salvare sia i programmi di lavorazione sia i dati del costruttore e dell’utente.

Interpolatore Unità logica dell'→ NCK che, in funzione dei dati delle posizioni di destinazione nel programma pezzo, determina i valori intermedi per i movimenti dei singoli assi.

Interpolazione circolare L' → utensile deve muoversi tra punti definiti del profilo con un determinato avanzamento su un arco di cerchio e contemporaneamente lavorare il pezzo.

Interpolazione elicoidale L'interpolazione elicoidale è particolarmente adatta per la realizzazione di filettature interne o esterne con frese sagomate e per la fresatura di cave di lubrificazione. L’elica si compone di due movimenti combinati: ● movimento circolare in un piano ● ed un movimento lineare ortogonale a questo piano

Interpolazione lineare L'utensile viene posizionato sul punto finale con un percorso rettilineo e contemporaneamente viene lavorato il pezzo.

Interpolazione polinomica Con l'interpolazione polinomica è possibile generare i più svariati andamenti di curve come funzioni rettilinee, paraboliche o esponenziali (SINUMERIK 840D).

Interpolazione Spline Con l’interpolazione Spline il controllo numerico può generare un profilo curvilineo liscio partendo soltanto da pochi punti di appoggio preimpostati.

Glossario

Preparazione del lavoro 928 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Interruttore a chiave L’interruttore a chiave sul → pannello di comando della macchina ha 4 posizioni con funzioni assegnate dal sistema operativo del controllo numerico. L’interruttore a chiave è dotato di tre chiavi con colori diversi che possono essere estratte nelle posizioni definite.

Intersezione preliminare Si ha già il cambio blocco quando il percorso di contornitura si avvicina alla posizione finale di un delta predefinito.

JOG Modo operativo del controllo numerico (funzionamento di messa a punto): nel modo operativo JOG è possibile effettuare la messa a punto della macchina. I singoli assi e mandrini possono essere mossi tramite i tasti direzionali nel funzionamento ad impulsi. Ulteriori funzioni del modo operativo JOG sono la → Ricerca del punto di riferimento, il → Repos e il → Preset (preimpostazione del valore reale).

KÜ Rapporto di trasmissione

Kv Fattore di amplificazione dell'anello di posizione (guadagno); grandezza tecnica di un anello di regolazione

Lavorazione su piani inclinati Lavorazioni di foratura e fresatura sulle superfici del pezzo non parallele al sistema di coordinate della macchina possono essere eseguite confortevolmente con l'ausilio della funzione "Lavorazione su piani inclinati".

Limitazione del campo di lavoro Con la limitazione del campo di lavoro si può limitare il campo di posizionamento degli assi in aggiunta alla limitazione dei finecorsa. Per ogni asse è ammessa una coppia di valori per la definizione del campo di lavoro protetto.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 929

Limitazione programmabile del campo di lavoro Limitazione del campo di movimento dell’utensile in uno spazio definito da limitazioni programmate.

Linguaggio evoluto CNC Il linguaggio evoluto offre: → Variabili definite dall'utente, → Variabili di sistema, → Tecnica macro.

Look Ahead Grazie alla funzione Look Ahead, tramite un numero parametrizzabile di blocchi di movimento "pre-elaborati", si ottiene una velocità di lavorazione ottimale.

Maschiatura senza utensile compensato Questa funzione consente di eseguire maschiature senza utensile compensato. Con il movimento di interpolazione del mandrino come asse rotante e dell'asse di foratura, vengono eseguite filettature esattamente fino alla profondità di foratura finale, ad es. filettatura cieca (presupposto: funzionamento del mandrino come asse).

Massa Per massa si intende l'insieme di tutte le parti inattive di un'apparecchiatura elettrica collegate tra loro che non possono assumere tensioni pericolose al contatto neppure in caso di guasto.

MDA Modo operativo del controllo numerico: Manual Data Automatic. Nel modo operativo MDA si possono impostare singoli blocchi di programmi o sequenze di blocchi senza alcun riferimento a un programma principale o sottoprogramma, che al termine possono essere eseguiti con il tasto Start-NC.

Memoria di caricamento Nella CPU 314 del → PLC, la memoria di caricamento corrisponde alla → memoria di lavoro.

Memoria di correzione Settore di dati del controllo numerico nel quale vengono inseriti i dati di correzione utensile.

Glossario

Preparazione del lavoro 930 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Memoria di lavoro La memoria di lavoro è una memoria RAM contenuta nella → CPU, nella quale il processore accede al programma utente durante l'elaborazione.

Memoria di programma PLC SINUMERIK 840D: nella memoria utente del PLC vengono inseriti il programma utente PLC ed i dati utente insieme al programma base PLC.

Memoria di sistema La memoria di sistema è una memoria nella CPU nella quale vengono memorizzati i seguenti dati: ● dati necessari per il sistema operativo ● gli operandi tempi, contatori, indicatori

Memoria utente Tutti i programmi e i dati come programmi pezzo, sottoprogrammi, commenti, correzioni utensile, spostamenti origine/frame e dati utente di canale e programma possono essere memorizzati nella memoria utente CNC comune.

Messaggi Tutti i messaggi programmati nel programma pezzo e gli → allarmi riconosciuti dal sistema vengono visualizzati come testo in chiaro sul pannello operatore con data, ora e simbolo relativo per il criterio di tacitazione. La visualizzazione di allarmi e messaggi avviene separatamente.

Modo operativo Concetto esecutivo del funzionamento di un controllo numerico SINUMERIK. Sono definiti i modi operativi → Jog, → MDA, → Automatico.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 931

NC Numerical Control: il controllo numerico NC comprendente tutti i componenti per la gestione di una macchina utensile: → NCK, → PLC, HMI, → COM.

Nota per i controlli SINUMERIK 840D sarebbe più corretto utilizzare il termine controllo CNC: Computerized Numerical Control.

NCK Numerical Control Kernel: Componente del controllo numerico NC che elabora i → programmi pezzo e che sostanzialmente coordina i movimenti della macchina utensile.

Nome degli assi Vedere → Indicatori assi

NRK Numeric Robotic Kernel (sistema operativo dell' → NCK)

NURBS Il controllo del movimento e l'interpolazione vettoriale interni al controllo vengono eseguiti sulla base di NURBS (Non Uniform Rational B-Splines). In questo modo internamente al controllo SINUMERIK 840D è disponibile un avanzamento univoco per tutti i tipi di interpolazione.

Glossario

Preparazione del lavoro 932 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

OEM Per i costruttori di macchine che vogliono progettare una propria superficie operativa, oppure inserire funzioni tecnologiche nel controllo numerico, sono previsti degli spazi liberi per soluzioni individuali (applicazioni OEM) per il SINUMERIK 840D.

Override Possibilità di accesso manuale o programmabile che consente all'utente di intervenire sugli avanzamenti o sui giri programmati per adattarli a un determinato pezzo o materiale.

Override avanzamento La velocità programmata viene corretta in funzione della preimpostazione della velocità attuale sul → pannello di comando della macchina o dal PLC (0-200%). La velocità di avanzamento può essere corretta anche nel programma di lavorazione con un fattore percentuale programmabile (1-200%).

Parametri R Parametro di calcolo che può essere definito e interrogato nel programma dal programmatore del → programma pezzo per qualsiasi scopo.

Parola dati Un'unità dati lunga due byte nell'ambito di un → blocco dati.

Parole chiave Parole con scrittura definita che hanno un significato definito nel linguaggio di programmazione del → programma pezzo.

Partprogram Sequenza di istruzioni inviate al controllo numerico che insieme determinano l'esecuzione di un determinato → pezzo. Anche una determinata lavorazione su un determinato → pezzo grezzo.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 933

Pezzo Parte che deve essere approntata/lavorata dalla macchina utensile.

Pezzo grezzo Particolare con cui si inizia la lavorazione di un pezzo.

PLC Programmable Logic Control: → Controllore programmabile (PLC). Componente del → NC: interfaccia per l’elaborazione della logica di controllo della macchina utensile

Precomando, dinamico Le imprecisioni del → profilo dovute a errori di inseguimento possono essere pressoché eliminate grazie al precomando dinamico in funzione dell’accelerazione. In questo modo è possibile ottenere una straordinaria precisione di lavorazione anche ad alte → velocità vettoriali. Il precomando può essere selezionato ed escluso mediante il → programma pezzo in modo specifico per asse.

Profilo Profilo del → pezzo

Profilo del pezzo Profilo di riferimento del → pezzo da creare / eseguire.

Profilo finito Profilo del pezzo finito. Vedere → Pezzo grezzo.

Programma per il trasferimento dei dati PCIN PCIN è un programma ausiliario per la trasmissione e la ricezione dei dati utente CNC tramite l'interfaccia seriale, ad es. programmi pezzo, correzioni utensili, ecc. Il programma PCIN funziona in MS-DOS su PC industriali standard.

Glossario

Preparazione del lavoro 934 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Programma principale → Programma pezzo contrassegnato con un numero o un indicatore, dal quale possono essere richiamati altri programmi principali, sottoprogrammi oppure → cicli.

Programma utente I programmi utente per i sistemi di automazione S7-300 vengono approntati con il linguaggio di programmazione STEP 7. Il programma utente ha una struttura modulare ed è costituito da singoli blocchi. I tipi di blocchi fondamentali sono: ● Blocchi codice

Questi blocchi contengono i comandi STEP7. ● Blocchi dati

Questi blocchi contengono costanti e variabili per il programma STEP7.

Programmazione del PLC Il PLC viene programmato con il software STEP 7. Il software di programmazione STEP 7 si basa sul sistema operativo standard WINDOWS e contiene le funzioni della programmazione di STEP 5 con ulteriori sviluppi innovativi.

Pulsantiera di macchina Pannello è possibile della macchina utensile con gli elementi operativi tasti, selettore rotativo, etc. ed inoltre semplici elementi di visualizzazione come LED. Essa consente di comandare direttamente la macchina utensile tramite il PLC.

Punto di riferimento Punto della macchina utensile al quale fanno riferimento i trasduttori di misura degli → assi di macchina.

Punto fisso della macchina Punto della macchina utensile definito in modo univoco, ad es. punto di riferimento delle macchine.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 935

Punto zero macchina Punto fisso della macchina utensile al quale si lasciano ricondurre tutti i trasduttori di misura (derivati).

Punto zero pezzo Il punto zero del pezzo rappresenta il punto iniziale del → sistema di coordinate pezzo e viene definito mediante distanze dal → punto zero della macchina.

Quota assoluta Indicazione della posizione finale di un movimento dell'asse con una quota riferita al punto zero del sistema di coordinate momentaneamente attivo. Vedere → Quota incrementale.

Quota incrementale Indicazione della lunghezza di movimento tramite un valore incrementale (quota incrementale). Il valore incrementale può essere inserito come → dato di setting o selezionato tramite i rispettivi tasti 10, 100, 1000, 10000.

Quote incrementali Indicazione della posizione di arrivo di un movimento dell'asse con l'entità del percorso e la direzione rispetto a un punto già raggiunto. Vedere → Quote assolute.

Rapido La velocità di movimento più elevata di un asse. Essa viene utilizzata, ad esempio, quando l'utensile da una posizione di riposo viene accostato al → profilo del pezzo o quando viene allontanato dallo stesso. La velocità in rapido viene impostata in modo specifico per la macchina tramite il dato macchina.

Rete Una rete è un collegamento di più S7-300 ed altri terminali, per es. un PG, mediante → cavi di collegamento. Tramite la rete avviene lo scambio di dati tra le unità collegate.

Ricerca blocco Per il test di programmi pezzo oppure dopo un'interruzione della lavorazione, con la funzione "Ricerca blocco" è possibile scegliere una qualsiasi posizione del programma pezzo, dalla quale deve partire o proseguire la lavorazione.

Glossario

Preparazione del lavoro 936 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Rotazione Componente di un → frame che definisce una rotazione del sistema di coordinate attorno a un determinato angolo.

Routine di interrupt Le routine di interrupt sono → sottoprogrammi speciali che possono essere avviati mediante eventi (segnali esterni) dal processo di lavorazione. Un blocco del programma pezzo in corso di elaborazione viene interrotto e la posizione di interruzione degli assi viene memorizzata automaticamente.

Settore TOA Il settore TOA include tutti i dati dell'utensile e del magazzino. Di norma il settore, per quanto riguarda la portata dei dati, coincide con il settore → Canale. Tuttavia con i dati macchina è possibile determinare che più canali si dividano una → unità TOA, in modo tale che i canali abbiano a disposizione dei dati di gestione utensili comuni.

Sincronizzazione Istruzioni nei → programmi pezzo per il coordinamento dell’elaborazione nei vari → canali in determinati punti dell’elaborazione.

Sistema di coordinate Vedere → Sistema di coordinate macchina → Sistema di coordinate pezzo

Sistema di coordinate base Sistema di coordinate cartesiane che viene adattato con una trasformazione al sistema di coordinate macchina. Nel → programma pezzo il programmatore utilizza i nomi degli assi del sistema di coordinate base. Se non è attiva alcuna → trasformazione, esso è parallelo al → sistema di coordinate macchina. La differenza tra i due è rintracciabile negli → indicatori assi.

Sistema di coordinate macchina Sistema di coordinate riferito agli assi della macchina utensile.

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 937

Sistema di coordinate pezzo Il sistema di coordinate pezzo (SCP) ha il suo punto iniziale nel → punto zero del pezzo. Tutte le quote e le direzioni programmate nel sistema di coordinate pezzo si riferiscono a questo sistema di coordinate.

Sistema di misura in pollici Sistema di misura nel quale le distanze vengono definite in "pollici" o in sottomultipli di esso.

Sistema di misura metrico Sistema di unità normalizzato: per le lunghezze, ad es. mm (millimetri), m (metri).

Softkey Tasto la cui funzione è rappresentata in un campo del video che si adatta dinamicamente alla situazione operativa attuale. I tasti funzione di libero impiego (softkey) vengono abbinati via software a determinate funzioni.

Soglia di arresto preciso Quando tutti gli assi lineari hanno raggiunto la soglia di arresto preciso, il controllo numerico considera raggiunta la posizione di arrivo con esattezza. Si verifica quindi il passaggio al blocco successivo del → programma pezzo.

Sorveglianza del profilo Come grandezza per la fedeltà del profilo, viene sorvegliato l'errore di inseguimento nell'ambito di una tolleranza impostabile. Un errore di inseguimento superiore al limite consentito può dipendere, p. es., da un sovraccarico degli azionamenti. In questo caso viene attivato un allarme che arresta gli assi.

Sottoprogramma Successione di istruzioni di un → programma pezzo che può essere richiamata più volte con differenti parametri di definizione. Un sottoprogramma viene richiamato da un programma principale. Ogni sottoprogramma può essere bloccato contro emissioni e visualizzazioni non autorizzate. → I cicli sono una forma di sottoprogrammi.

Glossario

Preparazione del lavoro 938 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Sottoprogramma asincrono Programma pezzo che può essere avviato in modo asincrono (indipendente) rispetto allo stato attuale del programma tramite un segnale di interrupt (ad es. segnale "Ingresso veloce NC").

Specularità Con la specularità vengono invertiti i segni dei valori delle coordinate di un profilo rispetto ad un asse. Analogamente, nel contempo è possibile speculare più assi.

Spostamento origine Preimpostazione di un nuovo punto di riferimento per un sistema di coordinate con riferimento al punto zero attuale e ad un → frame. 1. Impostabile

SINUMERIK 840D: per ogni asse CNC è disponibile un numero progettabile di spostamenti origine impostabili. Gli spostamenti origine attivabili con funzioni G sono attivi alternativamente.

2. Esterno Oltre a tutti gli spostamenti che definiscono la posizione del punto zero, può essere sovrapposto uno spostamento origine tramite volantino (traslazione DRF) o dal PLC.

3. Programmabile Con l'istruzione TRANS è possibile programmare spostamenti origine per tutti gli assi lineari e di posizionamento.

Spostamento origine esterno Spostamento origine preimpostato da → PLC.

Superficie operativa La superficie operativa (BOF) è il supporto di visualizzazione di un controllo CNC sotto forma di schermo. Essa è dotata di otto softkey orizzontali ed otto verticali.

Svincolo rapido dal profilo Con l’intervento di un interrupt tramite il programma di lavoro del CNC può essere attivato un movimento che consente uno svincolo rapido dell’utensile dal profilo del pezzo in lavorazione. Inoltre può essere parametrizzato sia l’angolo di svincolo sia l'entità del percorso. Dopo lo svincolo rapido si può eseguire una routine di interrupt (SINUMERIK 840D).

Glossario

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 939

Svincolo utensile orientato RETTOOL: in caso di interruzione della lavorazione (ad es. in caso di rottura dell'utensile) con un comando del programma è possibile svincolare l'utensile di un percorso definito con un orientamento preimpostabile.

Tabella di compensazione Tabella con punti di appoggio. Fornisce per le posizioni prescelte dell'asse base i valori di compensazione dell'asse di compensazione.

Tecnica delle macro Raggruppamento di singole istruzioni sotto un unico indicatore. Nel programma l'indicatore rappresenta il numero di istruzioni raggruppate.

Trasformazione Spostamento addizionale o assoluto del punto zero di un asse.

Unità di periferia Le unità di periferia rappresentano il collegamento tra la CPU e il processo. Unità di periferia sono: ● → unità di ingresso/uscita digitali ● → unità di ingresso/uscita analogiche ● → unità di simulazione

Unità TOA Ogni → settore TOA può contenere più unità TOA. Il numero di unità TOA possibili è limitato dal numero massimo di → canali attivi. Un'unità TOA comprende esattamente un modulo di dati dell'utensile e un modulo di dati del magazzino. Inoltre può contenere anche un modulo di dati del supporto utensile (opzionale).

Utensile Parte attiva della macchina utensile preposta alla lavorazione (ad es. utensile di tornitura, fresa, punta a forare, raggio LASER...).

Glossario

Preparazione del lavoro 940 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Valore di compensazione Differenza tra la posizione dell'asse misurata dal trasduttore e la posizione dell'asse programmata.

Variabile di sistema Variabile esistente di un → programma pezzo senza definizione da parte del programmatore. Viene definita da un tipo di dati e dal nome della variabile che inizia con il carattere $. Vedere → Variabili definite dall’utente.

Variabili definite dall'utente Per qualsiasi impiego nel → programma pezzo o nel blocco dati (dati utente globali), gli utenti possono concordare delle variabili definite in maniera personalizzata. Una definizione contiene un'indicazione sul tipo di dati e sul nome della variabile. Vedere → Variabili di sistema.

Velocità Velocità nella trasmissione dati (bit/s).

Velocità vettoriale La massima velocità programmabile dipende dalla risoluzione di impostazione. Con una risoluzione di 0,1 mm, ad esempio, la massima velocità vettoriale programmabile è di 1000 mm/min.

WinSCP WinSCP è un programma Open Source gratuitamente disponibile per Windows che serve al trasferimento dei dati.

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 941

Indice analitico

$ $AA_ATOL, 569 $AA_COUP_ACT, 575, 605 $AA_LEAD_SP, 605 $AA_LEAD_SV, 605 $AA_MOTEND, 311 $AA_TOFF[ ], 683 $AC_ACT_PROG_NET_TIME, 792 $AC_ACTUAL_PARTS, 796 $AC_BLOCKTYPE, 660 $AC_BLOCKTYPEINFO, 660 $AC_CTOL, 569 $AC_CUT_INV, 522 $AC_CUTMOD, 522 $AC_CUTMOD_ANG, 522 $AC_CUTTING_TIME, 792 $AC_CYCLE_TIME, 792 $AC_FIFO1, 658 $AC_MARKER, 652 $AC_OLD_PROG_NET_TIME, 792 $AC_OLD_PROG_NET_TIME_COUNT, 792 $AC_OPERATING_TIME, 792 $AC_OTOL, 569 $AC_PARAM, 653 $AC_PROG_NET_TIME_TRIGGER, 793 $AC_REQUIRED_PARTS, 796 $AC_SPECIAL_PARTS, 796 $AC_SPLITBLOCK, 660 $AC_TIMER, 657 $AC_TOTAL_PARTS, 796 $AN_POWERON_TIME, 791 $AN_SETUP_TIME, 791 $MC_COMPESS_VELO_TOL, 539 $P_AD, 523 $P_CTOL, 570 $P_CUT_INV, 522 $P_CUTMOD, 522 $P_CUTMOD_ANG, 522 $P_OTOL, 570 $P_SUBPAR, 172 $P_TECCYCLE, 718 $PA_ATOL, 570 $R, 654 $Rn, 654 $SA_LEAD_TYPE, 604, 605 $SC_PA_ACTIV_IMMED, 251

$SN_PA_ACTIV_IMMED, 251 $TC_CARR1...14, 503 $TC_CARR18[m], 504, 508 $TC_DP1, 448 $TC_DP10, 448 $TC_DP11, 448 $TC_DP12, 448 $TC_DP13, 448 $TC_DP14, 448 $TC_DP15, 448 $TC_DP16, 448 $TC_DP17, 448 $TC_DP18, 448 $TC_DP19, 448 $TC_DP2, 448 $TC_DP20, 448 $TC_DP21, 448 $TC_DP22, 448 $TC_DP23, 448 $TC_DP24, 448 $TC_DP25, 448 $TC_DP3, 448 $TC_DP4, 448 $TC_DP5, 448 $TC_DP6, 448 $TC_DP7, 448 $TC_DP8, 448 $TC_DP9, 448 $TC_ECPxy, 453 $TC_SCPxy, 453 $TC_TPG1 ... 9, 761, 762

* * (Funzione di calcolo), 67

/ / (Funzione di calcolo), 67

+ + (Funzione di calcolo), 67

Indice analitico

Preparazione del lavoro 942 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

< < (Operatore di confronto), 70 <<, 77 << (Operatore di concatenamento), 83 <= (Operatore di confronto), 70 <> (Operatore di confronto), 70

= == (Operatore di confronto), 70

> > (Operatore di confronto), 70 >= (Operatore di confronto), 70

1 1° frame base attuale nel canale, 343

A A1, A2, 503 A2, 364 A3, 364 A4, 364, 373 A5, 364, 373 A6, 380 A7, 380 ABS, 67 ACC, 622 Accoppiamento, 525 Accoppiamento al valore reale, 618 Accoppiamento assiale al valore master, 599 Accoppiamento del valore master

Accoppiamento al valore di riferimento e al valore reale, 603 Accoppiamento valore reale e di riferimento, 599 da azioni sincrone statiche, 601 Sincronizzazione asse master e asse slave, 602

Accoppiamento di velocità, 618 Accoppiamento tramite riferimento, 618 Accostamento sul punto vettoriale successivo, 560 ACOS, 67 ACTBLOCNO, 187 ACTFRAME, 317 ADISPOSA, 309 ALF, 131, 134

Allarme, 798 Comportamento con azioni sincrone, 729 Numero di allarme, 798

Allarmi per cicli, 798 AND, 70 Angoli di rotazione 1, 2, 503 Angolo di anticipo, 366 Angolo di rotazione, 391 Angolo finale, 391 Angolo laterale, 366 Angolo tangente vettoriale, 711 Apprendimento delle curve di compensazione, 788 APR, 41 APRB, 41 APRP, 41 APW, 41 APWB, 41 APWP, 41 Array, 48 Arrotondamento, 164 AS, 229 ASIN, 67 A-Spline, 271 ASPLINE, 263 Asportazione, 801 Asse

Acquisizione diretta, 138 Asse inclinato (TRAANG), 422 Bloccaggio, 774 Dati utente locali, 775 Sostituzione, 138 Trascinamento, 574

Asse geometrico Commutazione, 768

Asse inclinato, TRAANG, 353 Asse M, 599 Asse master, 525, 599 Asse S, 599 Asse slave, 525, 599 Assi di collegamento, 775 Assi di comando, 685 Assi di orientamento, 364, 374, 377 Assi FGROUP, 288 Assi geometrici commutabili, 768 Assi rotanti

Vettori della distanza l1, l2, 503 Vettori direzionali V1, V2, 503

Assiale Avanzamento, 695

ASUP, 124 ATAN2, 67

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 943

ATOL, 566 Attributi di posizione

Programmazione indiretta, 63 Attrito, 788 Attuale

Override, 711 AV, 615 Avanzamento assiale, 695 AX, 765 AXCTSWE, 774 AXCTSWED, 774 AXIS, 24 AXNAME, 81 AXNOME, 765 AXSTRING, 765 AXTOCHAN, 144 AXTOSPI, 765 Azione sincrona

Annulla, 726 Azione, 643 Campo di validità, 638 Cancellazione, 726 Condizione, 640 Elementi di comando, 636 Posizionamento asse, 686 Sintassi, 636

Azioni sincrone Panoramica delle azioni, 663 Variabile di esecuzione, 646 Variabili di preelaborazione, 646

B B_AND, 70 B_NOT, 70 B_OR, 70 B_XOR, 70 B2, 364 B3, 364 B4, 364, 373 B5, 364, 373 B6, 380 B7, 380 BAUTO, 263 BFRAME, 317 Blocco di arresto, 551 Blocco lettura, 667 Blocco parametri servo

Criterio programmabile, 313 Blocco singolo

Soppressione, 180 BLOCK, 214

BLSYNC, 126 BNAT, 263 BOOL, 24 BOUND, 75 B-Spline, 272 BSPLINE, 263 BTAN, 263

C C2, 364 C3, 364 C4, 364, 373 C5, 364, 373 C6, 380 C7, 380 CAC, 261 CACN, 261 CACP, 261 CALCDAT, 818 Calcolo del frame

MEAFRAME, 335 CALL, 212 CALLPATH, 218, 238 Cambio di stazione/posizione, 774 Cambio elettronico, 606 Campo

Elemento, 48 CANCEL, 726 Cancellazione del percorso residuo, 302, 669 Cancellazione del percorso residuo con preparazione, 669 Carattere 0, 79 CASE, 97 CDC, 261 CFINE, 330 CHAN, 24 CHANDATA, 239 CHAR, 24 CHECKSUM, 162 CHKDNO, 498 CIC, 261 Cicli

Parametrizzazione dei cicli utente, 225 Cicli SIEMENS, 798 Cicli tecnologici

Strutturazioni in cascata, 721 Cicli tecnologici, 714

Controllo dell'esecuzione ciclica, ICYCOF, 720 Parametri di default con valori iniziali, 719

Cicli tecnologici in azioni sincrone blocco per blocco, 722

Indice analitico

Preparazione del lavoro 944 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Cicli tecnologici Costrutti di controllo IF, 722

Cicli tecnologici Istruzioni di salto GOTOP, GOTOF, GOTOB, 723

Cicli tecnologici Salti incondizionali, 723

Cinematica risolta, 504 CLEARM, 117, 706 CLRINT, 130 CMIRROR, 67, 323 COARSE, 615 COARSEA, 309 Codice G, 288

Programmazione indiretta, 62 Coefficiente del polinomio, 282 Comandi di programmazione

Lista, 821 Comando tangenziale, 525 COMCAD, 278 COMPCAD, 402 COMPCURV, 278, 402 Compensazione dell'errore sul quadrante

Apprendimento successivo, 789 Attivazione processo di apprendimento, 788 Disattivazione del processo di apprendimento, 788

COMPLETE, 239 COMPOF, 278, 402 COMPON, 278, 402, 539 Componente frame

FI, 326 MI, 326 SC, 326 TR, 326

Componente frame RT, 326 Compressore, 278, 290 Compressore blocco NC, 278 Concatenamento

di stringhe, 83 Concatenate

Trasformazioni, 443 Condizioni marginali per le trasformazioni, 440 Container assi, 774 CONTDCON, 810 CONTPRON, 802 Controllo

Strutture, 107 Controllo della potenza del laser, 672 Coordinamento assi, 696 Coordinamento dei programmi

Nomi dei canali, 120 Numeri di canale, 120

Correzione online della lunghezza utensile, 514, 683 Correzione raggio utensile

Fresatura periferica 3D senza superfici limite, 483 Rallentamento sugli spigoli, 308

Correzione raggio utensile 3D Cerchio di raccordo, 481 Fresatura frontale, 475 Fresatura periferica, 474 Punto di intersezione 3D delle equidistanti, 481 Spigoli interni/spigoli esterni, 481

Correzione raggio utensile 3D, 471 Correzione utensile

Memoria di correzione, 447 Online, 465, 680 Sistema di coordinate per i valori di usura, 460

Correzione utensile 3D, 476 Andamento punto di intersezione, 482 Correzione sulla traiettoria, 478 Curvatura della traiettoria, 479 Fresatura periferica con superfici limite, 484 Orientamento dell'utensile, 489 Profondità di penetrazione, 479

COS, 67 COUPDEF, 615 COUPDEL, 615 COUPOF, 615 COUPOFS, 615 COUPON, 615 COUPONC, 615 COUPRES, 615 CP, 428 CPROT, 247 CPROTDEF, 243 CROT, 67, 323 CSCALE, 67, 323 C-Spline, 273 CSPLINE, 263 CT, 774 CTAB, 591 CTABDEF, 577 CTABDEL, 585 CTABEND, 577 CTABEXISTS, 585 CTABFNO, 597 CTABFPOL, 597 CTABFSEG, 597 CTABID, 589 CTABINV, 591 CTABISLOCK, 589 CTABLOCK, 587 CTABMEMTYP, 589 CTABMPOL, 597 CTABMSEG, 597 CTABNO, 597 CTABNOMEM, 597

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 945

CTABPERIOD, 589 CTABPOL, 597 CTABPOLID, 597 CTABSEG, 597 CTABSEGID, 597 CTABSEV, 591 CTABSSV, 591 CTABTEP, 591 CTABTEV, 591 CTABTMAX, 591 CTABTMIN, 591 CTABTSP, 591 CTABTSV, 591 CTABUNLOCK, 587 CTOL, 566 CTRANS, 67, 323, 330 CUT3DC, 471, 478 CUT3DCC, 484 CUT3DCCD, 484 CUT3DF, 471 CUT3DFF, 471 CUT3DFS, 471 CUTMOD, 517

D Dati del cerchio

Calcolo, 818 DEF, 24, 48, 714 DEFAULT, 97 DEFINE, 714 DEFINE ... AS, 229 Definizione dei campi, 48 Definizione del polinomio, 671 Definizione del valore di setup, 453 DELAYFSTOF, 543 DELAYFSTON, 543 DELDL, 454 DELDTG, 669 DELETE, 151 DISABLE, 129 DISPLOF, 187 DISPLON, 187 Disponibilità

Sistema, 5 DISPR, 553 DIV, 67 DL, 451 DO, 643 DV, 615

E EAUTO, 263 EG

Cambio elettronico, 606 EGDEF, 606 EGDEL, 613 EGOFC, 611 EGOFS, 611 EGON, 608 EGONSYN, 608 EGONSYNE, 608 Elemento del profilo

Esecuzione, 817 ELSE, 109 ENABLE, 129 ENAT, 263 ENDFOR, 112 ENDIF, 109 ENDLABEL, 99 ENDLOOP, 111 ENDPROC, 678 ENDWHILE, 114 Esecuzione dei colpi, 751 ETAN, 263 Evento trigger

Durante la misura, 301 EVERY, 640 EXECSTRING, 66 EXECTAB, 817 EXECUTE, 243, 820 EXP, 67 EXTCALL, 220 EXTERN, 205

F F10, 243 F3, 788 FA, 615, 695 FALSE, 24 Fattore di accoppiamento, 571 FCTDEF, 465, 671 FCUB, 534 FENDNORM, 308 FIFOCTRL, 540 File

Informazioni, 159 FILEDATE, 159 FILEINFO, 159 FILESIZE, 159

Indice analitico

Preparazione del lavoro 946 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

FILESTAT, 159 FILETIME, 159 FINE, 615 Fine movimento

Criterio programmabile, 309 FINEA, 309 Finecorsa SW, 695 FLIN, 534 FNORM, 534 FOCOF, 708 FOCON, 708 FOR, 112 Forme della fresa, 476 FPO, 534 FPR, 613 Frame

Assegnazione, 328 Catene di frame, 329 Concatenamento di frame, 346 Richiamo, 327

FRAME, 24 Frame attuale globale, 345 Frame base NCU globali, 339 Frame di base attuali del canale, 343 Frame di base globale, 343, 344 Frame di base globali NCU attuali, 342 Frame di sistema attuali, 341, 342 Frame globali NCU impostabili, 340 Frame impostabile attuale, 344 Frame programmabile attuale, 344 Frame specifici per un canale, 340 Fresa

Punta (FS), 480 Punto ausiliario (FH), 480

Fresatura frontale, 471, 475 Fresatura frontale 3D, 372

Curvatura vettoriale tramite vettori norrmali alla superficie, 373

Fresatura periferica, 472, 474 Fresatura periferica (3D)

con superfici limite, 484 Fresatura periferica 3D con superfici limite, 483 FROM, 640 FTOC, 680 FTOCOF, 465 FTOCON, 465 Funzione di interpretazione, 674 Funzione di misura ampliata, 428 Funzioni ausiliarie, 666, 754 Funzioni OEM, 307 FXS, 708 FXST, 708 FXSW, 708

G G05, 427 G07, 427 G40, 471 G450, 481 G451, 481 G62, 308 G621, 308 G643, 289 GEOAX, 768 GET, 138 GET automatico, 143 GETACTTD, 501 GETD, 138 GETDNO, 499 Giochi, 788 GOTO, 93 GOTOB, 93 GOTOC, 93 GOTOF, 93 GOTOS, 92 GP, 63 GUD, 24, 234

I I1,I2, 503 ICYCOF, 720 ICYCON, 720 ID, 638 Identificatore asse di default, 651 IDS, 638 IF, 93, 109 IFRAME, 317 II1,II2, 742 Impostazione del valore reale, 697 Incremento

Asse, 740 Movimento, 745

INDEX, 87 Indicazione del percorso

Assoluta, 117 Relativo, 118

Indice di campo, 52 Indirizzi

Programmazione indiretta, 58 Indirizzi OEM, 307 INICF, 24 INIPO, 24 INIRE, 24 INIT, 117 INITIAL, 239

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 947

INITIAL_INI, 239 Inizializzazione

di campi, 48 di variabili di campo, 705

INT, 24 Interpolazione del vettore di rotazione, 390, 397 Interpolazione di orientamento, 399 Interpolazione polinomica, 281

Polinomio denominatore, 286 Interpolazione Spline, 290 Interpolazioni lineare, 290 INTERSEC, 815 Inversione

Iniziale, 738 IPOBRKA, 309 IPOENDA, 309 IPOSTOP, 615 IPTRLOCK, 550 IPTRUNLOCK, 550 ISAXIS, 765 ISD, 471, 478 ISFILE, 157 ISNUMBER, 81 ISOCALL, 216 Istruzione di salto

CASE, 97 Istruzioni

Lista, 821 ISVAR, 785

J JERKLIM, 563

K KS, 525

L L..., 203 Label, 99 Label di attesa, 706 LEAD, 364 LEADOF, 599 LIFTFAST, 131 Livellamento

del percorso di orientamento, 406 LLI, 38 LLIMIT, 671 LN, 67

LOCK, 724 LOOP, 111 Loop con conteggio, 112 Loop di programma

Loop con conteggio, 112 Loop finale, 111 Loop IF, 109 Loop REPEAT, 115 Loop WHILE, 114

Loop permanente, 111 LUD, 24

M M, 506 M17, 193 M30, 193 Macro, 229 Mandata

Memoria, 540 Mandrini sincroni

Mandrini sincroni, 614 Mandrino

Sostituzione, 138 Mandrino sincrono, 614

di mandrini sincroni, 622 Rapporto di trasmissione kÜ, 622

MASLDEF, 629 MASLDEL, 629 MASLOF, 629 MASLOFS, 629 MASLON, 629 MATCH, 87 MAXVAL, 75 MCALL, 210 MD20800, 193 MEAC, 295 MEAFRAME, 335 MEAFRAME, 335 MEAFRAME, 339 MEAS, 292 MEASA, 295 MEAW, 292 MEAWA, 295 Memoria

di lavoro, 239 Memoria dei programmi, 233 Preelaborazione, 540

Memoria dei programmi, 233 Directory standard, 234 Tipi di file, 234

Memoria di correzione, 447

Indice analitico

Preparazione del lavoro 948 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Memoria di lavoro, 239 Settori dati, 239

MINDEX, 87 MINVAL, 75 MIRROR, 317 Misura, 704 MMC, 790 MOD, 67 MODAXVAL, 765 Modo operativo

Durante la misura, 301 MOV, 689 Movimenti del mandrino, 698 Movimenti di posizionamento, 685 Movimento asse singolo, 759 Movimento cartesiano PTP, 353 Movimento di pendolamento

Campo di inversione, 742 Incremento sul punto di inversione, 744 Punto di inversione, 742 Soppressione dell’incremento, 742

MPF, 234, 788 MU, 425 MZ, 425

N NCK, 24 NEWCONF, 146 NOC, 615 NOT, 70 NPROT, 247 NPROTDEF, 243 NUMBER, 81 Numeri D

Rinomina, 499 Verificare, 498

Numero D Liberamente assegnabile, 497

Numero dell'inserto, 497 Numero identificativo, 638 NUT=angolo, 380

O OEMIPO1/2, 307 OFFN, 409, 412 Offset angolari/incrementi angolari degli assi rotanti, 506 Offset degli assi rotanti, 506 Offset profilo normale OFFN, 420 Operatori di confronto, 70

Operatori logici, 70 OR, 70 ORIAXES, 377, 397 ORIC, 489 ORICONCCW, 380, 397 ORICONCW, 380, 397 ORICONIO, 380, 397 ORICONTO, 380, 397 ORICURVE, 385, 397 ORID, 489 Orientamento

Assi, 380 Interpolazione, 382

Orientamento dell'utensile, 489 Orientamento relativo al percorso

Inserimento di blocchi intermedi, 400 Rotazione del vettore di orientamento, 397 Rotazione dell'orientamento utensile, 396 Rotazioni dell'utensile, 395

ORIEULER, 377, 397 ORIMKS, 374, 377 ORIPATH, 395 ORIPATHS, 395, 400 ORIPLANE, 380, 397 ORIRESET(A, B, C), 361 ORIROTA, 390 ORIROTC, 390, 397 ORIROTR, 390 ORIROTT, 390 ORIRPY, 377, 397 ORIRPY2, 377 ORIS, 489 ORISOF, 406 ORISON, 406 ORIVECT, 377, 397 ORIVIRT1, 377, 397 ORIVIRT2, 377, 397 ORIWKS, 374, 377 OS, 731 OSB, 731 OSC, 489 OSCILL, 738, 742 OSCTRL, 731 OSD, 489 OSE, 731 OSNSC, 731 OSOF, 489 OSP1, 731 OSP2, 731 OSS, 489 OSSE, 489 OST, 489 OST1, 731

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 949

OST2, 731 OTOL, 566 OVRA, 622

P P..., 208 Panoramica

Frame attivi nel canale, 342 Parametri

Assegnazione durante il richiamo del sottoprogramma, 205 Attuali, 170 Formali, 169 Trasferimento durante il richiamo del sottoprogramma, 170 Utensile, 447

Parametri Call-by-Value Per cicli tecnologici, 719

Parametri di calcolo Numero n, 19, 21

Parametri di calcolo (R), 19, 21 Parametri per azioni sincrone, 653 Parametri R, 654 PCALL, 217 PDELAYOF, 747 PDELAYON, 747 Pendolamento

Asincrono, 731 Gestione del pendolamento da azioni sincrone, 738 Incremento parziale, 742 Pendolamento asincrono, 731 Pendolamento sincrono, 738

Pendolamento asincrono, 731 Pendolamento sincrono

Abbinamento dell'asse di pendolamento e dell'asse di incremento, 742 Analisi, clock IPO, 745 Arresto sul punto di inversione, 745 Azioni sincrone, 743 Definizione degli incrementi, 742 Incremento nel campo di inversione, 744 Movimento di incremento, 744 Successivo incremento parziale, 746

Percorso di ricerca in caso di richiamo di un sottoprogramma, 169 per il richiamo di un sottoprogramma, 237 Percorso di ricerca programmabile, 218

Pezzo Contatore, 796

Pezzo Directory, 235 Directory principale, 234

PFRAME, 317 PHI, 380, 388 PHU, 39 PL, 263, 281 PO, 281 PO[PHI], 388, 395 PO[PHI]=(a2, a3, a4, a5), 380 PO[PSI], 388, 395 PO[PSI]=(b2, b3, b4, b5), 380 PO[THT], 388, 395 PO[XH], 388 PO[XH]=(xe, x2, x3, x4, x5), 385 PO[YH], 388 PO[YH]=(ye, y2, y3, y4, y5), 385 PO[ZH], 388 PO[ZH]=(ze, z2, z3, z4, z5), 385 Polinomio

Interpolazione, 290 Polinomio denominatore, 286 Polinomio F-Wort, 288 POLY, 281 POLYPATH, 281 PON, 758 PONS, 747 Portautensili, 510

Cancellazione/modifica/lettura dei dati, 509 Cinematica, 503 Orientabile, 510

Portautensili orientabili Numero del portautensili, 506 Variabili di sistema, 504

Portautensili orientabili, 503 POS, 686 POSFS, 615 Posizionamento asse

Posizione di riferimento impostabile, 688 Posizione base dell'orientamento dell'utensile ORIRESET, 362 Posizione di disattivazione, 627 Posizione minima/massima dell’asse rotante, 506 Posizioni singolari, 376 POSP, 738 POSRANGE, 688 POT, 67 Preparazione del profilo

Risposta di errore, 820 PREPRO, 192 PRESETON, 333, 697

Indice analitico

Preparazione del lavoro 950 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Primo frame di base nel canale, 341 PRIO, 126, 131 PRLOC, 24 PROC, 174 Profilo

Codifica, 810 Preparazione, 802 Riaccostamento, 553 Tabella, 802, 810

Profondità di annidamento di strutture di controllo, 107

Profondità di penetrazione, 479 Profondità di penetrazione (ISD), 471 Programma

di inizializzazione, 239 Diramazione, 97 Memoria, 235 Ripetizione, 208 Salti, 93 Tempi di esecuzione, 791

Programma di inizializzazione, 239 Programmazione dell’asse inclinato

G05, G07, 427 Programmazione delle rotazioni del vettore di orientamento tramite THETA, 390 Programmazione dell'orientamento, 378, 398 Programmazione indiretta, 63

di codici G, 62 di indirizzi, 58

Protezione Settori, 243

PSI, 380, 388 PTP, 428, 435 PTP con TRANSMIT, 435 PTPG0, 435 PUD, 24 PUNCHACC, 747 Puntatore di interruzione automatico, 552 Punzonatura, 747, 754 PUTFTOC, 465 PUTFTOCF, 465 PW, 263

Q QECDAT, 788 QECLRN, 788 QECLRNOF, 788 QECLRNON, 788 QECTEST, 788 QFK, 788

R R..., 19, 21 Raggruppamento di trascinamento, 571 Raggruppamento spline, 276 Rallentamento d'angolo su tutti gli spigoli, 308 Rallentamento sugli spigoli interni, 308 RDISABLE, 667 READ, 153 REAL, 24 REDEF, 31 Refpos, 688 Regolazione AC, moltiplicativa, 676 Regolazione AC,addizionale, 675 Regolazione della distanza, 677 RELEASE, 138 REP, 48, 705 REPEAT, 99, 115 REPEATB, 99 REPOS, 124 REPOSA, 553 REPOSH, 553 REPOSHA, 553 REPOSL, 553 REPOSQ, 553 REPOSQA, 553 RESET, 724 RET, 194, 195 Riaccostamento al profilo

Accostamento con nuovo utensile, 561 Punto di riposizionamento, 558

Richiamo sottoprogramma con indicazione del percorso e parametri, 217 Richiamo sottoprogramma modale, 210 Riferimento angolare, 624 Riferimento vettoriale

Assi di contornitura, 290 Avanzamento vettoriale, 290 Blocchi di filettatura, 290 Condizioni marginali, 290 Gruppo codici G, 288 Impostabile, 288 Interpolazione circolare e lineare, 290 Parametro curva, 288

Rilevazione del sovraccarico, 712 RINDEX, 87 Ripetizione di una parte di programma

con programmazione indiretta CALL, 214 Riscontro fisso, 708 Risolta

Cinematica, 508 Risultante

Override, 712

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 951

RMB, 553 RME, 553 RMI, 553 RMN, 553 Roditura, 747, 754 ROUND, 67 ROUNDUP, 164 Routine di conversione, 648 Routine di interrupt, 124

Assegnazione e avvio, 126 Cancellazione, 130 Direzione di movimento programmabile, 132, 134 Disattivazione/attivazione, 129 Movimento di svincolo, 134 Nuova assegnazione, 128 Salvataggio delle funzioni G modali, 125 Svincolo rapido dal profilo, 131

Runtime Funzionamento delle strutture di controllo, 108

S S1, S2, 615 Salto

all'inizio del programma, 92 Condizione, 94 Destinazione, 93 Etichetta, 94, 99 Istruzione, 94

SAVE, 178 SBLOF, 180 SBLON, 180 Scambio assi, 144

Abilitazione asse, 142 Accettazione asse, 142 Impostazione variabile del comportamento, 143 Premesse, 142 Richiedere e abilitare tramite azioni sincrone, 690 senza sincronizzazione, 141 senza stop preelaborazione, 143

SCPARA, 313 SD, 263 SD42475, 403 SD42476, 403 SD42477, 403 SD42678, 406 SD42680, 406 SD42900, 457 SD42910, 457 SD42920, 458 SD42930, 459 SD42935, 462

SD42940, 463, 521 SD42984, 519 SEFORM, 242 Selezione di un singolo carattere, 90 SET, 48, 705 SETAL, 707, 798 SETDNO, 499 SETINT, 126 SETM, 117, 706 Sezione di programma

Ripetizione, 99 Simulazione del valore master, 604 SIN, 67 Sincronismo

Fine, 618 Grossolano, 618

Sincronismo di posizione, 615 Sistema

Disponibilità funzionale, 5 SON, 747, 757, 758 SONS, 747 Sottoprogramma, 165

Nome, 166 Percorso di ricerca programmabile, 218 Richiamo con assegnazione di parametri, 205 Richiamo senza assegnazione di parametri, 203 Richiamo, indiretto, 212 Richiamo, modale, 210 Ripetizione, 208 Ritorno, parametrizzabile, 195

SPATH, 288 SPF, 234, 788 SPI, 765 Spianamento del percorso di orientamento, 396, 401 SPIF1, 747 SPIF2, 747 Spline

Interpolazione, 263 Tipi, 271

SPLINEPATH, 276 SPN, 754 SPOF, 747 SPOS, 615 Spostamento origine (SO)

PRESETON, 333 Spostamento origine esterno, 332

Spostamento origine esterno, 332 SPP, 754 SQRT, 67 START, 117 Start/stop asse, 689 STARTFIFO, 540 STAT, 428, 435

Indice analitico

Preparazione del lavoro 952 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

Stato del tastatore di misura, 304 Stato dell'accoppiamento, 575, 605 Stato dell'ordine di misura, 305 Stop preelaborazione, 668 STOPFIFO, 540 STOPRE, 540 STOPREOF, 668 Strappo

Correzione, 563 String

Operazioni, 79 STRING, 24 Stringa

Concatenamento, 83 Lunghezza, 86

STRINGIS, 778 Indirizzi NC, 782

STRINGVAR, 90 STRLEN, 86 SUBSTR, 89 Suddivisione automatica del percorso, 754 Suddivisione del percorso, 759 Suddivisione del percorso per assi di contornitura, 757 Svincolo rapido dal profilo, 131 SYNFCT, 674 SYNR, 24 SYNRW, 24 SYNW, 24

T TAN, 67 TANG, 525 TANGDEL, 525 TANGOF, 525 TANGON, 525 TCARR, 510 TCOABS, 510 TCOFR, 510 TCOFRX, 510 TCOFRY, 510 TCOFRZ, 510 Tempo di elaborazione, 792 Tempo necessario

Azioni sincrone, 712 Tempo residuo

per un pezzo, 794 THETA, 388, 390 TILT, 364

Tipi di trasformazione Funzione generale, 347

Tipo di accoppiamento, 618 Tipo di cinematica, 509 Tipo di cinematica M, 509 Tipo di cinematica P, 509 Tipo di cinematica T, 509 TLIFT, 525 TMOF, 761 TMON, 761 TOFFOF, 683 TOFFOF, 514 TOFFON, 683 TOFFON, 514 TOLOWER, 85 Torsione, 788 TOUPPER, 85 TOWBCS, 460 TOWKCS, 460 TOWMCS, 460 TOWSTD, 460 TOWTCS, 460 TOWWCS, 460 TRAANG, 422 TRACON, 443 TRACYL, 412, 419 TRAFOOF, 442 TRAILOF, 571 TRAILON, 571 TRANSMIT, 409, 412, 435 TRAORI, 356, 359 Trascinamento, 571, 699

Limitazione dinamica, 574 Trasformazione

Asse inclinato, 422 Trasformazione a 5 assi

Programmazione del vettore direzionale, 370 Programmazione dell'orientamento utensile con LEAD e TILT, 371

Trasformazione a cinque assi Programmazione con angoli di Eulero, 368 Programmazione con angoli RPY, 369 Programmazione della curvatura vettoriale nei vettori normali alla superficie, 372 Programmazione tramite LEAD/TILT, 364

Trasformazione cinematica TRANSMIT, TRACYL e TRAANG, 352 Trasformazione con asse lineare orientabile, 358 Trasformazione curvilinea di una superficie cilindrica, 412, 413

Offset profilo normale OFFN, 420

Indice analitico

Preparazione del lavoro Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0 953

Trasformazione dell'orientamento TRAORI Cinematica di macchina, 350 Movimenti di traslazione e movimenti di orientamento, 350 Programmazione dell'orientamento, 361 Trasformazione generica a 5/6 assi, 352 Varianti della programmazione dell'orientamento, 362

Trasformazione polare, 352 Trasformazione su superficie cilindrica, 352 Trasformazione TRACYL, 414 Trasformazione TRANSMIT, 410 Trasformazioni

Posizione base, indipendente dalla cinematica, dell'orientamento dell'utensile, 348 Trasformazione a tre, quattro e cinque assi TRAORI, 348 Trasformazione dell'orientamento, 348 Trasformazioni a tre assi, trasformazioni a quattro assi, 359 Trasformazioni cinematiche, 349 Trasformazioni concatenate, 349

Traslazione del preset, 333 Traslazione fine, 330 Traslazione grossolana, 330 Tratti di percorso, 754 Tratto di percorso, 754 Trovare e rilevare i settori senza possibilità di ricerca, 551 TRUE, 24 TRUNC, 67 TU, 428, 435

U U1,U2, 742 uc.com, cicli utente, 226 ULI, 38 ULIMIT, 671 UNLOCK, 724 UNTIL, 115 UPATH, 288

Utensile Correzione della lunghezza, 510 Correzione raggio, 455 Correzioni, addizionali, 451 Memoria di correzione, 447 Orientamento con cambio di frame, 513 Orientamento, spianamento, 406 Parametri, 447 Sorveglianza, per rettifica, 761

V V1,V2, 503 Valore di usura, 453 Valore master

Accoppiamento, 701 VAR, 176 Variabile FIFO, 658 Variabile frame

Assegnazione alle istruzioni G G54 ... G599, 322 Spostamenti origine G54 … G599, 322 Variabile frame predefinita, 317, 327

Variabile timer, 657 Variabili

Conversione di tipi, 78, 80 Definite dall'utente, 24 Definizione, 24 Nome, 26, 31 Tipo, 24

Variabili di sistema, 646 Variabili frame, 315

Assegnazione di valori, 323 Definizione di nuovi frame, 329 Richiamo di trasformazioni delle coordinate, 315

Variabili GUD Supporto azioni sincrone, 649

Variabili merker, 652 VELOLIM, 564 Visualizzazione blocco, 216

Soppressione, 187

Indice analitico

Preparazione del lavoro 954 Manuale di programmazione, 06/2009, 6FC5398-2BP20-0CA0

W WAIT, 117 WAITC, 615 WAITE, 117 WAITM, 117 WAITMC, 117 WHEN, 640 WHEN-DO, 743 WHENEVER, 640 WHENEVER-DO, 743 WHILE, 114 Winlimit, 688 WRITE, 147

X xe, ye, ze, 385 XH YH ZH, 385 xi, yi, zi, 385 XOR, 70