Il presente documento è valido integralmente salvo errori od omissioni.
![]() |
|||
Documento: | mdo_p1p20f-023 | ||
---|---|---|---|
Descrizione: | Manuale operatore p1p20f-023 | ||
Redattore: | Omar Sbalchiero | ||
Approvatore | Gabriele Bazzi | ||
Link: | https://www.qem.eu/doku/doku.php/strumenti/qmoveplus/j1p20/p1p20f-023/mdo_p1p20f-023 | ||
Lingua: | Italiano | ||
Release documento | Descrizione | Note | Data |
01 | Nuovo manuale | 18/05/2021 |
I diritti d'autore di questo manuale sono riservati. Nessuna parte di questo documento, può essere copiata o riprodotta in qualsiasi forma senza la preventiva autorizzazione scritta della QEM.
QEM non presenta assicurazioni o garanzie sui contenuti e specificatamente declina ogni responsabilità inerente alle garanzie di idoneità per qualsiasi scopo particolare. Le informazioni in questo documento sono soggette a modifica senza preavviso. QEM non si assume alcuna responsabilità per qualsiasi errore che può apparire in questo documento.
Marchi registrati :
La applicazione P1P20F - 023 è realizzata per permettere la programmazione di sequenze di posizionamenti di una coppia di assi.
Sono disponibili per la programmazione più di 50 istruzioni elementari e di facile comprensione. La composizione delle sequenze e la scelta delle istruzioni è realizzabile tramite il terminale operatore attraverso alcune pagine di selezione. Di seguito riportiamo le caratteristiche principali del software.
Tipi di comando:
Per avviare la procedura di homing è necessario :
![]() | Sezione Pagina Allarmi |
![]() | Sezione di diagnostica I/O |
![]() | Sezione Programmi di Lavoro |
![]() | Sezione procedura di Homing |
![]() | Abilitazione sequenza a “Step” |
![]() | Sezione Dati Macchina |
Tasto | Icona | Funzione | Led | Tasto | Icona | Funzione | Led |
---|---|---|---|---|---|---|---|
F1 | ![]() | Manuale | - | F6 | ![]() | Pagina allarmi | - |
F2 | ![]() | Automatico | - | F7 | ![]() | Pagina precedente | - |
F3 | ![]() | Homing | - | - | - | - | - |
E' possibile accedere alla sezione dei programmi di lavoro solo se non è in esecuzione un programma.
Per accedere alla sezione dei programmi di lavoro, premere il tasto
Alla pagina di programmazione è possibile avere accesso solamente quando lo stato macchina non è in automatico ON.
La pagina di programmazione permette di compilare una sequenza di istruzioni e di salvarla in una determinata zona della memoria.
Descrizione dei vari campi:
Per i valori inseriti in sequenza esiste una procedura di verifica per controllare non ci siano errori in compilazione; questa procedura viene eseguita ogni volta che si utilizzano i tasti di scorrimento dei passi e ogni volta che una azione comporta il passaggio ad una diversa schermata sul display. Se la verifica rileva degli errori, viene visualizzata sulla barra in alto, a fianco del simbolo dello stato della macchina, una bandierina gialla . Toccando questo simbolo si ha accesso ad una pagina di messaggistica, la quale mostra l'errore che ha generato questa anomalia.
Tramite il tasto si accede a questa serie di pagine relative alla selezione del comando da inserire in sequenza sul passo selezionato.
Le istruzioni disponibili sono suddivise in 5 categorie. Tramite i tasti e
è possibile scorrere queste diverse schermate, e toccando su una istruzione si ritorna direttamente sulla pagina di programmazione, inserendo l'istruzione scelta sul passo corrente.
Il significato di tutte le istruzioni verrà descritto nel prossimo capitolo.
Tramite il tasto si accede alla pagina che permette di copiare interamente una sequenza da una zona di memoria ad un'altra.
Premendo si conferma la copia della sequenza.
Se l'indice selezionato come sequenza di destinazione rappresenta una sequenza già esistente in memoria, viene mostrato un messaggio di allerta riguardo a questa condizione.
Tramite il tasto si accede alla pagina che permette di cancellare interamente una sequenza da una zona di memoria.
Premendo si conferma la cancellazione della sequenza.
Tramite il simbolo si accede alla pagina che raccoglie tutti i messaggi riguardanti errori e segnalazioni sull'inserimento di istruzioni in una sequenza.
Per ogni anomalia viene assegnata una data e un'ora, un indice di errore e su par1 viene visualizzato l'eventuale passo dove si è verificato.
I messaggi visualizzati sono:
VELX:E' stata impostata una vel. nulla | Su comando VELX non è stata assegnata nessun valore di velocità. |
VELY:E' stata impostata una vel. nulla | Su comando VELY non è stata assegnata nessun valore di velocità. |
CALL: Funzione non esistente | Su comando CALL, il valore inserito non rappresenta nessuna funzione. |
GOTO: Passo non esistente | Su comando GOTO, il valore inserito è un indice rappresentante nessuna istruzione. |
JMPSUB: programma non esistente | Su comando JMPSUB, il valore inserito è un indice rappresentante una sequenza inesistente. |
JMPPRG: programma non esistente | Su comando JMPPRG, il valore inserito è un indice rappresentante una sequenza inesistente. |
Ingresso non programmabile | Su comando WAITIS, WAITID, WAITION, WAITIOFF, IFION, IFIOFF il valore inserito è un indice rappresentante un ingresso non programmabile. |
Uscita non programmabile | Su comando ON, OFF, TON, TOFF, BLINK il valore inserito è un indice rappresentante una uscita non programmabile. |
Registro inesistente | Su comando XN, YN, XYN, XYNI, ASSQX, ASSQY, SOMMAVX, SOMMAVY il valore inserito è un indice rappresentante un registro di variabili non esistente |
Variabile locale inesistente | Su comando IFEQ, ASSV, SOMMA, SOMMAVX, SOMMAVY il valore inserito è un indice rappresentante una variabile non esistente. |
Eseguire la procedura di HOMING | Questo messaggio non riguarda alcuna istruzione. Viene visualizzato quando si cerca di avviare una sequenza, senza aver fatto ancora la procedura di HOMING |
Le azioni possibili sono:
![]() | Se premuto per più di un secondo, questo tasto permette di eliminare tutte le segnalazioni registrate. |
![]() ![]() | Permettono di scorrere le anomalie registrate nelle diverse pagine. |
In questa pagina vengono visualizzate tutte e 5 le variabili locali di appoggio alla sequenza in corso.
Il tasto permette di accedere all'area tecnica di configurazione della macchina tramite una password
Tramite il tasto , il simbolo
oppure il tasto funzione
si accede alla pagina che visualizza la lista di allarmi attuali.
Per ogni allarme viene assegnata una data e un'ora, un indice di errore e due parametri per eventualmente specificare nel dettaglio l'anomalia visualizzata.
Gli allarmi che si possono verificare sono:
Finecorsa HW massimo X | Superato il finecorsa hardware di corsa massima per l’asse X. |
Finecorsa HW minimo X | Superato il finecorsa hardware di corsa minima per l’asse X. |
Finecorsa HW massimo Y | Superato il finecorsa hardware di corsa massima per l’asse Y. |
Finecorsa HW minimo Y | Superato il finecorsa hardware di corsa minima per l’asse Y. |
Emergenza manuale | Mancanza dell'ingresso di emergenza. |
Errore di inseguimento X | L’asse X ha avuto un errore di inseguimento (foller) superiore al maxfoller. Possibile fuga dell’asse. |
Errore di inseguimento Y | L’asse Y ha avuto un errore di inseguimento (foller) superiore al maxfoller. Possibile fuga dell’asse. |
Passo non eseguibile | Tentativo di eseguire un passo non programmato correttamente. Su par1 viene visualizzato l'indice di sequenza in errore. Su par2 viene visualizzato l'indice del passo in errore. |
Le azioni possibili sono:
In questa pagina vengono archiviati tutti gli allarmi che si sono verificati nel funzionamento della macchina.
Le azioni possibili sono:
![]() | Se premuto per più di un secondo, elimina tutte le segnalazioni dallo storico. |
![]() ![]() | Permettono di scorrere le segnalazioni presenti nelle diverse pagine. |
Per accedere alla diagnostica, dalla pagina di Principale premere il tasto
Viene visualizzata la seguente pagina:
Da questa pagina è possibile accedere alle varie sezioni di diagnostica presenti:
Per tornare alla Pagina Principale premere il tasto
Per accedere alla pagina di diagnostica degli Ingressi Digitali, premere il tasto
Viene visualizzata la seguente pagina:
Per accedere alla pagina di diagnostica delle Uscite Digitali, premere il tasto
Viene visualizzata la seguente pagina:
Per accedere alla funzione di forzatura delle uscite:
Per accedere alla pagina di diagnostica dei Conteggi, premere il tasto
Viene visualizzata la seguente pagina:
Viene visualizzato per ogni asse il conteggio in impulsi encoder.
In piccolo viene inoltre visualizzato il valore del conteggio in unità di misura, e sulla destra vengono visualizzati i registri relativi ai valori istantanei di feed-forward, parte proporzionale, parte integrale ed errore di inseguimento.
Per accedere alla pagina di diagnostica delle Uscite analogiche, premere il tasto
Viene visualizzata la seguente pagina:
Viene visualizzato per ogni asse il valore della tensione in uscita, espressa in decimi di Volts.
Per tornare al menù di DIAGNOSTICA premere il tasto
A seguire vengono descritte tutte le istruzioni utilizzabili in sequenza.
La colonna T prende i seguenti significati:
I posizionamenti degli assi vengono eseguiti tramite un profilo trapezoidale con una fase di accelerazione lineare, una fase a velocità costante e una fase di decelerazione lineare.
Le istruzioni per il posizionamento degli assi si dividono in:
I posizionamenti singoli consistono nel posizionare un asse singolo (X o Y) alla quota specificata nel passo programmato oppure alla quota contenuta nel registro con indice specificato. La velocità di posizionamento per default è quella massima dell’asse in questione.
I posizionamenti multipli si suddividono in:
Nei posizionamenti multipli gli assi partono dalla posizione in cui si trovano e raggiungono la posizione con coordinate specificate come argomento. Tali coordinate possono essere espresse direttamente come valore oppure possono essere contenute in uno dei registri predisposti per ogni asse.
I posizionamenti multipli contemporanei vengono realizzati muovendo alla massima velocità l’asse che deve compiere più spazio, mentre l’asse che deve compiere meno spazio si adegua posizionandosi con una velocità inferiore. In tal modo il posizionamento dei due assi si conclude in modo quasi contemporaneo. Si dice “quasi” dato che non si tiene conto della parte di accelerazione e di decelerazione e quindi il posizionamento risultante può non risultare perfettamente rettilineo tra il punto di partenza e il punto di arrivo (vedi figura di esempio). La velocità di posizionamento per default è quella massima.
I posizionamenti multipli interpolati vengono realizzati calcolando le velocità da assegnare ai due assi in modo che la velocità di posizionamento risultante di un ipotetico utensile vincolato ai due assi sia quella specificata tramite l’istruzione VELXYI. Se non viene specificata la velocità di interpolazione, per default si utilizza la velocità minima tra le due velocità massime degli assi. In questo posizionamento viene tenuto conto anche delle fasi di accelerazione e di decelerazione del posizionamento.
Queste due fasi vengono modificate in modo che entrambi gli assi concludano la accelerazione (o decelerazione) nello stesso istante. In questo modo la traiettoria tra punto di partenza e punto di arrivo risulta essere rettilinea (vedi figura).
Nelle figure seguenti riportiamo una esemplificazione grafica delle due istruzioni “JMPSUB n” e “JMPPRG n”.
Una sequenza può essere richiamata con JMPSUB da un’altra sequenza ed essa a sua volta può richiamarne un’altra. Questo annidamento non è infinito ma può essere ripetuto per un massimo di 5 volte.
Per ogni asse sono disponibili 100 “registri”, cioè 100 celle di memoria utilizzate unicamente per contenere quote a cui posizionare gli assi. Ogni registro viene individuato nel passo attraverso il suo indice (da 1 a 100, quindi). Per ogni sequenza programmata inoltre sono disponibili 5 “variabili locali” utilizzate per contenere dei valori utili, tipo conta-pezzi. Si può far riferimento a una di queste variabili locali attraverso il suo indice (da 1 a 5).
Per assegnare un valore ad un registro si utilizzano le istruzioni:
Per assegnare un valore ad una variabile locale si utilizza l’istruzione:
Riportiamo una sequenza programmata in cui viene ripetuta una serie di posizionameni e di settaggi di uscite per un numero di 5 volte impostato nella prima variabile locale:
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | ASSV | 1, 4 | V1 = 4 |
2 | XY | 0.0, 0.0 | Start di X e Y a 0, 0 |
3 | XY | 100.0, 50.0 | Start di XY a 100, 50 |
4 | ON | 1 | Attiva uscita “scendipinza” |
5 | WAITIS | 1 | Attende fronte di salita ing. “pinza scesa” |
6 | ON | 2 | Attiva uscita “chiudipinza” |
7 | WAITIS | 2 | Attende fronte di salita ing. “pinza chiusa” |
8 | X | 50.0 | Start di X a 50 |
9 | NOWAITSXY | Disabilita attesa posizionamenti | |
10 | WAITX< | 75.0 | Attesa quota di X < 75 |
11 | Y | 90.0 | Start di Y a 90” |
12 | WAITSXY | Riabilita attesa posizionamenti | |
13 | OFF | 2 | Disattiva uscita “chiudipinza” |
14 | WAITIOFF | 2 | Attende stato OFF dell'ing. “pinza chiusa” |
15 | OFF | 1 | Disattiva uscita “scendipinza” |
16 | WAITOFF | 1 | Attende stato OFF dell'ing. “pinza scesa” |
17 | SOMMA | 1, -1 | Somma -1 a V1 (Sottrae 1 a V1) |
18 | IFEQ | 1, 1, 20 | Se V1 è uguale a 1 salta al passo 20 |
19 | GOTO | 2 | altrimenti salta al passo 2 |
20 | END | Fine sequenza |
Questo esempio esegue sempre dei posizionamenti, ma utilizzando i registri per gli assi X e Y.
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | ASSV | 1, 0 | V1 = 0 |
2 | ASSQX | 1, 4000.0 | RX[1] = 4000 , registro delle X con indice 1 |
3 | ASSV | 2, 1 | V2 = 1 , salvo su V2 l'indice del registro asse X |
4 | ASSQY | 2, 2000.0 | RX[2] = 2000 , registro delle Y con indice 2 |
5 | ASSV | 3, 2 | V3 = 2 , salvo su V3 l'indice del registro asse Y |
6 | ASSV | 4, -2000 | V4 = -2000 |
7 | ASSV | 5, -1000 | V5 = -1000 |
8 | VELXYI | 100000 | Imposta la velocità per movimenti interpolati a 100000 |
9 | XYI | 0.0, 0.0 | Start di X e Y a 0, 0 in modo interpolato |
10 | TON | 1, 1000 | Attiva uscita 1 dopo un secondo |
11 | XN | 2 | Start di X a registro asse X con indice V2 (RX[V2]) |
12 | YN | 3 | Start di Y a registro asse Y con indice V3 (RY[V3]) |
13 | TOFF | 1, 500 | Disattiva uscita 1 dopo 500 ms |
14 | SOMMA | 1, 1 | Incrementa di 1 il valore in V1 |
15 | SOMMAVX | 4, 1 | Somma il valore in V4 (-200.0) al registro asse X con indice 1 (RX[1]). Decrementa ogni volta di 200 la quota obiettivo. |
16 | SOMMAVY | 5, 2 | Somma il valore in V5 (-100.0) al registro asse Y con indice 2 (RX[2]). Decrementa ogni volta di 100 la quota obiettivo. |
17 | WAITIT | 5000 | Attende un tempo di 5 |
18 | IFEQ | 1, 5, 20 | Se V1 è uguale a 5 salta al passo 20 |
19 | GOTO | 9 | altrimenti salta al passo 9 |
20 | END | Fine sequenza |
Il vantaggio di usare i registri, è dato dal fatto che è possibile compilare una serie di quote obiettivo al loro interno e scorrere queste attraverso il semplice incremento di variabili locali, usate in questo caso come indice di registro.
In questo esempio viene riproposto il funzionamento delle attese dei posizionamenti.
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | VELX% | 20 | Imposta la velocità dell'asse X al 20% |
2 | VELY% | 20 | Imposta la velocità dell'asse Y al 20% |
3 | XY | 0.0, 0.0 | Start di X e Y a 0, 0 |
4 | NOWAITSXY | Disabilita attesa posizionamenti | |
5 | X | 5000.0 | Start di X a 5000 |
6 | WAITX> | 2000.0 | Attesa quota di X > 2000 |
7 | Y | 3000.0 | Start di Y a 3000 |
8 | WAITY | Attende che Y sia arrivato a 3000 | |
9 | Y | -2000.0 | Start di Y a -2000 |
10 | WAITY< | 1000 | Attesa quota di Y < 1000 |
11 | WAITSX | Abilita attesa posizionamenti per asse X | |
12 | X | -1000 | Start di X a -1000 |
13 | WAITSY | Abilita attesa posizionamenti per asse Y | |
14 | GOTO | 3 | Salta al passo 3 |
Da notare che se abbiamo disattivato l'attesa del posizionamento, e vogliamo che un posizionamento sia invece completato abbiamo 2 modalità per farlo:
Questo ultimo esempio vuole infine dare una descrizione della istruzione di JMPSUB.
PROGRAMMA 10
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | VELX% | 50 | Imposta la velocità dell'asse X al 50% |
2 | VELY% | 50 | Imposta la velocità dell'asse Y al 50% |
3 | VELXYI | 60000 | Imposta la velocità per movimenti interpolati a 60000 |
4 | WAITSXY | Abilita attesa posizionamenti | |
5 | JMPSUB | 12 | Salta al programma 12 |
6 | GOTO | 4 | Salta al passo 4 |
PROGRAMMA 11
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | NOWAITSXY | Disabilita attesa posizionamenti | |
2 | JMPSUB | 13 | Salta al programma 13 |
PROGRAMMA 12
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | XYI | 0.0, 0.0 | Start di X e Y a 0, 0 in modo interpolato |
2 | X | 1000.0 | Start di X a 1000 |
3 | Y | 1000.0 | Start di Y a 1000 |
4 | JMPSUB | 11 | Salta al programma 11 |
PROGRAMMA 13
Passo | Istruzione | Argomenti | Commenti |
---|---|---|---|
1 | X | 5000.0 | Start di X a 5000 |
2 | WAITX> | 3000.0 | Attesa quota di X > 3000 |
3 | Y | 5000.0 | Start di Y a 5000 |
4 | WAITY | Attende che Y sia arrivato a 5000 |
Il programma 10 è quello principale e viene utilizzato per inizializzare le velocità e per l'attivazione dell'attesa posizionamenti.
Il programma 10 va poi a chiamare il programma 12, il quale esegue una serie di posizionamenti con attesa.
Il programma 12 va poi a chiamare il programma 11, il quale disattiva l'attesa posizionamenti.
Il programma 11 va poi a chiamare il programma 13, il quale esegue dei posizionamenti senza attesa e attende che Y sia fermo.
A questo punto il programma 13 termina e torna sul 11 e poi 12, i quali terminano a loro volta. Si ritorna infine al programma 10 il quale esegue un salto a un passo precedente (di riattivazione attesa posizionamenti) e tutto riparte nuovamente.
Per poterti fornire un servizio rapido, al minimo costo, abbiamo bisogno del tuo aiuto.
![]() | ![]() |
Segui tutte le istruzioni fornite nel manuale MIMAT | Se il problema persiste, compila il “Modulo richiesta assistenza” nella pagina Contatti del sito www.qem.it. I nostri tecnici otterranno gli elementi essenziali per comprendere il tuo problema. |
Per poterVi fornire un servizio efficente, Vi preghiamo di leggere e attenerVi alle indicazioni qui riportate
Si consiglia di imballare lo strumento con materiali in grado di assorbire eventuali cadute.
![]() | ![]() | ![]() |
Utilizzare l'imballo originale: deve proteggere lo strumento durante il trasporto. | Allega: 1. Una descrizione dell'anomalia; 2. Parte dello schema elettrico in cui è inserito lo strumento 3. Programmazione dello strumento (setup, quote di lavoro, parametri…). | Una descrizione approfondita del problema ci consentirà di identificare e risolvere rapidamente il tuo problema. Un accurato imballaggio eviterà ulteriori inconvenienti. |