Strumenti Utente

Strumenti Sito


manipolatore

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
manipolatore [2017/12/07 18:14] – [Scaricare il programma dal PLC] adminmanipolatore [2021/04/27 10:40] (versione attuale) – [Scrivere il programma per PLC: da SFC a ladder] admin
Linea 5: Linea 5:
 {{vimeo>146113826}} {{vimeo>146113826}}
  
-Il manipolatore è dotato di una scheda di interfaccia per poterlo collegare al PLC. La scheda può essere alimentata direttamente dal PLC (con i 24V DC disponibili ai [[https://leonardocanducci.org/wiki/tp4/plc_siemens#ingressi_e_uscite|morsetti ''L+'' e ''M'']]) e ha ingressi e le uscite a 24V.+Il [[https://www.fischertechnik.de/en/products/simulating/training-models/511938-sim-3d-robot-24v-simulation|manipolatore]] è dotato di una scheda di interfaccia per poterlo collegare al PLC ([[https://content.ugfischer.com/cbfiles/fischer/Zulassungen/ft/511938_Kundendokumentation_Komplett_3DRoboter_24V_V5.pdf|qui]] sono indicati ingressi e uscite). La scheda può essere alimentata direttamente dal PLC (con i 24V DC disponibili ai [[https://leonardocanducci.org/wiki/tp4/plc_siemens#ingressi_e_uscite|morsetti ''L+'' e ''M'']]) e ha ingressi e le uscite a 24V.
  
 {{:scheda_manipolatore.jpg?500|scheda di interfaccia per PLC}} {{:scheda_manipolatore.jpg?500|scheda di interfaccia per PLC}}
Linea 80: Linea 80:
 Il [[https://www.fischertechnik.de/en/products/simulating/training-models/511938-sim-3d-robot-24v-simulation|manipolatore]] monta due motori DC semplici e due motori DC con encoder a 24V ({{ ::144643-encodermotor24v.pdf |datasheet motore con encoder}}). Il [[https://www.fischertechnik.de/en/products/simulating/training-models/511938-sim-3d-robot-24v-simulation|manipolatore]] monta due motori DC semplici e due motori DC con encoder a 24V ({{ ::144643-encodermotor24v.pdf |datasheet motore con encoder}}).
  
-Nei due motori senza encoder il sensore di posizione è esterno e piuttosto primitivo: una ruota con quattro sporgenze azionata dal motore preme un contatto mentre ruota generando degli impulsi.+Nei due motori senza encoder il sensore di posizione è esterno e piuttosto primitivo: una ruota con quattro sporgenze azionata dal motore preme un contatto mentre ruota generando degli impulsi ([[https://content.ugfischer.com/cbfiles/fischer/Zulassungen/ft/37783-Mini-switch.pdf|qui]] il datasheet dei contatti di scambio usati nella scheda anche per i finecorsa).
  
 L'immagine seguente mostra motore e riduttore (neri) e la ruota (a sinistra) che preme il contatto generando gli impulsi. L'immagine seguente mostra motore e riduttore (neri) e la ruota (a sinistra) che preme il contatto generando gli impulsi.
Linea 86: Linea 86:
 {{:sensore_a_impulsi.jpg?300|Sensore ad impulsi per il movimento orizzontale}} {{:sensore_a_impulsi.jpg?300|Sensore ad impulsi per il movimento orizzontale}}
  
- Il segnale prodotto non permette di stabilire il verso di rotazione ma può essere utilizzato per calcolare la velocità di rotazione e il movimento (relativo) del motore. Nel programma il segnale dal sensore ad impulsi fa incrementare un contatore dopo averlo azzerato con finecorsa che indica il raggiungimento di una posizione ben precisa. In questo caso il valore del contatore indica la posizione assoluta mentre il movimento procede in un verso prestabilito, con il valore zero che corrisponde alla posizione iniziale. + Il segnale prodotto non permette di stabilire il verso di rotazione ma può essere utilizzato per calcolare la velocità di rotazione e il movimento (relativo) del motore. Nel programma il segnale dal sensore ad impulsi fa incrementare un contatore dopo averlo azzerato con un finecorsa che indica il raggiungimento di una posizione ben precisa. In questo caso il valore del contatore indica la posizione assoluta mentre il movimento procede in un verso prestabilito, con il valore zero che corrisponde alla posizione iniziale. 
  
 Gli altri due motori hanno a bordo un encoder in quadratura (vedi pagina 41 del paragrafo 5 modulo 14 nel libro di testo). Ai morsetti di questi motori, oltre ai due terminali per l'alimentazione, troviamo un connettore a quattro fili per l'encoder, due per l'alimentazione del sensore e due per i segnali impulsivi prodotti dal sensore. I due segnali permettono di stabilire direzione, velocità e movimento relativo del motore. Se si accoppia all'encoder un finecorsa che segnali la posizione iniziale è possibile stabilire anche la posizione assoluta del motore.  Gli altri due motori hanno a bordo un encoder in quadratura (vedi pagina 41 del paragrafo 5 modulo 14 nel libro di testo). Ai morsetti di questi motori, oltre ai due terminali per l'alimentazione, troviamo un connettore a quattro fili per l'encoder, due per l'alimentazione del sensore e due per i segnali impulsivi prodotti dal sensore. I due segnali permettono di stabilire direzione, velocità e movimento relativo del motore. Se si accoppia all'encoder un finecorsa che segnali la posizione iniziale è possibile stabilire anche la posizione assoluta del motore. 
Linea 119: Linea 119:
     * fase operativa: contatore A/B (encoder in quadratura)     * fase operativa: contatore A/B (encoder in quadratura)
     * ingresso di reset abilitato      * ingresso di reset abilitato 
 +    * **NB per le CPU serie 40 bisogna modificare l'opzione del filtro sugli ingressi digitali portandolo ad esempio a 0,1 ms (il valore predefinito di 6,4 ms va bene per le CPU serie 30)**; per farlo selezionare il PLC e nelle proprietà modificare il valore del filtro per i quattro canali (gli ingressi) con i segnali in quadratura dell'encoder (canali 0, 1, 4 e 5 nella sezione ''DI 14/DQ 10'')
  
 L'indirizzamento dei contatori è predefinito: L'indirizzamento dei contatori è predefinito:
Linea 147: Linea 148:
 ===== Scaricare il programma dal PLC ===== ===== Scaricare il programma dal PLC =====
  
-E' <del>stato complicato</del> (o __non ho capito come farlo meglio__((il pulsante che permette di scaricare il programma dal PLC al PC diventa cliccabile solo selezionando nella vista ad albero ''Blocchi programma'')) perché:+E' <del>stato complicato</del> __Non ho capito come farlo in maniera semplice__:
   * serve TIA 11, con TIA 13 non si riesce a fare il collegamento online con la CPU che esegue il programma del 2013   * serve TIA 11, con TIA 13 non si riesce a fare il collegamento online con la CPU che esegue il programma del 2013
-  * <del>è possibile vedere i blocchi (c'è solo Main) ma</del> +  * <del>è possibile vedere i blocchi (c'è solo Main) ma non è possibile vedere la tabella delle variabilii blocchi dati e la configurazione hardware</del> 
-  * <del>non è possibile vedere la tabella delle variabili</del> +<del>Per portarlo su TIA 13 ho copiato il main, rcreato i contatori con i loro blocchi datiricreato la tabella delle variabili la configurazione hardware (facile per i merker di stato, di tentativo per i contatori veloci per gli encoder)</del>Più semplice come indicato sotto.
-  * <del>non è possibile vedere i blocchi dati</del> +
-  <del>non è possibile vedere la configurazione hardware</del> +
-Per portarlo su TIA 13 ho+
-  * copiato il main +
-  * <del>ricreato i contatori con i loro blocchi dati (facile)</del> +
-  * <del>ricreato la tabella delle variabili (lungo)</del> +
-  * <del>ricreato la configurazione hardware (facile per i merker di stato, di tentativo per i contatori veloci per gli encoder) +
-</del>+
  
 Si può scaricare il programma da PLC a Tia Portal: Si può scaricare il programma da PLC a Tia Portal:
-  * usando la stessa versione con cui è stato creato il progetto (Tia Prota 11) +  * usando la stessa versione con cui è stato creato il progetto (Tia Portal 11) 
   * creando un nuovo progetto    * creando un nuovo progetto 
   * aggiungendo una CPU uguale a quella da cui si vuole scaricare il progetto   * aggiungendo una CPU uguale a quella da cui si vuole scaricare il progetto
Linea 168: Linea 161:
   * cliccando sul pusante ''Caricamento del dispositivo (software)''   * cliccando sul pusante ''Caricamento del dispositivo (software)''
   * salvare e riaprire dalla versione Tia Portal 13 per completare la migrazione del progetto   * salvare e riaprire dalla versione Tia Portal 13 per completare la migrazione del progetto
- 
- 
- 
- 
- 
 ===== Problemi e particolarità della soluzione 2013 ===== ===== Problemi e particolarità della soluzione 2013 =====
  
Linea 187: Linea 175:
     * S/R su pinza open invece che bobina semplice     * S/R su pinza open invece che bobina semplice
  
-===== Possibili miglioramenti  ===== 
- 
-  * cosmetici 
-    * rinominare gli stati in modo che il parallelismo attivi passi con numerazione successiva (P1, P2, P3 e P4 invece che P1, P3, P5, P7) 
-  * pratici 
-    * migliore gestione dell'homing: in successione salita, poi indietro e rotazione oraria contemporanee, poi apertura pinza nella posizione home 
-  * funzione dedicata alle sicurezze/emergenze con: 
-    * pulsante emergenza 
-    * arresto motori con contatori oltre una determinata soglia (in sostituzione del secondo finecorsa per i quattro movimenti) 
-    * pause/resume 
-    * timer su tutti i movimenti  
-    * sicurezza sulla chiusura pinza (se il contatore non avanza e il motore è attivo disattivare il motore) 
-  * HMI 
-    * adattare GUI di Silighini per il programma 2017 
-    * monitoraggio motori, contatori e finecorsa 
-    * impostazione delle coordinate via HMI (al momento sono hardcoded e bisogna modificare il programma); eventualmente usare variabili a ritenzione per conservare le nuove impostazione tra un riavvio e l'altro 
  
  
Linea 270: Linea 242:
 Osservazioni: Osservazioni:
   * i passi del diagramma SFC non coincidono con gli stati del diagramma temporale (sono di più per il parallelismo) ma il risultato è lo stesso   * i passi del diagramma SFC non coincidono con gli stati del diagramma temporale (sono di più per il parallelismo) ma il risultato è lo stesso
-  * lo stato iniziale P0, quando attivo, fa partire l'homing+  * lo stato iniziale P0, quando attivo, fa partire l'homing (la condizione che attiva la transizione è sempre verificata)
   * i movimenti sono attivi contemporaneamente ma indipendenti sono gestiti con parallelismo e sincronizzazione   * i movimenti sono attivi contemporaneamente ma indipendenti sono gestiti con parallelismo e sincronizzazione
   * nel parallelismo sono necessari degli stati di attesa che segnalano il completamento di un movimento; quando tutti gli stati di attesa sono attivi tutti i movimenti sono completati e la sequenza può procedere   * nel parallelismo sono necessari degli stati di attesa che segnalano il completamento di un movimento; quando tutti gli stati di attesa sono attivi tutti i movimenti sono completati e la sequenza può procedere
Linea 291: Linea 263:
     * uscite, che gestisca i 4 motori nelle due direzioni e i due contatori dei sensori ad impulsi     * uscite, che gestisca i 4 motori nelle due direzioni e i due contatori dei sensori ad impulsi
   * altre osservazioni:   * altre osservazioni:
-    * i finecorsa sono normalmente chiusi+    * i finecorsa sono normalmente <del>chiusi</del> aperti
     * negli operatori di confronto è indispensabile impostare il tipo di dati corretto (''Dint'' per i contatori veloci e ''int'' per i contatori ''CUP''     * negli operatori di confronto è indispensabile impostare il tipo di dati corretto (''Dint'' per i contatori veloci e ''int'' per i contatori ''CUP''
     * non usare ''=='' ma ''>='' e ''%%<=%%'' negli operatori di confronto, specialmente con i contatori veloci     * non usare ''=='' ma ''>='' e ''%%<=%%'' negli operatori di confronto, specialmente con i contatori veloci
Linea 299: Linea 271:
       * non viene utilizzata l'uscita ''Q'' (che passerebbe a 1 raggiunto il valore ''PV'') ma il valore ''CV'' (current value) che memorizza il conteggio raggiunto in quel momento       * non viene utilizzata l'uscita ''Q'' (che passerebbe a 1 raggiunto il valore ''PV'') ma il valore ''CV'' (current value) che memorizza il conteggio raggiunto in quel momento
       * conviene inserire i contatori prima di scrivere la funzione che gestisce gli stati; in questo modo le variabili associate (ad esempio ''Cforward.CV'') sono disponibili nei menu a tendina degli operatori di confronto       * conviene inserire i contatori prima di scrivere la funzione che gestisce gli stati; in questo modo le variabili associate (ad esempio ''Cforward.CV'') sono disponibili nei menu a tendina degli operatori di confronto
 +
 +===== Possibili miglioramenti  =====
 +
 +  * cosmetici
 +    * rinominare gli stati in modo che il parallelismo attivi passi con numerazione successiva (P1, P2, P3 e P4 invece che P1, P3, P5, P7)
 +  * semplificazioni SFC
 +    * usando il qualificatore C (condizionata) per alcune azioni si semplifica la gestione dell'homing; non è più necessario il parallelismo ma si ricorre a un solo stato con tutti i riposizionamenti condizionati dal relativo finecorsa posto in serie all'uscita che attiva il relativo motore (utile anche per evitare funzionamenti anomali)
 +  * pratici
 +    * migliore gestione dell'homing: in successione salita, poi indietro e rotazione oraria contemporanee, poi apertura pinza nella posizione home (per evitare ostacoli durante la rotazione e l'eventuale caduta di un pezzo in un punto non sicuro)
 +  * sicurezze/emergenze:
 +    * creare una funzione dedicata da inserire in fondo al main (è importante che sia l'ultima in modo che le bobine di uscita vengano eventualmente disattivate da questa funzione) 
 +    * inserire un pulsante emergenza
 +    * arresto motori con contatori oltre una determinata soglia (in sostituzione del secondo finecorsa per i quattro movimenti) o sul finecorsa
 +    * funzione pause/resume?
 +    * timer su tutti i movimenti? 
 +    * sicurezza sulla chiusura pinza (se il contatore non avanza e il motore è attivo disattivare il motore)
 +  * configurazione (anche via HMI) usando un DB e ritenzione
 +
  
  
Linea 320: Linea 310:
 ===== Risorse ===== ===== Risorse =====
  
 +  * [[hmi#hmi_e_manipolatore|qui]] l'ultima versione del 2020 con abbinato un pannello HMI per monitoraggio e configurazione
   * {{ ::manipolatore_2013.zip |progetto del 2013 migrato a Tia Portal 13}}   * {{ ::manipolatore_2013.zip |progetto del 2013 migrato a Tia Portal 13}}
   * [[https://drive.google.com/file/d/1QfzHOVeLeZhh9xnr7h10ygr6xn7lL_Ce/view?usp=sharing|implementazione SFC del 2017]]   * [[https://drive.google.com/file/d/1QfzHOVeLeZhh9xnr7h10ygr6xn7lL_Ce/view?usp=sharing|implementazione SFC del 2017]]
   * {{ ::sfc_manipolatore.zip |sorgente del diagramma SFC}} per [[https://draw.io]]   * {{ ::sfc_manipolatore.zip |sorgente del diagramma SFC}} per [[https://draw.io]]
  
manipolatore.1512670481.txt.gz · Ultima modifica: 2020/07/03 15:58 (modifica esterna)