Strumenti Utente

Strumenti Sito


robotica

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
robotica [2025/04/28 09:03] – [PROFINET e comunicazione con PLC] adminrobotica [2025/09/08 13:38] (versione attuale) – [PROFINET e comunicazione con PLC] admin
Linea 207: Linea 207:
 === RobotStudio === === RobotStudio ===
  
-Si può cambiare la lingua di RobotStudio dalle opzioni (NB la traduzione in italiano presenta degli errori). Sempre nelle opzioni, alla voce Sincronizzazione, conviene indicare per tutti e quattro i campi il nome //MainModule//; in questo modo tutti i dati principali (tool, workobject, ecc.) vengono salvati in un modulo principale con quel nome.+Nelle opzioni di RobotStudio si può cambiare la lingua di RobotStudio ed è consigliato usare la lingua inglese perché la traduzione in italiano presenta degli errori. Sempre nelle opzioni, alla voce Sincronizzazione, conviene indicare per tutti e quattro i campi il nome //MainModule//; in questo modo tutti i dati principali (tool, workobject, ecc.) vengono salvati in un modulo principale con quel nome ogni volta che si fa la sincronizzazione (il valore di default è //Module1//).
  
 === SmartGripper === === SmartGripper ===
Linea 222: Linea 222:
 === Impostazioni del controllore === === Impostazioni del controllore ===
  
-Si può usare RobotStudio anche senza modificare le opzioni predefinite ma sarebbe meglio: +Ai soli fini della simulazione si potrebbe usare RobotStudio anche senza modificare le opzioni predefinite ma __se si vuole caricare il programma sul robot bisogna necessariamente modificare il parametro //Arm Angle Reference//__((si veda il Manuale tecnico di riferimento Parametri di sistema RW 7)) da ''WorldY'' a ''Axis1'' (dalla configurazione del controllore nella sezione Motion alla voce Robot) che serve a evitare le singolarità quando il robot è montato a pavimento((il nostro robot nasce come braccio destro del robot YuMi Dual Arm IRB14000)) altrimenti il movimento del robot in simulazione non corrisponderà quello del robot vero e proprio((questa opzione influenza il calcolo dei movimenti effettuato dal controllore)).
-  * modificare il parametro //Arm Angle Reference//((si veda il Manuale tecnico di riferimento Parametri di sistema RW 7)) da ''WorldY'' a ''Axis1'' (dalla configurazione del controllore nella sezione Motion alla voce Robot) che serve a evitare le singolarità quando il robot è montato a pavimento((il nostro robot nasce come braccio destro del robot YuMi Dual Arm IRB14000)) +
-  * spuntare le opzioni //Collision Detection// e //Multitasking// del controller per avere disposizione i blocchi dello SmartGripper nell'ambiente di programmazione Wizard; il modo più semplice per farlo è spuntare //Opzioni di personalizzazione// quando si crea il controller+
  
