RI Lezione 09
🤖 Robotica Industriale · IV Anno · Lezione 09
Primo programma Pick & Place 🏭
Integrazione completa · Progettazione cella · Ciclo autonomo · Test e validazione
🎯 Lezione di sintesi. Nelle lezioni 06–08 hai imparato la struttura TP, i tipi di movimento J/L/C e il teaching dei punti. Questa lezione integra tutto in un unico progetto pratico: dalla progettazione della cella all’esecuzione del ciclo autonomo completo. È la prima volta che scrivi un programma funzionante dall’inizio alla fine.
🎯 Obiettivi della lezione
- Progettare una cella pick & place semplice: layout, zone, punti necessari
- Pianificare la sequenza completa del ciclo prima di toccare il simulatore
- Implementare il programma passo per passo con la procedura professionale
- Validare il programma con STEP a velocità ridotta prima dell’esecuzione automatica
- Identificare e correggere gli errori più comuni del primo programma
📖 1. Teoria
1.1 — Il metodo professionale: prima carta, poi robot
Un errore comune dei programmatori alle prime armi è aprire il controller e iniziare a muovere il robot senza un piano. Il risultato è un programma caotico, punti mal nominati, sequenze da rifare. Il metodo professionale è l’opposto: almeno il 40% del tempo si spende su carta, prima di toccare il robot.
1.2 — Anatomia di una cella pick & place
Una cella pick & place standard ha sempre le stesse zone funzionali, indipendentemente dall’applicazione specifica. Conoscere queste zone permette di progettare qualsiasi cella con lo stesso schema mentale.
| Zona | Punti tipici | Tipo mov. | Note |
|---|---|---|---|
| Home | P[1] | J | Posizione di riposo sicura, inizio e fine ciclo |
| Transito | P[2] opzionale | J CNT | Solo se ci sono ostacoli tra home e le zone lavoro |
| Approccio presa | P[10] | J CNT | Direttamente sopra il pezzo, stessa X/Y di P[11] |
| Presa | P[11] | L FINE | Posizione di contatto con il pezzo, FINE obbligatorio |
| Risalita presa | P[10] (stesso) | L FINE | Stesso punto di approccio — risalita verticale simmetrica |
| Approccio deposito | P[20] | J CNT | Sopra la zona deposito, stessa X/Y di P[21] |
| Deposito | P[21] | L FINE | Posizione di rilascio pezzo, FINE obbligatorio |
| Risalita deposito | P[20] (stesso) | L FINE | Risalita verticale prima del ritorno home |
1.3 — Errori più comuni nel primo programma
L P[11] 200mm/sec CNT50 — il robot non si ferma sul pezzo. La pinza si chiude mentre il robot è ancora in movimento.L P[11] 2000mm/sec FINE — in T1 è limitato a 250 mm/s, ma in AUTO il robot si avvicina al pezzo a 2 m/s. Rischio danni.J P[1] 100% FINE.💻 2. Progetto guidato: cella pick & place completa
Seguiamo le 5 fasi del metodo professionale per costruire passo per passo il primo programma completo.
Fase 1 — Analisi del compito
Fase 2 — Layout e punti su carta
| P[ ] | Commento | X | Y | Z | W/P/R | Metodo |
|---|---|---|---|---|---|---|
| P[1] | HOME | — | — | — | — | Jog articolare |
| P[10] | APPR_PICK | 280 | –80 | 180 | 180/0/0 | Derivato da P[11] |
| P[11] | PICK | 280 | –80 | 30 | 180/0/0 | IK diretta |
| P[20] | APPR_PLACE | 280 | 80 | 180 | 180/0/0 | Derivato da P[21] |
| P[21] | PLACE | 280 | 80 | 30 | 180/0/0 | IK diretta |
Fase 3 — Programma scheletro (su carta)
! PROG: PICK_PLACE_01
! Autore: Prof. Bertolino
! Desc: Presa vassoio A → deposito nastro B
! ============================================
! — HOME —
1: J P[1:HOME ] 100% FINE
! — TRANSITO VERSO ZONA A —
2: J P[10:APPR_PICK] 80% CNT100
! — PRESA PEZZO —
3: L P[11:PICK ] 150mm/sec FINE
! [Lezione 10: DO[1]=ON — chiudi pinza]
4: L P[10:APPR_PICK] 150mm/sec FINE
! — TRANSITO VERSO ZONA B —
5: J P[20:APPR_PLAC] 80% CNT100
! — DEPOSITO PEZZO —
6: L P[21:PLACE ] 150mm/sec FINE
! [Lezione 10: DO[1]=OFF — apri pinza]
7: L P[20:APPR_PLAC] 150mm/sec FINE
! — RITORNO HOME —
8: J P[1:HOME ] 100% FINE
Fase 4 — Teach e inserimento nel simulatore
- P[1] — HOME: porta il robot con jog articolare a J1=0°, J2=–10°, J3=20°, J4=0°, J5=–90°, J6=0°. Premi TEACH.
- P[11] — PICK: pannello IK → X=280, Y=–80, Z=30, W=180, P=0, R=0 → MUOVI IK → TEACH.
- P[10] — APPR_PICK: apri editor posizione di P[11]. Copia le coordinate in P[10], cambia solo Z=180. Salva.
- P[21] — PLACE: pannello IK → X=280, Y=80, Z=30, W=180, P=0, R=0 → MUOVI IK → TEACH.
- P[20] — APPR_PLACE: come P[10]: copia da P[21] in P[20], Z=180.
- Verifica configurazioni: controlla che tutti i P[ ] abbiano Config: N U T, 0, 0, 0.
- Inserisci il programma nell’editor TP seguendo il testo della Fase 3.
Fase 5 — Test e validazione
🏋️ 3. Esercizi
🟢 Esercizio 1 — Implementa la cella guidata (Facile)
Segui esattamente le 5 fasi del progetto guidato in questa lezione. Implementa la cella PICK_PLACE_01 nel simulatore con i punti e il programma indicati. Esegui la validazione completa (STEP + RUN). Poi rispondi:
a) Quanto tempo hai impiegato nella fase di teach (Fase 4)?
b) Hai riscontrato errori durante il test? Se sì, quale riga era problematica e come l’hai corretta?
c) Le traiettorie di discesa e risalita erano verticali? Come l’hai verificato?
🔵 Esercizio 2 — Cella a geometria variata (Medio)
Progetta e implementa da zero una seconda cella con questa specifica:
— Zona presa: X=200, Y=100, Z=20 (piano a Z=0)
— Zona deposito: X=–200, Y=100, Z=20 (piano a Z=0)
— Il robot deve attraversare Y=0 nel transito — attenzione alla singolarità del braccio (Lezione 05)
— Altezza approccio: 160 mm
— Velocità avvicinamento: 120 mm/s
Segui tutte e 5 le fasi del metodo professionale. Prima di implementare, analizza: la traiettoria J da P[10] a P[20] attraversa zone pericolose? Se sì, aggiungi un punto di transito intermedio.
🟠 Esercizio 3 — Debug di un programma con 5 errori (Medio)
Il seguente programma contiene 5 errori progettuali (non di sintassi — il programma gira, ma fa cose sbagliate o pericolose). Identificali tutti e proponi la versione corretta.
1: J P[1] 100% FINE ! home
2: J P[10] 100% FINE ! approccio presa
3: L P[11] 2000mm/sec CNT50 ! presa
4: J P[10] 100% FINE ! risalita
5: J P[20] 80% CNT100 ! approccio deposito
6: L P[21] 150mm/sec FINE ! deposito
7: J P[1] 100% FINE ! home
Suggerimento: guarda la riga 2 (terminazione), riga 3 (due problemi), riga 4 (tipo movimento), riga finale (manca qualcosa).
🟣 Esercizio 4 — Cella con ostacolo fisico (Difficile)
Una cella ha le stesse zone della cella guidata (presa a Y=–80, deposito a Y=80, entrambe a X=280, Z=30) ma con un divisorio verticale fisso a Y=0, alto fino a Z=250, che separa le due metà della cella. Il robot deve passare sopra il divisorio durante il transito.
Progetta il programma aggiungendo i punti di transito necessari per superare il divisorio in sicurezza. Calcola le coordinate dei punti di transito. Scrivi il programma TP completo giustificando ogni scelta di J/L/C, velocità e terminazione. Implementa nel simulatore e valida con STEP verificando che il TCP non attraversi mai la zona Z<260 in Y=–30…+30.
❓ 4. Quiz di verifica
1. Perché si raccomanda di spendere il 40% del tempo sulla progettazione cartacea prima di toccare il robot?
Mostra risposta
Perché gli errori scoperti su carta costano pochi secondi di correzione; gli stessi errori scoperti sul robot costano minuti o ore — e in un ambiente industriale reale possono causare incidenti, danni a attrezzature o fermo produzione. Pianificare su carta permette di identificare: punti mancanti, traiettorie che attraversano zone pericolose, inconsistenze di configurazione, velocità inappropriate. La qualità del programma finale è quasi sempre proporzionale alla qualità della pianificazione preventiva.
2. In un ciclo pick & place, perché il punto di approccio (P[10]) e il punto di risalita dopo la presa usano lo stesso P[10] invece di due punti separati?
Mostra risposta
Perché il percorso di avvicinamento e quello di risalita devono essere identici — stessa X, stessa Y, stessa Z. Se fossero due punti separati si rischia che differiscano per errori di teach, producendo traiettorie leggermente diverse. Usare lo stesso P[10] garantisce simmetria assoluta: il robot scende sempre esattamente sulla stessa verticale del punto di presa e risale lungo la stessa verticale. Inoltre riduce il numero di P[ ] da gestire e da verificare.
3. Qual è la sequenza corretta di test prima di portare un nuovo programma in ciclo automatico?
Mostra risposta
La sequenza professionale è: (1) STEP riga per riga con override molto basso (10–20%) — si verifica ogni singolo movimento prima di procedere; (2) STEP riga per riga a velocità più alta (30–50%) — si verifica che il comportamento sia stabile; (3) RUN ciclo completo a velocità ridotta (50%) — si verifica il comportamento del ciclo continuo; (4) RUN a velocità di produzione (100%) — solo dopo aver superato tutti i passi precedenti. Saltare anche un solo passo aumenta significativamente il rischio di incidenti.
4. Perché la risalita dopo la presa (riga 4 del programma guidato) è un movimento L invece di J?
Mostra risposta
Perché durante la risalita il robot ha appena afferrato il pezzo. Un movimento J in questa fase potrebbe far oscillare il pezzo nella pinza (traiettoria curva = accelerazioni laterali) o, peggio, colpire lateralmente il vassoio o l’attrezzatura con il pezzo durante la risalita. Il movimento L garantisce che il TCP salga verticalmente in linea retta, il che minimizza le forze laterali sul pezzo e assicura che non ci siano collisioni laterali con la struttura della zona di presa.
5. Individua i 5 errori dell’Esercizio 3 e descrivi le conseguenze di ognuno in un ambiente industriale reale.
Mostra risposta
(1) Riga 2 — J P[10] 100% FINE: dovrebbe essere CNT100, non FINE. Conseguenza: il robot si ferma completamente sull’approccio — inefficienza, nessun rischio di sicurezza ma tempo ciclo allungato.
(2) Riga 3 — velocità 2000mm/sec: eccessiva per un avvicinamento al pezzo. In AUTO il robot si avvicina a 2 m/s — in caso di errore di posizionamento del pezzo o tolleranze strette, impatto ad alta velocità con danni al pezzo o all’utensile.
(3) Riga 3 — CNT50: il robot non si ferma in P[11]. La pinza si chiude (nella realtà) mentre il robot è in movimento, afferrando il pezzo in una posizione sbagliata o mancandolo completamente.
(4) Riga 4 — J P[10] FINE: la risalita dovrebbe essere L, non J. Con J dopo la presa il robot può colpire lateralmente il vassoio con il pezzo appena afferrato.
(5) Riga finale: manca la risalita dopo il deposito (L P[20] 150mm/sec FINE). Il programma termina con il robot a Z=30 (quota pezzo), a contatto o vicinissimo al nastro. Al ciclo successivo, J verso P[10] parte da questa posizione bassa con traiettoria imprevedibile — rischio collisione con il nastro.
📚 Riepilogo della lezione
- 5 fasi professionali: analisi → layout su carta → programma scheletro → teach → test. Non saltare nessuna fase.
- Anatomia di una cella: home · approccio · presa · risalita · transito · approccio · deposito · risalita · home
- Approccio e risalita usano lo stesso P[ ] — simmetria garantita, meno punti da gestire
- I 6 errori più comuni: approccio non allineato, CNT su presa, velocità eccessiva, configurazione inconsistente, mancanza ritorno home, approccio troppo basso
- Validazione obbligatoria: STEP → RUN lento → RUN veloce. Mai saltare al ciclo automatico senza STEP
- Il programma senza I/O (pinza) è completo: i
DO[]arrivano nella Lezione 10
Prossima lezione →
Lezione 10 — I/O Digitali DI/DO
Ingressi e uscite digitali del controller R-30iB Mate.
Comandare la pinza, leggere sensori, sincronizzare con il PLC.
© Prof. D. Bertolino · Robotica Industriale FANUC ER-4iA · Lezione 09 di 18