• Non ci sono risultati.

5. INTERFACCIA UOMO-MACCHINA IUM (HMI) E FUNZIONALITÀ

5.2 Funzionalità aggiuntive

Nel progetto dell’interfaccia si è pensato, oltre alle funzionalità di base come quelle appena descritte, di introdurre funzionalità che possiamo definire aggiuntive, in quanto non complementarmente indispensabili, ma comunque di interesse in certi casi, come può essere ad esempio, la verifica della correttezza di una funzione di sicurezza o la messa a punto della posizione dei motori persa per qualche motivo, ad esempio, a seguito di un riavvio improvviso senza la memorizzazione automatica dell’ultima posizione, che quindi di conseguenza resetterà la nuova posizione di zero e così via. In comune a tutti questi casi quindi potrebbe essere utile una movimentazione manuale del robot, così da poter ad esempio: muovere un asse fino a controllare quali siano i suoi limiti di posizione senza causare danni, come nel caso del quinto giunto in questo progetto, oppure ancora per referenziare un asse dopo un riavvio, oppure, per muovere l’end-effector fuori dall’area di lavoro per controllare se la funzione di sicurezza effettivamente agisce per bloccarlo, oppure ancora per controllare la precisione di una traiettoria e così via. Per tutti questi casi quindi si è pensato a due tipi diversi di movimentazione manuale, che possono essere utili nei vari casi di interesse. Questi tipi movimentazioni manuali vengono chiamate nella pratica, “Jog joint”, la movimentazione manuale che si ottiene agendo su ogni asse e la movimentazione “Jog tcp”, che si ottiene muovendo nello spazio il tcp (tool central point) il punto centrale dello strumento. Queste due funzionalità come vediamo dalla figura 5.1 possono essere richiesta direttamente dall’interfaccia e avranno un effetto immediato nel sistema. Ovviamente, le due funzioni differiranno per le operazioni preliminari da effettuare affiche il robot possa essere comandato manualmente. Il primo che analizziamo è il “Jog tcp”, come

88 già detto il “jog tcp” è caratterizzato da una movimentazione diretta dell’end- effector nello spazio, quindi, come ci si aspetta nell’ architettura del movimento ci deve essere ancora la presenza attiva degli assi virtuali rappresentanti le coordinate spaziali. Infatti una volta richiesta la funzionalità, in pratica avviene che, si dà un comando di “Halt”, quindi stop in fase, a tutti gli assi che svolgono la funzione di camma elettronica, ovvero, i sei assi virtuali del robot, il master virtuale e l’asse del nastro trasportatore, quindi una volta fermi si alza e si abbassa volontariamente il segnale di stop agli stessi assi così da poter cambiare lo stato degli assi da “Synchronized Motion” a “StandStill”, come è possibile vedere da figura 3.8, dove con “note 4” si intende appunto, MC_Stop.Done = TRUE e MC_Stop.Execute = FALSE. Quindi una volta che si sono “sganciate” sostanzialmente tutte le camme elettroniche dal master virtuale, possiamo andare comandare ogni singolo asse virtuale del robot, tramite i parametri “MoveJogPos” e “MoveJogNeg”, all’interno del campo “command” delle strutture di tipo “cam_typ”. Quindi automaticamente cambiando la posizione degli assi virtuali nel software si valutano le nuove coordinate spaziali, quindi tali coordinate vengono elaborate tramite la solita matrice di rototraslazione e la cinematica inversa così da fornire le nuove posizioni degli assi reali, le quali una volta inviati agli azionamenti fanno muovere effettivamente il manipolatore. Una volta terminata l’operazione di movimentazione in “jog tcp” per il robot, si può riconfigurare la macchina alla configurazione inziale premendo il tasto “Jog tcp end”, in questo modo quindi chiedendo nuovamente le operazioni di “move to home e start position”, si riporta la macchina alla configurazione per cui si è pronti per la partenza dell’attività base, ovvero, l’esecuzione della traiettoria. Alternativamente, la seconda modalità di movimentazione manuale prevede, la possibilità di controllare manualmente ogni motore del robot, quindi, in questo caso sostanzialmente, una volta richiesta la funzionalità di “Jog joint”, il software, opera similmente al caso del “jog tcp” e quindi ferma e porta allo stato di “StandStill” tutti gli assi del sistema, infine quindi per eseguire il controllo dei motori, questo avviene agendo sui parametri “MoveJogPos” e il corrispettivo negativo delle strutture assi degli assi reali, ovvero, i sei assi dei sei giunti del manipolatore. Anche in questo caso, esiste poi una procedura per il recupero delle funzionalità del robot che passa per le richieste nell’interfaccia delle funzioni di “Jog joint end”, “Move to home” e “Move to start”, al termine del quale il robot è pronto a ripartire per l’esecuzione della traiettoria.

89 Infine, l’ultima della modalità di movimentazione manuale implementata può essere utile ad esempio nei primi test di una nuova traiettoria, infatti, grazie a questa funzionalità è possibile eseguire una determinata traiettoria, andando a muovere manualmente il master virtuale a cui sono “agganciate” le varie camme, anziché andare di velocità constante, come viene fatto in condizioni normali per l’esecuzione della traiettoria. Quindi le operazioni effettuate una volta richiesta la funzione chiamata di “Jog with cams”, consiste banalmente nel inviare un segnale di “Halt” al master virtuale e quindi comandare quest’ultimo asse tramite i soliti comandi di “MoveJogPos” e “MoveJogNeg” del campo “command” della struttura. In questo modo si può quindi provare, avanzando, millimetro per millimetro la nuova traiettoria al fine il controllarne la fattibilità e la precisione. Fra le opzioni selezionabili nell’HMI, ci resta da analizzare la funzione di “Home all joints” e la funzione di “reset”, quest’ultime due funzionalità come si può prevedere non saranno strettamente necessarie all’utente finale ma potranno servire al progettista in fase di “debug” a svolgere, funzioni ripetitive in maniera rapida, come può essere ad esempio l’operazione di dover “referenziare” (eseguire la procedura di homing) di ogni asse andando effettivamente a selezionare ciascun asse e forzare la variabile direttamente dal software, o similmente, fare degli acknowledgment ai vari errori che si presentano negli azionamenti per tutti gli assi presenti, che si può invece eseguire rapidamente con il tasto “reset” messo a disposizione nell’interfaccia.