-Altre opzioni che risultano attivate nel controller reale e che non sono presenti di default:  +Per ottenere un comportamento che replichi quello del controllore reale è bene anche: 
-  * Absolute Accuracy +  * spuntare le opzioni //Collision Detection// //Multitasking// del controller per avere a disposizione i blocchi dello SmartGripper nell'ambiente di programmazione Wizard; il modo più semplice per farlo è spuntare //Opzioni di personalizzazione// quando si crea il controller 
-  * RW Add-In Prepared +  * attivare queste opzioni che non sono presenti di default: Absolute AccuracyRW Add-In PreparedCollsion AvoidanceIntegrated Vision InterfacePath RecoveryRobotStudio ConnectSoft MoveWorld ZoneProfinet Device 
-  * Collsion Avoidance +Le opzioni sopra indicate si possono impostare quando si crea un nuovo progetto includendo un controllore (mettendo la spunta su //Opzioni di personalizzazione//) oppure dalla scheda Controllore cliccando //Installazione|Modifica Installazione// e selezionandole nella scheda //Caratteristiche//; le opzioni sono documentate nel documento [[https://library.abb.com/d/3HAC079823-007|dati tecnici del prodotto Omnicore E line]]. Nella scheramata sotto le impostazioni modificate rispetto a quelle di default.
-  * Integrated Vision Interface +
-  * Path Recovery +
-  * RobotStudio Connect +
-  * Soft Move +
-  * World Zone +
-  * Profinet Device+
  
 +{{::opzioni_controller.png|opzioni controller che replicano la configurazione del robot reale}}
  
 === Nel software === === Nel software ===
  
-Quando il calcolo dei movimenti genera il warning //Errore d'angolo// la simulazione si interrompe. Questo situazione capita molto di frequente ed è abbastanza imprevedibile. Per trascurare il warning inserire nel codice RAPID l'istruzione:+Quando il calcolo dei movimenti genera il warning //Errore d'angolo// <del>la simulazione si interrompe</del> compare un messaggio di avvertimento. Questo situazione capita molto di frequente ed è abbastanza imprevedibile. Per trascurare il warning inserire nel codice RAPID l'istruzione:
  
     CornerPathWarning FALSE;     CornerPathWarning FALSE;
          
-In simulazione non è richiesto ma la pinza del robot richiede una calibrazione ad ogni nuovo avvio del controller. Per farla in automatico inserire nel condice RAPID le istruzioni:+In simulazione non è richiesto ma la pinza del robot richiede una calibrazione ad ogni nuovo avvio del controller. Per calibrare la pinza automaticamente inserire nel condice RAPID le istruzioni:
  
     g_JogIn;      g_JogIn; 
Linea 405: Linea 398:
     * [[https://library.abb.com/d/3HAC082346-001|Application Manual I/O Engineering]]     * [[https://library.abb.com/d/3HAC082346-001|Application Manual I/O Engineering]]
     * [[https://library.abb.com/d/3HAC065041-001|Technical Reference Manual - System Parameters]]     * [[https://library.abb.com/d/3HAC065041-001|Technical Reference Manual - System Parameters]]
 +    * [[https://library.abb.com/d/3HAC079823-007|Dati tecnici dell'Omnicore E line]]
 ==== Altre risorse ==== ==== Altre risorse ====
    
Linea 455: Linea 449:
 Provo a fare uno scan della rete PROFINET da I/O Engineering ma non trova il PLC. Riprovo dopo aver impostato LLDP legacy. Rimetto LLDP standard e imposto il nome "omnicore" come compare di default su TIA Portal. Carico SW e HW sul PLC dopo aver corretto l'indirizzo IP del controller. Lo scan da I/O Engineering non va comunque. Provo a fare uno scan della rete PROFINET da I/O Engineering ma non trova il PLC. Riprovo dopo aver impostato LLDP legacy. Rimetto LLDP standard e imposto il nome "omnicore" come compare di default su TIA Portal. Carico SW e HW sul PLC dopo aver corretto l'indirizzo IP del controller. Lo scan da I/O Engineering non va comunque.
  
-Provo a seguire il [[https://www.youtube.com/watch?v=LEY-dQcxNvY|tutorial tedesco]] e poi  [[https://www.youtube.com/watch?v=jmbwrpESQeA|quello spagnolo]]. In I/O Engineering creo:+Provo a seguire il [[https://www.youtube.com/watch?v=LEY-dQcxNvY|tutorial danese]] e poi  [[https://www.youtube.com/watch?v=jmbwrpESQeA|quello spagnolo]]. In I/O Engineering creo:
   * nello slot 1: DO 64 byte (uscite PROFINET dal robot)   * nello slot 1: DO 64 byte (uscite PROFINET dal robot)
   * nello slot 2: DI 64 byte (ingressi PROFINET del robot)   * nello slot 2: DI 64 byte (ingressi PROFINET del robot)
Linea 463: Linea 457:
   * dalla vista generale dispositivi (espandibile sulla destra) aggiungo due moduli nell'ordine inverso rispetto a robotstudio (le uscite del controller sono ingressi del PLC): DI 64 bytes e DO 64 bytes   * dalla vista generale dispositivi (espandibile sulla destra) aggiungo due moduli nell'ordine inverso rispetto a robotstudio (le uscite del controller sono ingressi del PLC): DI 64 bytes e DO 64 bytes
 Compilo la configurazione hardware e la carico sul PLC. Poi scrivo un programma con un solo segmento dove attivando l'ingresso fisico I0.0 del PLC si attiva l'uscita Q2.0 su PROFINET (l'indirizzo si vede dalla vista generale dei dispositivi associata al controller ominicore in TIA Portal). Dopo aver caricato il programma, se mi collego online col controller e apro la vista I/O System dalla scheda Controllore, vedo l'ingresso digitale PROFINET passare a 1 quando attivo l'ingresso del PLC. Funziona! Compilo la configurazione hardware e la carico sul PLC. Poi scrivo un programma con un solo segmento dove attivando l'ingresso fisico I0.0 del PLC si attiva l'uscita Q2.0 su PROFINET (l'indirizzo si vede dalla vista generale dei dispositivi associata al controller ominicore in TIA Portal). Dopo aver caricato il programma, se mi collego online col controller e apro la vista I/O System dalla scheda Controllore, vedo l'ingresso digitale PROFINET passare a 1 quando attivo l'ingresso del PLC. Funziona!
 +
 +Per trattare integer e real bisogna impacchettare i dati e trasmetterli come byte. [[https://www.youtube.com/watch?v=jiUzABaVH9c|Questo video]] di Universal Robots spiega più o meno come fare.
  
 ==== Dalla simulazione al robot ==== ==== Dalla simulazione al robot ====
robotica.1745831030.txt.gz · Ultima modifica: da admin